#include <Store.h>
Public Types | |
typedef registry_type::iterator | iterator |
typedef K | key_type |
typedef N | name_type |
typedef I | pimpl_type |
typedef Rep_type * | prep_type |
typedef std::map< name_type, prep_type > | registry_type |
typedef rep_type< name_type, pimpl_type > | Rep_type |
Public Member Functions | |
auto | begin () |
void | clear () |
prep_type | create (const name_type &) |
prep_type | create (const name_type &, pimpl_type) |
auto | end () |
bool | isDefined (const name_type &n) const |
bool | readOnly () const |
void | setReadOnly (bool b) |
auto | size () const |
Store () | |
void | swap (Store &) |
~Store () | |
Protected Member Functions | |
Store & | operator= (const Store &) |
Store (const Store &) | |
Protected Attributes | |
bool | readOnly_ |
std::map< name_type, prep_type > | reg_ |
A Store provides a place for objects of type I which are uniquely identified by there name of type N. The objects themselves can be accessed indirectly by the prep_type of the Store like
typedef Store<std::string,double> NamedDouble; NamedDouble::prep_type d = NamedDouble("Four", new double(4.)); double val = *(d->second); std::string name = d->first;
K is the key_type which is used as an index in the storage. It must fulfill all requirements for a key in a sorted associative container. N is the user-friendly name_type, which must be mapped uniquely to the key_type and vice versa. N itself must also fulfill all requirements of a key in a sorted associative container. The reason to provide K is that one might save some memory by compacting common parts of information contained in different instances of N, e.g. if N is a pair<string,string>, the first string being a 'namespace' the second a 'name' then K could be a pair<int,string> thus compacting the namespace-string to a simple int. K and N must support following unique conversions:
typedef registry_type::iterator DDI::Store< N, I, K >::iterator |
typedef K DDI::Store< N, I, K >::key_type |
typedef N DDI::Store< N, I, K >::name_type |
typedef I DDI::Store< N, I, K >::pimpl_type |
typedef Rep_type* DDI::Store< N, I, K >::prep_type |
typedef std::map<name_type,prep_type> DDI::Store< N, I, K >::registry_type |
typedef rep_type<name_type, pimpl_type> DDI::Store< N, I, K >::Rep_type |
|
inline |
DDI::Store< N, I, K >::~Store | ( | ) |
|
protected |
|
inline |
void DDI::Store< N, I, K >::clear | ( | ) |
Store< N, I, K >::prep_type DDI::Store< N, I, K >::create | ( | const name_type & | n | ) |
Definition at line 80 of file Store.h.
References Exception, Exhume::I, mps_fire::result, and tmp.
Store< N, I, K >::prep_type DDI::Store< N, I, K >::create | ( | const name_type & | n, |
pimpl_type | p | ||
) |
Definition at line 94 of file Store.h.
References Exception, AlCaHLTBitMon_ParallelJobs::p, mps_fire::result, and tmp.
|
inline |
bool DDI::Store< N, I, K >::isDefined | ( | const name_type & | n | ) | const |
Definition at line 123 of file Store.h.
References mps_fire::result.
|
protected |
|
inline |
|
inline |
|
inline |
void DDI::Store< N, I, K >::swap | ( | Store< N, I, K > & | storeToSwap | ) |
Definition at line 137 of file Store.h.
References DDI::Store< N, I, K >::readOnly_, and DDI::Store< N, I, K >::reg_.
|
protected |
Definition at line 75 of file Store.h.
Referenced by DDI::Store< DDName, DDRotationMatrix * >::readOnly(), DDI::Store< DDName, DDRotationMatrix * >::setReadOnly(), and DDI::Store< N, I, K >::swap().
|
protected |
Definition at line 72 of file Store.h.
Referenced by DDI::Store< DDName, DDRotationMatrix * >::begin(), DDI::Store< DDName, DDRotationMatrix * >::end(), DDI::Store< DDName, DDRotationMatrix * >::size(), and DDI::Store< N, I, K >::swap().