1 #ifndef GAUDIKERNEL_KEYEDOBJECTMANAGER_H
2 #define GAUDIKERNEL_KEYEDOBJECTMANAGER_H
5 #include "GaudiKernel/Kernel.h"
6 #include "GaudiKernel/ClassID.h"
7 #include "GaudiKernel/KeyedTraits.h"
44 template <
class SETUP>
47 typedef std::vector<void*> seq_type;
51 mutable long m_direct;
52 mutable long m_keyCtxt;
66 virtual ~KeyedObjectManager();
72 long isDirect()
const {
return m_direct; }
74 void* object(
long key)
const;
80 void* erase(
long key,
const void* obj);
82 long erase(seq_type::iterator beg, seq_type::iterator
end);
84 void reserve(
long size);
88 void setup(
void* seq,
void** rndm);
90 static CLID classID();
94 typedef KeyedObjectManager< map >
Map;
96 typedef KeyedObjectManager< hashmap >
HashMap;
98 typedef KeyedObjectManager< vector >
Vector;
100 typedef KeyedObjectManager< array >
Array;
102 #endif // GAUDIKERNEL_KEYEDOBJECTMANAGER_H
KeyedObjectManager< array > Array
Forward declaration of specialized redirection array object manager.
KeyedObjectManager< vector > Vector
Forward declaration of specialized std::vector-like object manager.
struct GAUDI_API vector
Parametrisation class for vector-like implementation.
struct GAUDI_API map
Parametrisation class for map-like implementation.
auto end(reverse_wrapper< T > &w)
struct GAUDI_API hashmap
Parametrisation class for hashmap-like implementation.
unsigned int CLID
Class ID definition.
All classes that their objects may be contained in an LHCb ObjectContainer (e.g.
struct GAUDI_API array
Parametrisation class for redirection array - like implementation.
KeyedObjectManager< hashmap > HashMap
Forward declaration of specialized std::hashmap-like object manager.
long(* MANIPULATOR)(void *)
Object manipulator type definition.
ObjectContainerBase is the base class for Gaudi container classes.
KeyedObjectManager< map > Map
Forward declaration of specialized std::map-like object manager.