The Gaudi Framework  v30r3 (a5ef0a68)
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 <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 {
32  class GAUDI_API TESSerializer : virtual public IDataStoreAgent
33  {
37 
38  public:
41 
43  void dumpBuffer( TBufferFile& );
44 
46  void loadBuffer( TBufferFile& );
47 
49  void addItem( const std::string& path );
50 
52  void addOptItem( const std::string& path );
53 
55  bool analyse( IRegistry* dir, int level ) override;
56 
58  void checkItems();
59 
60  virtual ~TESSerializer() {}
61 
62  protected:
64  void addItem( Items& itms, const std::string& descriptor );
65 
67  DataStoreItem* findItem( const std::string& path );
68 
69  private:
75  ItemNames m_itemNames;
77  Items m_itemList;
79  ItemNames m_optItemNames;
85  Objects m_objects;
86 
92  bool m_strict;
95  };
96 }
97 #endif
A class to serialize/deserialize TES objects to and from a TBufferFile Author: P. ...
Definition: __init__.py:1
IAddressCreator interface definition.
Items m_optItemList
Vector of optional items to be saved to this stream (DataStoreItem ptrs)
Definition: TESSerializer.h:81
ItemNames m_optItemNames
Vector of item names (std::strings)
Definition: TESSerializer.h:79
bool m_verifyItems
Boolean Flag as used by GaudiSvc/PersistencySvc/OutputStreamer.
Definition: TESSerializer.h:90
Data provider interface definition.
Description of the DataStoreItem class.
Definition: DataStoreItem.h:17
IAddressCreator * m_addressCreator
IAddress Creator for Opaque Addresses.
Definition: TESSerializer.h:94
Items m_itemList
Vector of items to be saved to this stream (DataStoreItem ptrs)
Definition: TESSerializer.h:77
bool m_strict
Boolean Flag used to determine error tolerance.
Definition: TESSerializer.h:92
STL class.
std::vector< DataStoreItem * > Items
Definition: TESSerializer.h:34
IDataManagerSvc * m_TESMgr
TES pointer.
Definition: TESSerializer.h:73
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:36
ItemNames m_itemNames
Vector of item names.
Definition: TESSerializer.h:75
Generic data agent interface.
Objects m_objects
Selected list of Objects to be serialized (DataObject ptrs)
Definition: TESSerializer.h:85
std::vector< std::string > ItemNames
Definition: TESSerializer.h:35
DataStoreItem * m_currentItem
Current item while traversing the TES tree.
Definition: TESSerializer.h:83
#define GAUDI_API
Definition: Kernel.h:104
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:71
std::map< std::string, TClass * > m_classMap
Map of gROOT class information.
Definition: TESSerializer.h:88