TESSerializer.h
Go to the documentation of this file.
1 #ifndef GAUDIMP_TESSERIALIZER_H
2 #define GAUDIMP_TESSERIALIZER_H
3 
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 {
35  public:
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) override;
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:
72  ItemNames m_itemNames;
74  Items m_itemList;
76  ItemNames m_optItemNames;
82  Objects m_objects;
83 
89  bool m_strict;
92  };
93 }
94 #endif
95 
96 
A class to serialize/deserialize TES objects to and from a TBufferFile Author: P. ...
Definition: PyROOTPickle.h:32
IAddressCreator interface definition.
Items m_optItemList
Vector of optional items to be saved to this stream (DataStoreItem ptrs)
Definition: TESSerializer.h:78
ItemNames m_optItemNames
Vector of item names (std::strings)
Definition: TESSerializer.h:76
bool m_verifyItems
Boolean Flag as used by GaudiSvc/PersistencySvc/OutputStreamer.
Definition: TESSerializer.h:87
Data provider interface definition.
Description of the DataStoreItem class.
Definition: DataStoreItem.h:17
IAddressCreator * m_addressCreator
IAddress Creator for Opaque Addresses.
Definition: TESSerializer.h:91
Items m_itemList
Vector of items to be saved to this stream (DataStoreItem ptrs)
Definition: TESSerializer.h:74
bool m_strict
Boolean Flag used to determine error tolerance.
Definition: TESSerializer.h:89
STL class.
std::vector< DataStoreItem * > Items
Definition: TESSerializer.h:32
IDataManagerSvc * m_TESMgr
TES pointer.
Definition: TESSerializer.h:70
The IRegistry represents the entry door to the environment any data object residing in a transient da...
Definition: IRegistry.h:22
std::vector< DataObject * > Objects
Definition: TESSerializer.h:34
ItemNames m_itemNames
Vector of item names.
Definition: TESSerializer.h:72
Generic data agent interface.
Objects m_objects
Selected list of Objects to be serialized (DataObject ptrs)
Definition: TESSerializer.h:82
std::vector< std::string > ItemNames
Definition: TESSerializer.h:33
DataStoreItem * m_currentItem
Current item while traversing the TES tree.
Definition: TESSerializer.h:80
#define GAUDI_API
Definition: Kernel.h:107
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:30
IDataProviderSvc * m_TES
TES pointer.
Definition: TESSerializer.h:68
std::map< std::string, TClass * > m_classMap
Map of gROOT class information.
Definition: TESSerializer.h:85