Added a SkipString() method to the parser helper; began work in implementing a configuration file parser
git-svn-id: file:///srv/devel/repo-conversion/nusu@296 d2e56fa2-650e-0410-a79f-9358c0239efd
This commit is contained in:
parent
2210973528
commit
c90033caad
5 changed files with 187 additions and 0 deletions
39
Source/Configuration/ConfigurationFile.cs
Normal file
39
Source/Configuration/ConfigurationFile.cs
Normal file
|
@ -0,0 +1,39 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace Nuclex.Support.Configuration {
|
||||
|
||||
/// <summary>Represents an ini- or cfg-like configuration file</summary>
|
||||
/// <remarks>
|
||||
/// This class tries its best to preserve the formatting of configuration files.
|
||||
/// Changing a value will keep the line it appears in intact.
|
||||
/// </remarks>
|
||||
public class ConfigurationFile {
|
||||
|
||||
/// <summary>Initializes a new, empty configuration file</summary>
|
||||
public ConfigurationFile() {
|
||||
this.lines = new List<string>();
|
||||
}
|
||||
|
||||
/// <summary>Parses a configuration file from the specified text reader</summary>
|
||||
/// <param name="reader">Reader the configuration file will be parsed from</param>
|
||||
/// <returns>The configuration file parsed from the specified reader</returns>
|
||||
public static ConfigurationFile Parse(TextReader reader) {
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>Saves the configuration file into the specified writer</summary>
|
||||
/// <param name="writer">Writer the configuration file will be saved into</param>
|
||||
public void Save(TextWriter writer) {
|
||||
|
||||
}
|
||||
|
||||
/// <summary>Lines contained in the configuration file</summary>
|
||||
private IList<string> lines;
|
||||
|
||||
}
|
||||
|
||||
} // namespace Nuclex.Support.Configuration
|
26
Source/Configuration/ISettings.cs
Normal file
26
Source/Configuration/ISettings.cs
Normal file
|
@ -0,0 +1,26 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace Nuclex.Support.Configuration {
|
||||
|
||||
/// <summary>Interface by which settings stored in a file can be accessed</summary>
|
||||
public interface ISettings {
|
||||
|
||||
/// <summary>Enumerates the categories defined in the configuration</summary>
|
||||
/// <returns>An enumerable list of all used categories</returns>
|
||||
IEnumerable<string> EnumerateCategories();
|
||||
|
||||
/// <summary>Enumerates the options stored under the specified category</summary>
|
||||
/// <param name="category">Category whose options will be enumerated</param>
|
||||
/// <returns>An enumerable list of all options in the category</returns>
|
||||
IEnumerable<OptionInfo> EnumerateOptions(string category = null);
|
||||
|
||||
TValue Get<TValue>(string category, string optionName);
|
||||
|
||||
TValue Get<TValue>(string optionName);
|
||||
|
||||
}
|
||||
|
||||
} // namespace Nuclex.Support.Configuration
|
15
Source/Configuration/OptionInfo.cs
Normal file
15
Source/Configuration/OptionInfo.cs
Normal file
|
@ -0,0 +1,15 @@
|
|||
using System;
|
||||
|
||||
namespace Nuclex.Support.Configuration {
|
||||
|
||||
/// <summary>Informations about an option stored in a settings container</summary>
|
||||
public struct OptionInfo {
|
||||
|
||||
/// <summary>Name of the option</summary>
|
||||
public string Name;
|
||||
/// <summary>Data type of the option</summary>
|
||||
public Type OptionType;
|
||||
|
||||
}
|
||||
|
||||
} // namespace Nuclex.Support.Configuration
|
Loading…
Add table
Add a link
Reference in a new issue