#include <senf/Utils/Console/ProgramOptions.hh>

A ProgramOptions instance allows flexible parsing of command line options against the console node tree. If you just want to parse all options, the senf::console::parseOptions() function will do that. ProgramOptions however allows to incrementally parse only a subset of the given command line options.
std::vector<std::string> args; senf::console::ProgramOptions cf (argc, argv); cf .nonOptions(args) .alias('n', "--foo-bar=x") .alias('x', "--xxx", true); // Parse only options under the directory of some object. The object 'ob' // must have been registered somewhere in the node tree cf.parse(ob.dir); // Parse rest of the config file cf.parse();
If your application uses multiple configuration sources, use a ConfigBundle and OptionsConfig.
Definition at line 67 of file ProgramOptions.hh.
Public Member Functions |
|
| template<class Container > | |
| ProgramOptions & | nonOptions (Container &container) |
| Set container to add non-option arguments to. |
|
| ProgramOptions & | alias (char letter, std::string const &longOpt, bool withArg=false) |
| Set short option alias. |
|
Related Functions |
|
| (Note that these are not member functions.) |
|
| void | parseOptions (int argc, char const **argv, DirectoryNode &root=root()) |
| Parse command line options. |
|
| detail::ProgramOptionsSource::ptr | OptionsConfig (int argc, char const **argv) |
|
ConfigBundle source reading command line options. |
|
Structors and default members |
|
| ProgramOptions (int argc, char const **argv, DirectoryNode &root=root()) | |
| Create ProgramOptions parser for given options. |
|
| senf::console::ProgramOptions:: | ||||
| ProgramOptions | ( | int | argc, | |
| char const ** | argv, | |||
| DirectoryNode & |
root = root()
|
) | ||
Create ProgramOptions parser for given options.
The given argc/argv values are those passed to main by the operating system. Especially argv[0] is not an option and is ignored.
Definition at line 66 of file ProgramOptions.cci.
| senf::console::ProgramOptions & senf::console::ProgramOptions:: | ||||
| alias | ( | char | letter, | |
| std::string const & | longOpt, | |||
| bool |
withArg = false
|
) | ||
Set short option alias.
A short option is always an alias for a long option with or without argument. if withArg is true, the short option will expect an argument on the command line. This argument will be appended (with an additional '=') to longOpt. If withArg is false (the default), longOpt may optional contain an argument.
| [in] | letter | option letter |
| [in] | longOpt | long option alias |
| [in] | withArg |
true, if the option should take an argument. |
Definition at line 72 of file ProgramOptions.cci.
| senf::console::ProgramOptions & senf::console::ProgramOptions:: | ||||
| nonOptions | ( | Container & | container | ) |
Set container to add non-option arguments to.
container must have a clear() and a push_back(std::string) member. All non-options are added to container. Before parsing the command-line, clear() is called.
Definition at line 74 of file ProgramOptions.cti.
| detail::ProgramOptionsSource::ptr | ||||
| OptionsConfig | ( | int | argc, | |
| char const ** | argv | ) | ||
ConfigBundle source reading command line options.
This constructor is used to create a config source parsing the given command line options to add to a ConfigBundle.
| void | ||||
| parseOptions | ( | int | argc, | |
| char const ** | argv, | |||
| DirectoryNode & |
root = root()
|
) | ||
Parse command line options.
The command line options in argc / argv will be parsed, interpreting all node's relative to root as root node.