| The Gaudi Framework v32r1 (f65d50dc)

TESSerializer.h
Go to the documentation of this file.
1 #ifndef GAUDIMP_TESSERIALIZER_H
2 #define GAUDIMP_TESSERIALIZER_H
3
4 #include "GaudiKernel/IAddressCreator.h"
5 #include "GaudiKernel/IDataStoreAgent.h"
6
7 // ROOT includes
8 #include "TClass.h"
9
10 // vector and string
11 #include <map>
12 #include <string>
13 #include <vector>
14
15 // forward declarations
16 class IDataProviderSvc;
17 struct 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
36 public:
38 TESSerializer( IDataProviderSvc* svc, IAddressCreator* ac );
39
41 void dumpBuffer( TBufferFile& );
42
44 void loadBuffer( TBufferFile& );
45
47 void addItem( const std::string& path );
48
50 void addOptItem( const std::string& path );
51
53 bool analyse( IRegistry* dir, int level ) override;
54
56 void checkItems();
57
58 virtual ~TESSerializer() {}
59
60 protected:
62 void addItem( Items& itms, const std::string& descriptor );
63
65 DataStoreItem* findItem( const std::string& path );
66
67 private:
69 IDataProviderSvc* m_TES;
71 IDataManagerSvc* m_TESMgr;
73 ItemNames m_itemNames;
75 Items m_itemList;
77 ItemNames m_optItemNames;
79 Items m_optItemList;
81 DataStoreItem* m_currentItem;
83 Objects m_objects;
84
86 std::map<std::string, TClass*> m_classMap;
88 bool m_verifyItems;
90 bool m_strict;
92 IAddressCreator* m_addressCreator;
93 };
94 } // namespace GaudiMP
95 #endif
GaudiPython.HistoUtils.path
path
Definition: HistoUtils.py:932
IDataManagerSvc
Definition: IDataManagerSvc.h:45
GaudiMP
A class to serialize/deserialize TES objects to and from a TBufferFile Author: P.
Definition: PyROOTPickle.h:31
IAddressCreator
IAddressCreator interface definition.
Definition: IAddressCreator.h:28
GaudiMP::TESSerializer::m_optItemList
Items m_optItemList
Vector of optional items to be saved to this stream (DataStoreItem ptrs)
Definition: TESSerializer.h:79
GaudiMP::TESSerializer::m_optItemNames
ItemNames m_optItemNames
Vector of item names (std::strings)
Definition: TESSerializer.h:77
GaudiMP::TESSerializer::m_verifyItems
bool m_verifyItems
Boolean Flag as used by GaudiSvc/PersistencySvc/OutputStreamer.
Definition: TESSerializer.h:88
IDataProviderSvc
Data provider interface definition.
Definition: IDataProviderSvc.h:43
DataStoreItem
Description of the DataStoreItem class.
Definition: DataStoreItem.h:17
std::map< std::string, TClass * >
GaudiMP::TESSerializer::m_addressCreator
IAddressCreator * m_addressCreator
IAddress Creator for Opaque Addresses.
Definition: TESSerializer.h:92
GaudiMP::TESSerializer::m_itemList
Items m_itemList
Vector of items to be saved to this stream (DataStoreItem ptrs)
Definition: TESSerializer.h:75
GaudiMP::TESSerializer::m_strict
bool m_strict
Boolean Flag used to determine error tolerance.
Definition: TESSerializer.h:90
std::string
STL class.
GaudiMP::TESSerializer::Items
std::vector< DataStoreItem * > Items
Definition: TESSerializer.h:32
GaudiMP::TESSerializer::m_TESMgr
IDataManagerSvc * m_TESMgr
TES pointer.
Definition: TESSerializer.h:71
GaudiMP::TESSerializer::~TESSerializer
virtual ~TESSerializer()
Definition: TESSerializer.h:58
IRegistry
The IRegistry represents the entry door to the environment any data object residing in a transient da...
Definition: IRegistry.h:22
GaudiMP::TESSerializer::Objects
std::vector< DataObject * > Objects
Definition: TESSerializer.h:34
IDataStoreAgent.h
std::vector< DataStoreItem * >
GaudiMP::TESSerializer::m_itemNames
ItemNames m_itemNames
Vector of item names.
Definition: TESSerializer.h:73
IDataStoreAgent
Generic data agent interface.
Definition: IDataStoreAgent.h:17
IAddressCreator.h
GaudiMP::TESSerializer::m_objects
Objects m_objects
Selected list of Objects to be serialized (DataObject ptrs)
Definition: TESSerializer.h:83
GaudiMP::TESSerializer::ItemNames
std::vector< std::string > ItemNames
Definition: TESSerializer.h:33
gaudirun.level
level
Definition: gaudirun.py:334
GaudiMP::TESSerializer::m_currentItem
DataStoreItem * m_currentItem
Current item while traversing the TES tree.
Definition: TESSerializer.h:81
GAUDI_API
#define GAUDI_API
Definition: Kernel.h:71
DataObject
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:30
GaudiMP::TESSerializer
Definition: TESSerializer.h:31
GaudiMP::TESSerializer::m_TES
IDataProviderSvc * m_TES
TES pointer.
Definition: TESSerializer.h:69
GaudiMP::TESSerializer::m_classMap
std::map< std::string, TClass * > m_classMap
Map of gROOT class information.
Definition: TESSerializer.h:86