![]() |
Open Lighting Architecture 0.10.9
|
Command line flag processing.
This is based on gflags (https://code.google.com/p/gflags/) but we reduce the feature set to make things simpler.
Features:
./flags is run, this produces: ./flags --foo --name bob -b 10 --no-bar Files | |
| file | Flags.cpp |
| file | Flags.h |
| Defines macros to ease creation of command line flags. | |
| file | FlagsPrivate.h |
| Internal functionality for the flags. | |
Namespaces | |
| namespace | ola |
| The namespace containing all OLA symbols. | |
Classes | |
| class | ola::FlagInterface |
| The interface for the Flag classes. More... | |
| class | ola::BaseFlag |
| The common implementation. More... | |
| class | ola::Flag< T > |
| A templated Flag class. More... | |
| class | ola::Flag< bool > |
| a bool flag More... | |
| class | ola::Flag< std::string > |
| a string flag More... | |
| class | ola::FlagRegistry |
| This class holds all the flags, and is responsible for parsing the command line. More... | |
| class | ola::FlagRegisterer |
| This class is responsible for registering a flag. More... | |
Macros | |
| #define | DECLARE_bool(name) |
| Reuse a bool flag from another file. | |
| #define | DECLARE_int8(name) |
| Reuse an int8_t flag from another file. | |
| #define | DECLARE_int16(name) |
| Reuse an int16_t flag from another file. | |
| #define | DECLARE_int32(name) |
| Reuse an int32_t flag from another file. | |
| #define | DECLARE_uint8(name) |
| Reuse a uint8_t flag from another file. | |
| #define | DECLARE_uint16(name) |
| Reuse a uint16_t flag from another file. | |
| #define | DECLARE_uint32(name) |
| Reuse a uint32_t flag from another file. | |
| #define | DECLARE_string(name) |
| Reuse a string flag from another file. | |
| #define | DEFINE_bool(name, default_value, help_str) |
| Create a new longname bool flag. | |
| #define | DEFINE_s_bool(name, short_opt, default_value, help_str) |
| Create a new bool flag with a long and short name. | |
| #define | DEFINE_default_bool(name, default_value, help_str) |
| Create a new longname bool flag that doesn't require an argument. | |
| #define | DEFINE_s_default_bool(name, short_opt, default_value, help_str) |
| Create a new bool flag with a long and short name that doesn't require an argument. | |
| #define | DEFINE_int8(name, default_value, help_str) |
| Create a new longname int8_t flag. | |
| #define | DEFINE_s_int8(name, short_opt, default_value, help_str) |
| Create a new int8_t flag with a long and short name. | |
| #define | DEFINE_uint8(name, default_value, help_str) |
| Create a new longname uint8_t flag. | |
| #define | DEFINE_s_uint8(name, short_opt, default_value, help_str) |
| Create a new uint8_t flag with a long and short name. | |
| #define | DEFINE_int16(name, default_value, help_str) |
| Create a new longname int16_t flag. | |
| #define | DEFINE_s_int16(name, short_opt, default_value, help_str) |
| Create a new int16_t flag with a long and short name. | |
| #define | DEFINE_uint16(name, default_value, help_str) |
| Create a new longname uint16_t flag. | |
| #define | DEFINE_s_uint16(name, short_opt, default_value, help_str) |
| Create a new uint16_t flag with a long and short name. | |
| #define | DEFINE_int32(name, default_value, help_str) |
| Create a new longname int32_t flag. | |
| #define | DEFINE_s_int32(name, short_opt, default_value, help_str) |
| Create a new int32_t flag with a long and short name. | |
| #define | DEFINE_uint32(name, default_value, help_str) |
| Create a new longname uint32_t flag. | |
| #define | DEFINE_s_uint32(name, short_opt, default_value, help_str) |
| Create a new int32_t flag with a long and short name. | |
| #define | DEFINE_string(name, default_value, help_str) |
| Create a new longname string flag. | |
| #define | DEFINE_s_string(name, short_opt, default_value, help_str) |
| Create a new string flag with a long and short name. | |
Functions | |
| void | ola::SetHelpString (const std::string &first_line, const std::string &description) |
| Set the help string for the program. | |
| void | ola::DisplayUsage () |
| Print the usage text to stdout. | |
| void | ola::DisplayUsageAndExit () |
| Print the usage text to stdout then exit. | |
| void | ola::DisplayVersion () |
| Print the version text to stdout. | |
| void | ola::GenManPage () |
| void | ola::ParseFlags (int *argc, char **argv) |
| Parses the command line flags up to the first non-flag value. argv is re-arranged so that it only contains non-flag arguments. | |
| FlagRegistry * | ola::GetRegistry () |
| Get the global FlagRegistry. | |
| bool | ola::Flag< T >::SetValue (const std::string &input) |
| Used to set the value of a flag. | |
Variables | |
| const char | ola::Flag< bool >::NO_PREFIX [] = "no-" |
| #define DECLARE_bool | ( | name | ) |
Reuse a bool flag from another file.
| name | the name of the flag to reuse |
| #define DECLARE_int16 | ( | name | ) |
Reuse an int16_t flag from another file.
| name | the name of the flag to reuse |
| #define DECLARE_int32 | ( | name | ) |
Reuse an int32_t flag from another file.
| name | the name of the flag to reuse |
| #define DECLARE_int8 | ( | name | ) |
Reuse an int8_t flag from another file.
| name | the name of the flag to reuse |
| #define DECLARE_string | ( | name | ) |
Reuse a string flag from another file.
| name | the name of the flag to reuse |
| #define DECLARE_uint16 | ( | name | ) |
Reuse a uint16_t flag from another file.
| name | the name of the flag to reuse |
| #define DECLARE_uint32 | ( | name | ) |
Reuse a uint32_t flag from another file.
| name | the name of the flag to reuse |
| #define DECLARE_uint8 | ( | name | ) |
Reuse a uint8_t flag from another file.
| name | the name of the flag to reuse |
| #define DEFINE_bool | ( | name, | |
| default_value, | |||
| help_str ) |
Create a new longname bool flag.
By default the flag is undefined, the same as the string and int ones, that is is_present() returns false. If the flag is provided on the command line, is_present() will be true, and operator bool() returns the value of the flag.
| name | the name of the flag to create |
| default_value | the default value for the flag. Either true, or false. |
| help_str | the string displayed when the program is asked to display the help screen |
| #define DEFINE_default_bool | ( | name, | |
| default_value, | |||
| help_str ) |
Create a new longname bool flag that doesn't require an argument.
By default the flag is set to default_value. If the flag is provided on the command line, the value of the flag becomes !default_value.
| name | the name of the flag to create |
| default_value | the default value for the flag. Either true, or false. |
| help_str | the string displayed when the program is asked to display the help screen |
| #define DEFINE_int16 | ( | name, | |
| default_value, | |||
| help_str ) |
Create a new longname int16_t flag.
| name | the name of the flag to create |
| default_value | the default value for the flag. |
| help_str | the string displayed when the program is asked to display the help screen |
| #define DEFINE_int32 | ( | name, | |
| default_value, | |||
| help_str ) |
Create a new longname int32_t flag.
| name | the name of the flag to create |
| default_value | the default value for the flag. |
| help_str | the string displayed when the program is asked to display the help screen |
| #define DEFINE_int8 | ( | name, | |
| default_value, | |||
| help_str ) |
Create a new longname int8_t flag.
| name | the name of the flag to create |
| default_value | the default value for the flag. |
| help_str | the string displayed when the program is asked to display the help screen |
| #define DEFINE_s_bool | ( | name, | |
| short_opt, | |||
| default_value, | |||
| help_str ) |
Create a new bool flag with a long and short name.
By default the flag is undefined, the same as the string and int ones, that is is_present() returns false. If the flag is provided on the command line, is_present() will be true, and operator bool() returns the value of the flag.
| name | the name of the flag to create |
| short_opt | the short name of the flag. For example "-h", or "-d". |
| default_value | the default value for the flag. Either true, or false. |
| help_str | the string displayed when the program is asked to display the help screen |
| #define DEFINE_s_default_bool | ( | name, | |
| short_opt, | |||
| default_value, | |||
| help_str ) |
Create a new bool flag with a long and short name that doesn't require an argument.
By default the flag is set to default_value. If the flag is provided on the command line, the value of the flag becomes !default_value.
| name | the full name of the flag to create |
| short_opt | the short name of the flag. For example "-h", or "-d". |
| default_value | the default value for the flag. Either true, or false. |
| help_str | the string displayed when the program is asked to display the help screen |
| #define DEFINE_s_int16 | ( | name, | |
| short_opt, | |||
| default_value, | |||
| help_str ) |
Create a new int16_t flag with a long and short name.
| name | the full name of the flag to create |
| short_opt | the short name of the flag. For example "-h", or "-d". |
| default_value | the default value for the flag. |
| help_str | the string displayed when the program is asked to display the help screen |
| #define DEFINE_s_int32 | ( | name, | |
| short_opt, | |||
| default_value, | |||
| help_str ) |
Create a new int32_t flag with a long and short name.
| name | the full name of the flag to create |
| short_opt | the short name of the flag. For example "-h", or "-d". |
| default_value | the default value for the flag. |
| help_str | the string displayed when the program is asked to display the help screen |
| #define DEFINE_s_int8 | ( | name, | |
| short_opt, | |||
| default_value, | |||
| help_str ) |
Create a new int8_t flag with a long and short name.
| name | the full name of the flag to create |
| short_opt | the short name of the flag. For example "-h", or "-d". |
| default_value | the default value for the flag. |
| help_str | the string displayed when the program is asked to display the help screen |
| #define DEFINE_s_string | ( | name, | |
| short_opt, | |||
| default_value, | |||
| help_str ) |
Create a new string flag with a long and short name.
| name | the full name of the flag to create |
| short_opt | the short name of the flag. For example "-h", or "-d". |
| default_value | the default value for the flag. |
| help_str | the string displayed when the program is asked to display the help screen |
| #define DEFINE_s_uint16 | ( | name, | |
| short_opt, | |||
| default_value, | |||
| help_str ) |
Create a new uint16_t flag with a long and short name.
| name | the full name of the flag to create |
| short_opt | the short name of the flag. For example "-h", or "-d". |
| default_value | the default value for the flag. |
| help_str | the string displayed when the program is asked to display the help screen |
| #define DEFINE_s_uint32 | ( | name, | |
| short_opt, | |||
| default_value, | |||
| help_str ) |
Create a new int32_t flag with a long and short name.
| name | the full name of the flag to create |
| short_opt | the short name of the flag. For example "-h", or "-d". |
| default_value | the default value for the flag. |
| help_str | the string displayed when the program is asked to display the help screen |
| #define DEFINE_s_uint8 | ( | name, | |
| short_opt, | |||
| default_value, | |||
| help_str ) |
Create a new uint8_t flag with a long and short name.
| name | the full name of the flag to create |
| short_opt | the short name of the flag. For example "-h", or "-d". |
| default_value | the default value for the flag. |
| help_str | the string displayed when the program is asked to display the help screen |
| #define DEFINE_string | ( | name, | |
| default_value, | |||
| help_str ) |
Create a new longname string flag.
| name | the name of the flag to create |
| default_value | the default value for the flag. |
| help_str | the string displayed when the program is asked to display the help screen |
| #define DEFINE_uint16 | ( | name, | |
| default_value, | |||
| help_str ) |
Create a new longname uint16_t flag.
| name | the name of the flag to create |
| default_value | the default value for the flag. |
| help_str | the string displayed when the program is asked to display the help screen |
| #define DEFINE_uint32 | ( | name, | |
| default_value, | |||
| help_str ) |
Create a new longname uint32_t flag.
| name | the name of the flag to create |
| default_value | the default value for the flag. |
| help_str | the string displayed when the program is asked to display the help screen |
| #define DEFINE_uint8 | ( | name, | |
| default_value, | |||
| help_str ) |
Create a new longname uint8_t flag.
| name | the name of the flag to create |
| default_value | the default value for the flag. |
| help_str | the string displayed when the program is asked to display the help screen |
| void ola::ParseFlags | ( | int * | argc, |
| char ** | argv ) |
Parses the command line flags up to the first non-flag value. argv is re-arranged so that it only contains non-flag arguments.
| argc | the argument count taken straight from your main() |
| argv | the argument vector which holds the actual arguments from the command line. Also comes from main(). |
| void ola::SetHelpString | ( | const std::string & | first_line, |
| const std::string & | description ) |
Set the help string for the program.
| first_line | the initial line that is displayed in the help section. This is displayed after argv[0]. |
| description | a multiline description of the program |
|
virtual |
Used to set the value of a flag.
Implements ola::FlagInterface.
| const char ola::Flag< bool >::NO_PREFIX[] = "no-" |
The prefix used on inverted bool flags
Then if you called your application with that flag:
Then the noMaster flag would be true.