diff options
author | Niklas Söderlund <niklas.soderlund@ragnatech.se> | 2019-01-28 00:35:12 +0100 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2019-02-01 11:41:55 +0200 |
commit | c6468e45d1dedb295f6e67b3a49d2d4f4dfeee1c (patch) | |
tree | 8339946ea925852335c2d08e65df9cbaa0571cef /src/cam/options.cpp | |
parent | 377516a084467692cb275526a16d43b25f773e46 (diff) |
cam: options: Create a template class for options
In preparation to adding more parsers create a template class to hold
the parsed information. The rational for making it a template are that
different parsers can index the options using different data types.
The OptionsParser index its options using an int while the upcoming
KeyValyeParser will index its options using strings for example.
Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'src/cam/options.cpp')
-rw-r--r-- | src/cam/options.cpp | 50 |
1 files changed, 26 insertions, 24 deletions
diff --git a/src/cam/options.cpp b/src/cam/options.cpp index 83601270..f48bd1fc 100644 --- a/src/cam/options.cpp +++ b/src/cam/options.cpp @@ -12,6 +12,32 @@ #include "options.h" +template <typename T> +bool OptionsBase<T>::valid() const +{ + return !values_.empty(); +} + +template <typename T> +bool OptionsBase<T>::isSet(const T &opt) const +{ + return values_.find(opt) != values_.end(); +} + +template <typename T> +const std::string &OptionsBase<T>::operator[](const T &opt) const +{ + return values_.find(opt)->second; +} + +template <typename T> +void OptionsBase<T>::clear() +{ + values_.clear(); +} + +template class OptionsBase<int>; + void OptionsParser::addOption(int opt, const char *help, const char *name, OptionArgument argument, const char *argumentName) { @@ -166,27 +192,3 @@ void OptionsParser::usage() } } } - -OptionsParser::Options::Options() -{ -} - -bool OptionsParser::Options::valid() const -{ - return !values_.empty(); -} - -bool OptionsParser::Options::isSet(int opt) const -{ - return values_.find(opt) != values_.end(); -} - -const std::string &OptionsParser::Options::operator[](int opt) const -{ - return values_.find(opt)->second; -} - -void OptionsParser::Options::clear() -{ - values_.clear(); -} |