diff --git a/src/cam/options.cpp b/src/cam/options.cpp index 4c9f3a36d..eb59376fa 100644 --- a/src/cam/options.cpp +++ b/src/cam/options.cpp @@ -273,6 +273,21 @@ 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; @@ -280,7 +295,7 @@ OptionValue::operator int() const 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 e1fd62ecd..2d3aa50b5 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_;