SourceXtractorPlusPlus  0.13
Please provide a description of the project.
BasicParameter.h
Go to the documentation of this file.
1 
23 #ifndef MODELFITTING_BASICPARAMETER_H
24 #define MODELFITTING_BASICPARAMETER_H
25 
26 #include <functional> // for std::function of the parameter observer
27 #include <map> // for std::map
28 #include <memory>
29 
30 namespace ModelFitting {
31 
44 
45 public:
46 
47  /*
48  * Observers are functions
49  */
50  using ParameterObserver = std::function<void(double)>;
51 
52  virtual ~BasicParameter();
53 
54  BasicParameter(const BasicParameter&) = delete;
58 
59  /*
60  * @brief Getter to access the private parameter value
61  */
62  virtual double getValue() const {
63  return m_value;
64  }
65 
73 
74  bool removeObserver(std::size_t id);
75 
76  bool isObserved() const;
77 
78 protected:
79  typedef std::function<void(void)> GetValueHook;
80 
82 
83  BasicParameter(const double value) :
84  m_value(value) {
85  }
86 
87  /*
88  * @brief Setter for the new value, which also notify the
89  * observers, by calling them with the new value.
90  */
91  virtual void setValue(const double new_value);
92 
93 protected:
94  double m_value;
95 
96 private:
99 };
100 
101 }
102 
103 #endif /* MODELFITTING_BASICPARAMETER_H */
ModelFitting::BasicParameter::m_last_obs_id
std::size_t m_last_obs_id
Definition: BasicParameter.h:98
ModelFitting::BasicParameter::GetValueHook
std::function< void(void)> GetValueHook
Definition: BasicParameter.h:79
ModelFitting::BasicParameter::operator=
BasicParameter & operator=(const BasicParameter &)=delete
ModelFitting::BasicParameter::~BasicParameter
virtual ~BasicParameter()
ModelFitting::BasicParameter::m_observer_map
std::map< std::size_t, ParameterObserver > m_observer_map
Definition: BasicParameter.h:97
ModelFitting::BasicParameter::setValue
virtual void setValue(const double new_value)
Definition: BasicParameter.cpp:32
ModelFitting::BasicParameter::getValue
virtual double getValue() const
Definition: BasicParameter.h:62
std::function
ModelFitting::BasicParameter::BasicParameter
BasicParameter(const double value)
Definition: BasicParameter.h:83
ModelFitting::BasicParameter::addObserver
std::size_t addObserver(ParameterObserver observer)
The addObserver method adding observer to the member list.
Definition: BasicParameter.cpp:39
ModelFitting::BasicParameter::BasicParameter
BasicParameter(BasicParameter &&)=delete
ModelFitting::BasicParameter::operator=
BasicParameter & operator=(BasicParameter &&)=delete
ModelFitting::BasicParameter::isObserved
bool isObserved() const
Definition: BasicParameter.cpp:49
std::map
STL class.
ModelFitting::BasicParameter::m_value
double m_value
Definition: BasicParameter.h:94
ModelFitting::BasicParameter::m_get_value_hook
GetValueHook m_get_value_hook
Definition: BasicParameter.h:81
ModelFitting::BasicParameter::ParameterObserver
std::function< void(double)> ParameterObserver
Definition: BasicParameter.h:50
std::size_t
ModelFitting::BasicParameter
The parameter base class.
Definition: BasicParameter.h:43
ModelFitting::BasicParameter::BasicParameter
BasicParameter(const BasicParameter &)=delete
ModelFitting
Definition: AsinhChiSquareComparator.h:30
ModelFitting::BasicParameter::removeObserver
bool removeObserver(std::size_t id)
Definition: BasicParameter.cpp:45