cam: options: Create separate enum for OptionValue types

In preparation for support of multiple instances of the same option,
create a separate enum for the OptionValue types as it will diverge from
enum OptionType.

Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
Niklas Söderlund 2019-03-22 02:08:51 +01:00
parent 945478dbc0
commit af45435014
2 changed files with 17 additions and 10 deletions

View file

@ -248,27 +248,27 @@ void KeyValueParser::usage(int indent)
*/
OptionValue::OptionValue()
: type_(OptionNone)
: type_(ValueNone)
{
}
OptionValue::OptionValue(int value)
: type_(OptionInteger), integer_(value)
: type_(ValueInteger), integer_(value)
{
}
OptionValue::OptionValue(const char *value)
: type_(OptionString), string_(value)
: type_(ValueString), string_(value)
{
}
OptionValue::OptionValue(const std::string &value)
: type_(OptionString), string_(value)
: type_(ValueString), string_(value)
{
}
OptionValue::OptionValue(const KeyValueParser::Options &value)
: type_(OptionKeyValue), keyValues_(value)
: type_(ValueKeyValue), keyValues_(value)
{
}
@ -289,7 +289,7 @@ OptionValue::operator KeyValueParser::Options() const
int OptionValue::toInteger() const
{
if (type_ != OptionInteger)
if (type_ != ValueInteger)
return 0;
return integer_;
@ -297,7 +297,7 @@ int OptionValue::toInteger() const
std::string OptionValue::toString() const
{
if (type_ != OptionString)
if (type_ != ValueString)
return std::string();
return string_;
@ -305,7 +305,7 @@ std::string OptionValue::toString() const
KeyValueParser::Options OptionValue::toKeyValues() const
{
if (type_ != OptionKeyValue)
if (type_ != ValueKeyValue)
return KeyValueParser::Options();
return keyValues_;

View file

@ -79,13 +79,20 @@ private:
class OptionValue
{
public:
enum ValueType {
ValueNone,
ValueInteger,
ValueString,
ValueKeyValue,
};
OptionValue();
OptionValue(int value);
OptionValue(const char *value);
OptionValue(const std::string &value);
OptionValue(const KeyValueParser::Options &value);
OptionType type() const { return type_; }
ValueType type() const { return type_; }
operator int() const;
operator std::string() const;
@ -96,7 +103,7 @@ public:
KeyValueParser::Options toKeyValues() const;
private:
OptionType type_;
ValueType type_;
int integer_;
std::string string_;
KeyValueParser::Options keyValues_;