bool hasDetail(const std::string &key) const
Checks if the object contains detail of the type T No verification is made if it is set.
void eraseDetail(const std::string &key)
erases the detail if it existed If the details inder that key did not exist, no action is performed.
void setFormat(const std::vector< std::string > &keys, bool mustBeSet=false)
defines the content (details which must to be stored) The method can be used to enforce certain conte...
const T & specimen() const
void mustSet(const std::string &key)
const T & getDetail(const std::string &key) const
return the value of the detail, if the key is absent the default is returned
void setDetail(const std::string &key, const T &value)
sets the value user the key, if they detail under that key already exists it's value is overwritten,...
MustSetList & detailsMustSetList()
void addDetail(const std::string &key, const T &value=T())
adds the value user the key, if they detail under that key already exists the exception is thrown If ...
std::map< std::string, T > & detailsMap()
154#define GEN_(type, varaible) \
155 template<> std::map<std::string, type>& TrigComposite::detailsMap() { return varaible; } \
156 template<> const std::map<std::string, type>& TrigComposite::detailsMap() const { return varaible; } \
157 template<> std::set<std::string>& TrigComposite::detailsMustSetList<type>() { return varaible##ToBeSet; } \
158 template<> const type& TrigComposite::specimen<type>() const { static const type x{}; return x;} \
159 template void TrigComposite::addDetail<type>(const std::string&, const type&); \
160 template void TrigComposite::setDetail<type>(const std::string&, const type&); \
161 template bool TrigComposite::hasDetail<type>(const std::string& ) const; \
162 template const type& TrigComposite::getDetail<type>(const std::string& ) const; \
163 template void TrigComposite::eraseDetail<type>(const std::string& ); \
164 template void TrigComposite::setFormat<type>(const std::vector<std::string>&, bool ); \
165 template void TrigComposite::mustSet<type>(const std::string&);