Go to the documentation of this file.
35 std::vector<std::string> tmp =
parents;
36 tmp.emplace_back(
name);
44 std::vector<ConfigItem>
items{};
48 virtual std::string
to_config(
const App *,
bool,
bool, std::string)
const = 0;
51 virtual std::vector<ConfigItem>
from_config(std::istream &)
const = 0;
55 if(item.
inputs.size() == 1) {
58 throw ConversionError::TooManyInputsFlag(item.
fullname());
62 std::vector<ConfigItem>
from_file(
const std::string &name) {
63 std::ifstream input{name};
65 throw FileError::Missing(name);
90 to_config(
const App * ,
bool default_also,
bool write_description, std::string prefix)
const override;
92 std::vector<ConfigItem>
from_config(std::istream &input)
const override;
char arrayEnd
the character used to end an array '\0' is a default to not use
Definition: ConfigFwd.hpp:82
std::string name
This is the name.
Definition: ConfigFwd.hpp:28
virtual std::string to_flag(const ConfigItem &item) const
Get a flag value.
Definition: ConfigFwd.hpp:54
ConfigBase * comment(char cchar)
Specify the configuration for comment characters.
Definition: ConfigFwd.hpp:94
std::string join(const T &v, std::string delim=",")
Simple function to join a string.
Definition: StringTools.hpp:59
std::string fullname() const
The list of parents and name joined by ".".
Definition: ConfigFwd.hpp:34
virtual ~Config()=default
Virtual destructor.
ConfigBase * arrayDelimiter(char aSep)
Specify the delimiter character for an array.
Definition: ConfigFwd.hpp:105
This converter works with INI/TOML files; to write proper TOML files use ConfigTOML.
Definition: ConfigFwd.hpp:75
char arrayStart
the character used to start an array '\0' is a default to not use
Definition: ConfigFwd.hpp:80
ConfigBase * arrayBounds(char aStart, char aEnd)
Specify the start and end characters for an array.
Definition: ConfigFwd.hpp:99
std::vector< std::string > inputs
Listing of inputs.
Definition: ConfigFwd.hpp:31
char valueDelimiter
the character used separate the name from the value
Definition: ConfigFwd.hpp:86
std::string to_config(const App *, bool default_also, bool write_description, std::string prefix) const override
Convert an app into a configuration.
Definition: Config.hpp:260
char commentChar
the character used for comments
Definition: ConfigFwd.hpp:78
std::vector< ConfigItem > from_file(const std::string &name)
Parse a config file, throw an error (ParseError:ConfigParseError or FileError) on failure.
Definition: ConfigFwd.hpp:62
Creates a command line program, with very few defaults.
Definition: App.hpp:66
virtual std::string to_config(const App *, bool, bool, std::string) const =0
Convert an app into a configuration.
char arraySeparator
the character used to separate elements in an array
Definition: ConfigFwd.hpp:84
This class provides a converter for configuration files.
Definition: ConfigFwd.hpp:42
ConfigBase * valueSeparator(char vSep)
Specify the delimiter between a name and value.
Definition: ConfigFwd.hpp:110
ConfigTOML generates a TOML compliant output.
Definition: ConfigFwd.hpp:120
virtual std::vector< ConfigItem > from_config(std::istream &) const =0
Convert a configuration into an app.
std::vector< ConfigItem > items
Definition: ConfigFwd.hpp:44
ConfigTOML()
Definition: ConfigFwd.hpp:123
std::vector< ConfigItem > from_config(std::istream &input) const override
Convert a configuration into an app.
Definition: Config.hpp:165
Holds values to load into Options.
Definition: ConfigFwd.hpp:23
std::vector< std::string > parents
This is the list of parents.
Definition: ConfigFwd.hpp:25