diff options
-rw-r--r-- | src/cam/options.cpp | 19 | ||||
-rw-r--r-- | src/cam/options.h | 4 |
2 files changed, 21 insertions, 2 deletions
diff --git a/src/cam/options.cpp b/src/cam/options.cpp index 4c9f3a36..eb59376f 100644 --- a/src/cam/options.cpp +++ b/src/cam/options.cpp @@ -274,13 +274,28 @@ OptionValue::OptionValue(const KeyValueParser::Options &value) OptionValue::operator int() const { + return toInteger(); +} + +OptionValue::operator std::string() const +{ + return toString(); +} + +OptionValue::operator KeyValueParser::Options() const +{ + return toKeyValues(); +} + +int OptionValue::toInteger() const +{ if (type_ != OptionInteger) return 0; return integer_; } -OptionValue::operator std::string() const +std::string OptionValue::toString() const { if (type_ != OptionString) return std::string(); @@ -288,7 +303,7 @@ OptionValue::operator std::string() const return string_; } -OptionValue::operator KeyValueParser::Options() const +KeyValueParser::Options OptionValue::toKeyValues() const { if (type_ != OptionKeyValue) return KeyValueParser::Options(); diff --git a/src/cam/options.h b/src/cam/options.h index e1fd62ec..2d3aa50b 100644 --- a/src/cam/options.h +++ b/src/cam/options.h @@ -91,6 +91,10 @@ public: operator std::string() const; operator KeyValueParser::Options() const; + int toInteger() const; + std::string toString() const; + KeyValueParser::Options toKeyValues() const; + private: OptionType type_; int integer_; |