diff options
Diffstat (limited to 'src/cam/options.h')
-rw-r--r-- | src/cam/options.h | 22 |
1 files changed, 6 insertions, 16 deletions
diff --git a/src/cam/options.h b/src/cam/options.h index d0defb4b..688fe260 100644 --- a/src/cam/options.h +++ b/src/cam/options.h @@ -14,6 +14,7 @@ class KeyValueParser; class OptionValue; +struct Option; enum OptionArgument { ArgumentNone, @@ -28,21 +29,6 @@ enum OptionType { OptionKeyValue, }; -struct Option { - int opt; - OptionType type; - const char *name; - OptionArgument argument; - const char *argumentName; - const char *help; - KeyValueParser *keyValueParser; - bool isArray; - - bool hasShortOption() const { return isalnum(opt); } - bool hasLongOption() const { return name != nullptr; } - const char *typeName() const; -}; - template<typename T> class OptionsBase { @@ -73,7 +59,8 @@ public: { }; - virtual ~KeyValueParser() = default; + KeyValueParser(); + virtual ~KeyValueParser(); bool addOption(const char *name, OptionType type, const char *help, OptionArgument argument = ArgumentNone); @@ -133,6 +120,9 @@ public: { }; + OptionsParser(); + ~OptionsParser(); + bool addOption(int opt, OptionType type, const char *help, const char *name = nullptr, OptionArgument argument = ArgumentNone, |