TESSerializer.h
Go to the documentation of this file.
1 #ifndef GAUDIMP_TESSERIALIZER_H
2 #define GAUDIMP_TESSERIALIZER_H
3 
4 #include "GaudiKernel/IDataStoreAgent.h"
5 #include "GaudiKernel/IAddressCreator.h"
6 
7 // ROOT includes
8 #include "TClass.h"
9 
10 // vector and string
11 #include <string>
12 #include <vector>
13 #include <map>
14 
15 // forward declarations
16 class IDataProviderSvc;
17 class IDataManagerSvc;
18 class TBufferFile;
19 class DataStoreItem;
20 class DataObject;
21 class IAddressCreator;
22 
30 namespace GaudiMP {
31  class GAUDI_API TESSerializer : virtual public IDataStoreAgent {
32  typedef std::vector<DataStoreItem*> Items;
33  typedef std::vector<std::string> ItemNames;
34  typedef std::vector<DataObject*> Objects;
35  public:
37  TESSerializer(IDataProviderSvc* svc, IAddressCreator* ac);
38 
40  void dumpBuffer(TBufferFile&);
41 
43  void loadBuffer(TBufferFile&);
44 
46  void addItem(const std::string& path);
47 
49  void addOptItem(const std::string& path);
50 
52  bool analyse(IRegistry* dir, int level);
53 
55  void checkItems( );
56 
57  virtual ~TESSerializer() {}
58 
59  protected:
61  void addItem(Items& itms, const std::string& descriptor);
62 
64  DataStoreItem* findItem(const std::string& path);
65 
66  private:
68  IDataProviderSvc* m_TES;
70  IDataManagerSvc* m_TESMgr;
72  ItemNames m_itemNames;
74  Items m_itemList;
76  ItemNames m_optItemNames;
78  Items m_optItemList;
80  DataStoreItem* m_currentItem;
82  Objects m_objects;
83 
85  std::map<std::string, TClass*> m_classMap;
87  bool m_verifyItems;
89  bool m_strict;
91  IAddressCreator* m_addressCreator;
92  };
93 }
94 #endif
95 
96 
Namespace for basic object handling within container classes.
Definition: KeyedObject.cpp:15
#define GAUDI_API
Definition: Kernel.h:107
A class to serialize/deserialize TES objects to and from a TBufferFile Author: P. ...
Definition: PyROOTPickle.h:32
list path
Definition: __init__.py:15
IAddressCreator interface definition.
Data provider interface definition.
Description of the DataStoreItem class.
Definition: DataStoreItem.h:17
The IRegistry represents the entry door to the environment any data object residing in a transient da...
Definition: IRegistry.h:22
Generic data agent interface.
list itms
Definition: ana.py:135
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:30