The Gaudi Framework
v30r3 (a5ef0a68)
|
KeyedObjectManager Class to manage keyed objects. More...
#include <GaudiKernel/KeyedObjectManager.h>
Public Member Functions | |
KeyedObjectManager () | |
Standard Constructor. More... | |
KeyedObjectManager (KeyedObjectManager &&other) | |
virtual | ~KeyedObjectManager () |
Standard Destructor. More... | |
void | clearDirect () |
Clear all direct access fields. More... | |
long | insertDirect (ObjectContainerBase *b, ContainedObject *c, void *o, long k) |
Insert element into direct access map. More... | |
long | isDirect () const |
Check if the container is dirty. More... | |
void * | object (long key) const |
Retrieve object identified by a key from the container. More... | |
long | insert (ObjectContainerBase *b, ContainedObject *c, void *o, long *k) |
Insert new object into container. More... | |
long | insert (ObjectContainerBase *b, ContainedObject *c, void *o, long k) |
Insert new object into container. More... | |
void * | erase (long key, const void *obj) |
Remove object from container (very inefficient if key is invalid) More... | |
long | erase (seq_type::iterator beg, seq_type::iterator end) |
Remove object by sequential iterators. More... | |
void | reserve (long size) |
Reserve buffer space. More... | |
void | clear () |
Clear content of the vector. More... | |
void | setup (void *seq, void **rndm) |
Setup of the Map and the parent object. More... | |
template<> | |
CLID | classID () |
template<> | |
CLID | classID () |
template<> | |
void * | object (long value) const |
template<> | |
long | insert (ObjectContainerBase *b, ContainedObject *c, void *o, long *k) |
template<> | |
long | insert (ObjectContainerBase *b, ContainedObject *c, void *o, long k) |
template<> | |
long | insertDirect (ObjectContainerBase *b, ContainedObject *c, void *o, long k) |
template<> | |
void | clearDirect () |
template<> | |
void * | erase (long key, const void *obj) |
template<> | |
long | erase (seq_type::iterator beg, seq_type::iterator end) |
template<> | |
CLID | classID () |
template<> | |
void * | object (long) const |
template<> | |
long | insert (ObjectContainerBase *b, ContainedObject *c, void *o, long *k) |
template<> | |
long | insert (ObjectContainerBase *b, ContainedObject *c, void *o, long k) |
template<> | |
long | insertDirect (ObjectContainerBase *b, ContainedObject *c, void *o, long k) |
template<> | |
void | clearDirect () |
template<> | |
void * | erase (long, const void *) |
template<> | |
long | erase (seq_type::iterator beg, seq_type::iterator end) |
template<> | |
CLID | classID () |
Static Public Member Functions | |
static CLID | classID () |
Access CLID for this type of container. More... | |
Private Types | |
typedef std::vector< void * > | seq_type |
Private Member Functions | |
void | onDirty () const |
Callback when the container becomes dirty. More... | |
template<> | |
void | onDirty () const |
template<> | |
void | onDirty () const |
Private Attributes | |
seq_type * | m_seq |
Container holding array like container. More... | |
long | m_direct |
Dirty flag. More... | |
long | m_keyCtxt |
union { | |
char buffer [128] | |
Buffer space to hold keyed container. More... | |
SETUP * s | |
} | m_setup |
KeyedObjectManager Class to manage keyed objects.
Object manager class.
This class is instantiated for two container types: map and hashmap. Other types are possible, but currently not supported. Other implementations may be achieved by specializing the SETUP class.
As an example below the specialization for a vector like implementation is shown.
Definition at line 46 of file KeyedObjectManager.h.
|
private |
Definition at line 49 of file KeyedObjectManager.h.
Containers::KeyedObjectManager< T >::KeyedObjectManager | ( | ) |
Standard Constructor.
Definition at line 97 of file KeyedObjectManager.cpp.
Containers::KeyedObjectManager< T >::KeyedObjectManager | ( | KeyedObjectManager< SETUP > && | other | ) |
Definition at line 107 of file KeyedObjectManager.cpp.
|
virtual |
Standard Destructor.
Definition at line 118 of file KeyedObjectManager.cpp.
|
static |
Access CLID for this type of container.
CLID Containers::KeyedObjectManager< Containers::map >::classID | ( | ) |
Definition at line 319 of file KeyedObjectManager.cpp.
CLID Containers::KeyedObjectManager< Containers::hashmap >::classID | ( | ) |
Definition at line 324 of file KeyedObjectManager.cpp.
CLID Containers::KeyedObjectManager< __A >::classID | ( | ) |
Definition at line 542 of file KeyedObjectManager.cpp.
CLID Containers::KeyedObjectManager< __V >::classID | ( | ) |
Definition at line 638 of file KeyedObjectManager.cpp.
void Containers::KeyedObjectManager< T >::clear | ( | ) |
Clear content of the vector.
Definition at line 262 of file KeyedObjectManager.cpp.
void Containers::KeyedObjectManager< T >::clearDirect | ( | ) |
Clear all direct access fields.
Definition at line 269 of file KeyedObjectManager.cpp.
void Containers::KeyedObjectManager< __A >::clearDirect | ( | ) |
Definition at line 453 of file KeyedObjectManager.cpp.
void Containers::KeyedObjectManager< __V >::clearDirect | ( | ) |
Definition at line 610 of file KeyedObjectManager.cpp.
void * Containers::KeyedObjectManager< T >::erase | ( | long | key, |
const void * | obj | ||
) |
Remove object from container (very inefficient if key is invalid)
Definition at line 215 of file KeyedObjectManager.cpp.
long Containers::KeyedObjectManager< T >::erase | ( | seq_type::iterator | beg, |
seq_type::iterator | end | ||
) |
Remove object by sequential iterators.
Definition at line 287 of file KeyedObjectManager.cpp.
void * Containers::KeyedObjectManager< __A >::erase | ( | long | key, |
const void * | obj | ||
) |
Definition at line 463 of file KeyedObjectManager.cpp.
long Containers::KeyedObjectManager< __A >::erase | ( | seq_type::iterator | beg, |
seq_type::iterator | end | ||
) |
Definition at line 509 of file KeyedObjectManager.cpp.
void * Containers::KeyedObjectManager< __V >::erase | ( | long | , |
const void * | |||
) |
Definition at line 619 of file KeyedObjectManager.cpp.
long Containers::KeyedObjectManager< __V >::erase | ( | seq_type::iterator | beg, |
seq_type::iterator | end | ||
) |
Definition at line 627 of file KeyedObjectManager.cpp.
long Containers::KeyedObjectManager< T >::insert | ( | ObjectContainerBase * | b, |
ContainedObject * | c, | ||
void * | o, | ||
long * | k | ||
) |
Insert new object into container.
Definition at line 142 of file KeyedObjectManager.cpp.
long Containers::KeyedObjectManager< T >::insert | ( | ObjectContainerBase * | b, |
ContainedObject * | c, | ||
void * | o, | ||
long | k | ||
) |
Insert new object into container.
Keep major key value
Definition at line 150 of file KeyedObjectManager.cpp.
long Containers::KeyedObjectManager< __A >::insert | ( | ObjectContainerBase * | b, |
ContainedObject * | c, | ||
void * | o, | ||
long * | k | ||
) |
Definition at line 377 of file KeyedObjectManager.cpp.
long Containers::KeyedObjectManager< __A >::insert | ( | ObjectContainerBase * | b, |
ContainedObject * | c, | ||
void * | o, | ||
long | k | ||
) |
Keep major key value
Extend redirection array and insert
Definition at line 393 of file KeyedObjectManager.cpp.
long Containers::KeyedObjectManager< __V >::insert | ( | ObjectContainerBase * | b, |
ContainedObject * | c, | ||
void * | o, | ||
long * | k | ||
) |
Definition at line 575 of file KeyedObjectManager.cpp.
long Containers::KeyedObjectManager< __V >::insert | ( | ObjectContainerBase * | b, |
ContainedObject * | c, | ||
void * | o, | ||
long | k | ||
) |
Definition at line 586 of file KeyedObjectManager.cpp.
long Containers::KeyedObjectManager< T >::insertDirect | ( | ObjectContainerBase * | b, |
ContainedObject * | c, | ||
void * | o, | ||
long | k | ||
) |
Insert element into direct access map.
Keep major key value
Definition at line 183 of file KeyedObjectManager.cpp.
long Containers::KeyedObjectManager< __A >::insertDirect | ( | ObjectContainerBase * | b, |
ContainedObject * | c, | ||
void * | o, | ||
long | k | ||
) |
Keep major key value
Extend redirection array and insert
Definition at line 422 of file KeyedObjectManager.cpp.
long Containers::KeyedObjectManager< __V >::insertDirect | ( | ObjectContainerBase * | b, |
ContainedObject * | c, | ||
void * | o, | ||
long | k | ||
) |
Definition at line 597 of file KeyedObjectManager.cpp.
|
inline |
Check if the container is dirty.
Definition at line 75 of file KeyedObjectManager.h.
void * Containers::KeyedObjectManager< T >::object | ( | long | key | ) | const |
Retrieve object identified by a key from the container.
Definition at line 238 of file KeyedObjectManager.cpp.
void * Containers::KeyedObjectManager< __A >::object | ( | long | value | ) | const |
Definition at line 346 of file KeyedObjectManager.cpp.
void * Containers::KeyedObjectManager< __V >::object | ( | long | ) | const |
Definition at line 561 of file KeyedObjectManager.cpp.
|
private |
Callback when the container becomes dirty.
Definition at line 132 of file KeyedObjectManager.cpp.
|
private |
Definition at line 363 of file KeyedObjectManager.cpp.
|
private |
Definition at line 568 of file KeyedObjectManager.cpp.
void Containers::KeyedObjectManager< T >::reserve | ( | long | size | ) |
Reserve buffer space.
Definition at line 247 of file KeyedObjectManager.cpp.
void Containers::KeyedObjectManager< T >::setup | ( | void * | seq, |
void ** | rndm | ||
) |
Setup of the Map and the parent object.
Definition at line 125 of file KeyedObjectManager.cpp.
char Containers::KeyedObjectManager< SETUP >::buffer[128] |
Buffer space to hold keyed container.
Definition at line 57 of file KeyedObjectManager.h.
|
mutableprivate |
Dirty flag.
Definition at line 53 of file KeyedObjectManager.h.
|
mutableprivate |
Definition at line 54 of file KeyedObjectManager.h.
|
private |
Container holding array like container.
Definition at line 51 of file KeyedObjectManager.h.
union { ... } Containers::KeyedObjectManager< SETUP >::m_setup |
SETUP* Containers::KeyedObjectManager< SETUP >::s |
Definition at line 58 of file KeyedObjectManager.h.