summaryrefslogtreecommitdiff
path: root/src/cam/options.cpp
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2019-02-01 11:26:50 +0200
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2019-02-01 11:42:10 +0200
commit3fd5ade00c5da727184c6c5aa728d4ee27bb6ac2 (patch)
treebc919a065b10c5eff452e1d3aa37f146ae6d1e7a /src/cam/options.cpp
parent86a7b45bdb5221b7ef8a293b8a501be3296a84b8 (diff)
cam: options: Add explicit conversion methods to OptionValue
The OptionValue class defines operators to convert the variant to all the supported option types. As a convenience, add explicit methods to perform the same operations, avoiding the need to write long static_cast<>() statements in the caller. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Diffstat (limited to 'src/cam/options.cpp')
-rw-r--r--src/cam/options.cpp19
1 files changed, 17 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();