1 #ifndef _ots_DataStructs_h
2 #define _ots_DataStructs_h
4 #include "otsdaq-core/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;
53 Parameters(N name, V value) { addParameter(name, value); }
57 std::set<N> getNames(
void)
const
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__;
80 void addParameter(
const N name,
const V value) { theParameters_[name] = value; }
83 theParameters_[parameter.getName()] = parameter.getValue();
85 void addParameter(
const std::pair<N, V> parameterPair)
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_;