summaryrefslogtreecommitdiff
path: root/src/cam/options.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/cam/options.h')
-rw-r--r--src/cam/options.h22
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,