25 #include <boost/blank.hpp> 26 #include <boost/variant.hpp> 42 _change_count(0), _is_set(true), _key(key),
43 _description(
"missing description") {
check_key(key); }
54 enum class Type { Bool, Int, Float, String };
66 Parameter(std::string key, T min, T max) : _value(T(0)),
67 _range(std::array<T, 2>({{min, max}})), _access_count(0), _change_count(0),
68 _is_set(
false), _key(key), _description(
"missing description")
72 Parameter(std::string key, std::set<std::string> range) : _value(std::string(
"")),
73 _range(range), _access_count(0), _change_count(0), _is_set(false),
74 _key(key), _description(
"missing description") {
check_key(key); }
90 std::string
key()
const;
115 void set_range(
int min_value,
int max_value);
121 void set_range(
double min_value,
double max_value);
126 void set_range(std::set<std::string> range);
131 void get_range(
int& min_value,
int& max_value)
const;
136 void get_range(
double& min_value,
double& max_value)
const;
140 void get_range(std::set<std::string>& range)
const;
163 boost::variant<boost::blank, bool, int, double, std::string>
value()
const;
166 operator int()
const;
169 operator std::size_t()
const;
172 operator double()
const;
175 operator std::string()
const;
178 operator bool()
const;
190 std::string
str()
const;
198 boost::variant<boost::blank, bool, int, double, std::string> _value;
201 boost::variant<boost::blank, std::array<int, 2>, std::array<double, 2>,
202 std::set<std::string>> _range;
205 mutable std::size_t _access_count;
208 std::size_t _change_count;
217 std::string _description;
std::string value_str() const
Return value string.
Definition: Parameter.cpp:362
Type
Enum for the parameter type.
Definition: Parameter.h:54
Parameter(std::string key, T x)
Definition: Parameter.h:41
boost::variant< boost::blank, bool, int, double, std::string > value() const
Return parameter value.
Definition: Parameter.cpp:245
std::string description() const
Definition: Parameter.cpp:65
void set_range(int min_value, int max_value)
Definition: Parameter.cpp:90
void get_range(int &min_value, int &max_value) const
Definition: Parameter.cpp:129
Base class for parameters.
Definition: Parameter.h:33
Parameter & operator=(const Parameter &)=default
Assignment operator.
static void check_key(std::string key)
Check that key name is allowed.
Definition: Parameter.cpp:330
bool is_set() const
Definition: Parameter.cpp:70
std::size_t change_count() const
Definition: Parameter.cpp:85
std::string str() const
Return short string description.
Definition: Parameter.cpp:420
std::string type_str() const
Return value type string.
Definition: Parameter.cpp:342
std::string range_str() const
Return range string.
Definition: Parameter.cpp:382
Parameter(std::string key, T min, T max)
Definition: Parameter.h:66
virtual ~Parameter()
Destructor.
Definition: Parameter.cpp:55
std::string key() const
Definition: Parameter.cpp:60
std::size_t access_count() const
Definition: Parameter.cpp:80
void reset()
Reset the parameter to empty, so that is_set() returns false.
Definition: Parameter.cpp:75
Parameter(std::string key, std::set< std::string > range)
Create and unset string parameter with set of allowable strings.
Definition: Parameter.h:72