Chrysalis - Pattern
Toggle main menu visibility
Loading...
Searching...
No Matches
Parameter.h
Go to the documentation of this file.
1
#ifndef CHRYSALIS_PARAMETER_H
2
#define CHRYSALIS_PARAMETER_H
3
4
#include "
BaseNamedElement.h
"
5
#include "
NamedElementsContainer.h
"
6
#include "
observers/BaseObservable.h
"
7
#include "
observers/ParameterObserver.h
"
8
9
namespace
Chrysalis
{
10
class
Parameter:
public
BaseNamedElement
,
public
BaseObservable
<ParameterObserver> {
11
PROVIDE_DEFAULT_SERIALIZATION_ACCESS
(Parameter)
12
SERIALIZE_DERIVED_FROM
(
BaseNamedElement
, value_, defaultValue_)
13
public
:
14
explicit
Parameter(
const
std::string& name);
15
16
static
Parameter*
create
(
const
std::string& name,
double
value);
17
static
Parameter*
createDefault
(
const
std::string& name,
double
defaultValue);
18
19
[[nodiscard]]
bool
isValid
()
const
;
20
[[nodiscard]]
bool
hasValue
()
const
;
21
[[nodiscard]]
bool
hasDefaultValue
()
const
;
22
23
[[nodiscard]]
double
getValue
()
const
;
24
[[nodiscard]]
double
getDefaultValue
()
const
;
25
26
void
setValue
(
double
value);
27
void
setDefaultValue
(
double
defaultValue);
28
private
:
29
boost::optional<double> value_;
30
boost::optional<double> defaultValue_;
31
};
32
using
ParametersContainer
=
NamedElementsContainer<Parameter>
;
33
}
34
35
#endif
//CHRYSALIS_PARAMETER_H
BaseNamedElement.h
BaseObservable.h
NamedElementsContainer.h
ParameterObserver.h
Chrysalis::BaseNamedElement::BaseNamedElement
BaseNamedElement()=default
Chrysalis::BaseObservable< ParameterObserver >::BaseObservable
BaseObservable()=default
Chrysalis::NamedElementsContainer
Definition
NamedElementsContainer.h:12
Chrysalis::Parameter::create
static Parameter * create(const std::string &name, double value)
Definition
Parameter.cpp:8
Chrysalis::Parameter::setValue
void setValue(double value)
Definition
Parameter.cpp:40
Chrysalis::Parameter::getDefaultValue
double getDefaultValue() const
Definition
Parameter.cpp:36
Chrysalis::Parameter::createDefault
static Parameter * createDefault(const std::string &name, double defaultValue)
Definition
Parameter.cpp:14
Chrysalis::Parameter::getValue
double getValue() const
Definition
Parameter.cpp:32
Chrysalis::Parameter::isValid
bool isValid() const
Definition
Parameter.cpp:20
Chrysalis::Parameter::setDefaultValue
void setDefaultValue(double defaultValue)
Definition
Parameter.cpp:45
Chrysalis::Parameter::hasValue
bool hasValue() const
Definition
Parameter.cpp:24
Chrysalis::Parameter::hasDefaultValue
bool hasDefaultValue() const
Definition
Parameter.cpp:28
Chrysalis
Definition
Argument.h:9
Chrysalis::ParametersContainer
NamedElementsContainer< Parameter > ParametersContainer
Definition
Parameter.h:32
PROVIDE_DEFAULT_SERIALIZATION_ACCESS
#define PROVIDE_DEFAULT_SERIALIZATION_ACCESS(Class)
Definition
serialization.h:45
SERIALIZE_DERIVED_FROM
#define SERIALIZE_DERIVED_FROM(Base,...)
Definition
serialization.h:71
pattern
include
Parameter.h
Generated by
1.17.0