1 #ifndef _ots_DataStructs_h
2 #define _ots_DataStructs_h
4 #include "otsdaq/Macros/CoutMacros.h"
11 template<
typename N,
typename V>
15 Parameter(N name, V value) : name_(name), value_(value) { ; }
18 const N&
getName(
void)
const {
return name_; }
19 const V& getValue(
void)
const {
return value_; }
20 const std::pair<N, V> getParameterPair(
void)
22 return std::pair<N, V>(name_, value_);
26 void setName(
const N name) { name_ = name; }
27 void setValue(
const V value) { value_ = value; }
28 void set(
const N name,
const V& value)
33 void set(std::pair<N, V> parameter)
35 name_ = parameter.first;
36 value_ = parameter.second;
44 template<
typename N,
typename V>
48 typedef std::map<N, V> ParameterMap;
49 typedef typename ParameterMap::iterator iterator;
50 typedef typename ParameterMap::const_iterator const_iterator;
60 for(const_iterator it = theParameters_.begin(); it != theParameters_.end(); it++)
61 names.insert(it->first);
64 const V& getValue(
const N name)
const
66 auto it = theParameters_.find(name);
67 if(it == theParameters_.end())
69 __SS__ <<
"Parameter '" << name <<
"' not found!" << __E__;
74 Parameter<N, V> getParameter(
const N name)
76 return Parameter<N, V>(name, getValue(name));
80 void addParameter(
const N name,
const V value) { theParameters_[name] = value; }
83 theParameters_[parameter.
getName()] = parameter.getValue();
87 theParameters_[parameterPair.first] = parameterPair.second;
91 iterator
begin(
void) {
return theParameters_.begin(); }
92 iterator end(
void) {
return theParameters_.end(); }
93 const_iterator
begin(
void)
const {
return theParameters_.begin(); }
94 const_iterator end(
void)
const {
return theParameters_.end(); }
95 iterator find(N name) {
return theParameters_.find(name); }
96 const_iterator find(N name)
const {
return theParameters_.find(name); }
99 unsigned int size(
void)
const {
return theParameters_.size(); }
100 void clear(
void) { theParameters_.clear(); }
103 ParameterMap theParameters_;
const N & getName(void) const
Getters.
void setName(const N name)
Setters.
unsigned int size(void) const
Methods.
iterator begin(void)
Iterators.
void addParameter(const N name, const V value)
Setters.
std::set< N > getNames(void) const
Getters.