![]() |
The Gaudi Framework
master (933c680c)
|
KeyedObjectManager Class to manage keyed objects. More...
#include </builds/gaudi/Gaudi/GaudiKernel/include/GaudiKernel/KeyedObjectManager.h>

Public Member Functions | |
| KeyedObjectManager () | |
| Standard Constructor. | |
| KeyedObjectManager (KeyedObjectManager &&other) | |
| virtual | ~KeyedObjectManager () |
| Standard Destructor. | |
| void | clearDirect () |
| Clear all direct access fields. | |
| long | insertDirect (ObjectContainerBase *b, ContainedObject *c, void *o, long k) |
| Insert element into direct access map. | |
| long | isDirect () const |
| Check if the container is dirty. | |
| void * | object (long key) const |
| Retrieve object identified by a key from the container. | |
| long | insert (ObjectContainerBase *b, ContainedObject *c, void *o, long *k) |
| Insert new object into container. | |
| long | insert (ObjectContainerBase *b, ContainedObject *c, void *o, long k) |
| Insert new object into container. | |
| void * | erase (long key, const void *obj) |
| Remove object from container (very inefficient if key is invalid) | |
| long | erase (seq_type::iterator beg, seq_type::iterator end) |
| Remove object by sequential iterators. | |
| void | reserve (long size) |
| Reserve buffer space. | |
| void | clear () |
| Clear content of the vector. | |
| void | setup (void *seq, void **rndm) |
| Setup of the Map and the parent object. | |
| CLID | classID () |
| CLID | classID () |
| void * | object (long value) const |
| long | insert (ObjectContainerBase *b, ContainedObject *c, void *o, long *k) |
| long | insert (ObjectContainerBase *b, ContainedObject *c, void *o, long k) |
| long | insertDirect (ObjectContainerBase *b, ContainedObject *c, void *o, long k) |
| void | clearDirect () |
| void * | erase (long key, const void *obj) |
| long | erase (seq_type::iterator beg, seq_type::iterator end) |
| CLID | classID () |
| void * | object (long) const |
| long | insert (ObjectContainerBase *b, ContainedObject *c, void *o, long *k) |
| long | insert (ObjectContainerBase *b, ContainedObject *c, void *o, long k) |
| long | insertDirect (ObjectContainerBase *b, ContainedObject *c, void *o, long k) |
| void | clearDirect () |
| void * | erase (long, const void *) |
| long | erase (seq_type::iterator beg, seq_type::iterator end) |
| CLID | classID () |
Static Public Member Functions | |
| static CLID | classID () |
| Access CLID for this type of container. | |
Private Types | |
| typedef std::vector< void * > | seq_type |
Private Member Functions | |
| void | onDirty () const |
| Callback when the container becomes dirty. | |
| void | onDirty () const |
| void | onDirty () const |
Private Attributes | ||
| seq_type * | m_seq | |
| Container holding array like container. | ||
| long | m_direct | |
| Dirty flag. | ||
| 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 45 of file KeyedTraits.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 106 of file KeyedObjectManager.cpp.
|
virtual |
Standard Destructor.
Definition at line 120 of file KeyedObjectManager.cpp.
|
static |
Access CLID for this type of container.
| CLID Containers::KeyedObjectManager< Containers::map >::classID | ( | ) |
Definition at line 297 of file KeyedObjectManager.cpp.
| CLID Containers::KeyedObjectManager< Containers::hashmap >::classID | ( | ) |
Definition at line 301 of file KeyedObjectManager.cpp.
| CLID Containers::KeyedObjectManager< __A >::classID | ( | ) |
Definition at line 491 of file KeyedObjectManager.cpp.
| CLID Containers::KeyedObjectManager< __V >::classID | ( | ) |
Definition at line 575 of file KeyedObjectManager.cpp.
| void Containers::KeyedObjectManager< T >::clear | ( | ) |
Clear content of the vector.
Definition at line 244 of file KeyedObjectManager.cpp.
| void Containers::KeyedObjectManager< T >::clearDirect | ( | ) |
| void Containers::KeyedObjectManager< __A >::clearDirect | ( | ) |
| void Containers::KeyedObjectManager< __V >::clearDirect | ( | ) |
Definition at line 550 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 200 of file KeyedObjectManager.cpp.
| void * Containers::KeyedObjectManager< __A >::erase | ( | long | key, |
| const void * | obj ) |
Definition at line 422 of file KeyedObjectManager.cpp.
| void * Containers::KeyedObjectManager< __V >::erase | ( | long | , |
| const void * | ) |
Definition at line 558 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 267 of file KeyedObjectManager.cpp.
| long Containers::KeyedObjectManager< __A >::erase | ( | seq_type::iterator | beg, |
| seq_type::iterator | end ) |
| long Containers::KeyedObjectManager< __V >::erase | ( | seq_type::iterator | beg, |
| seq_type::iterator | end ) |
Definition at line 565 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< __A >::insert | ( | ObjectContainerBase * | b, |
| ContainedObject * | c, | ||
| void * | o, | ||
| long * | k ) |
Definition at line 346 of file KeyedObjectManager.cpp.
| long Containers::KeyedObjectManager< __V >::insert | ( | ObjectContainerBase * | b, |
| ContainedObject * | c, | ||
| void * | o, | ||
| long * | k ) |
| 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 149 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 361 of file KeyedObjectManager.cpp.
| long Containers::KeyedObjectManager< __V >::insert | ( | ObjectContainerBase * | b, |
| ContainedObject * | c, | ||
| void * | o, | ||
| long | k ) |
Definition at line 530 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 175 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 385 of file KeyedObjectManager.cpp.
| long Containers::KeyedObjectManager< __V >::insertDirect | ( | ObjectContainerBase * | b, |
| ContainedObject * | c, | ||
| void * | o, | ||
| long | k ) |
Definition at line 538 of file KeyedObjectManager.cpp.
|
inline |
| void * Containers::KeyedObjectManager< T >::object | ( | long | key | ) | const |
| void * Containers::KeyedObjectManager< __A >::object | ( | long | value | ) | const |
Definition at line 321 of file KeyedObjectManager.cpp.
| void * Containers::KeyedObjectManager< __V >::object | ( | long | ) | const |
Definition at line 508 of file KeyedObjectManager.cpp.
|
private |
|
private |
Definition at line 335 of file KeyedObjectManager.cpp.
|
private |
Definition at line 514 of file KeyedObjectManager.cpp.
| void Containers::KeyedObjectManager< T >::reserve | ( | long | size | ) |
| void Containers::KeyedObjectManager< T >::setup | ( | void * | seq, |
| void ** | rndm ) |
Setup of the Map and the parent object.
Definition at line 127 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.