summaryrefslogtreecommitdiff
path: root/src/cam
diff options
context:
space:
mode:
Diffstat (limited to 'src/cam')
-rw-r--r--src/cam/options.cpp21
-rw-r--r--src/cam/options.h22
2 files changed, 27 insertions, 16 deletions
diff --git a/src/cam/options.cpp b/src/cam/options.cpp
index 417c3ab4..41968caa 100644
--- a/src/cam/options.cpp
+++ b/src/cam/options.cpp
@@ -17,6 +17,21 @@
* Option
*/
+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;
+};
+
const char *Option::typeName() const
{
switch (type) {
@@ -129,6 +144,9 @@ template class OptionsBase<std::string>;
* KeyValueParser
*/
+KeyValueParser::KeyValueParser() = default;
+KeyValueParser::~KeyValueParser() = default;
+
bool KeyValueParser::addOption(const char *name, OptionType type,
const char *help, OptionArgument argument)
{
@@ -349,6 +367,9 @@ std::vector<OptionValue> OptionValue::toArray() const
* OptionsParser
*/
+OptionsParser::OptionsParser() = default;
+OptionsParser::~OptionsParser() = default;
+
bool OptionsParser::addOption(int opt, OptionType type, const char *help,
const char *name, OptionArgument argument,
const char *argumentName, bool array)
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,