Gaudi Framework, version v23r9

Home   Generated: Thu Jul 18 2013
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
KeyedObjectManager.h
Go to the documentation of this file.
1 // $Id $
2 #ifndef GAUDIKERNEL_KEYEDOBJECTMANAGER_H
3 #define GAUDIKERNEL_KEYEDOBJECTMANAGER_H
4 
5 // Framework include files
6 #include "GaudiKernel/Kernel.h"
7 #include "GaudiKernel/ClassID.h"
9 
10 // STL includes
11 #include <vector>
12 
13 // Forward declarations
15 class ContainedObject;
16 
19 namespace Containers {
20 
22  typedef long (*MANIPULATOR)(void*);
24  struct hashmap;
26  struct map;
28  struct array;
30  struct vector;
31 
45  template <class SETUP>
47  private:
52  mutable long m_direct;
53  mutable long m_keyCtxt;
54  union {
56  char buffer[128];
57  SETUP* s;
58  } m_setup;
59 
61  void onDirty() const;
62 
63  public:
67  virtual ~KeyedObjectManager();
69  void clearDirect();
71  long insertDirect(ObjectContainerBase* b,ContainedObject* c,void* o, long k);
73  long isDirect() const { return m_direct; }
75  void* object(long key) const;
77  long insert(ObjectContainerBase* b,ContainedObject* c,void* o, long* k);
79  long insert(ObjectContainerBase* b,ContainedObject* c,void* o,long k);
81  void* erase(long key, const void* obj);
83  long erase(seq_type::iterator beg, seq_type::iterator end);
85  void reserve(long size);
87  void clear();
89  void setup(void* seq, void** rndm);
91  static CLID classID();
92  };
93 
102 }
103 #endif // GAUDIKERNEL_KEYEDOBJECTMANAGER_H

Generated at Thu Jul 18 2013 12:18:03 for Gaudi Framework, version v23r9 by Doxygen version 1.8.2 written by Dimitri van Heesch, © 1997-2004