TESSerializer.h
Go to the documentation of this file.
1 // $Id: TESSerializer.h,v 1.1 2008/10/17 08:56:05 mato Exp $
2 #ifndef GAUDIMP_TESSERIALIZER_H
3 #define GAUDIMP_TESSERIALIZER_H
4 
5 #include "GaudiKernel/IDataStoreAgent.h"
6 #include "GaudiKernel/IAddressCreator.h"
7 
8 // ROOT includes
9 #include "TClass.h"
10 
11 // vector and string
12 #include <string>
13 #include <vector>
14 #include <map>
15 
16 // forward declarations
17 class IDataProviderSvc;
18 class IDataManagerSvc;
19 class TBufferFile;
20 class DataStoreItem;
21 class DataObject;
22 class IAddressCreator;
23 
31 namespace GaudiMP {
32  class GAUDI_API TESSerializer : virtual public IDataStoreAgent {
33  typedef std::vector<DataStoreItem*> Items;
34  typedef std::vector<std::string> ItemNames;
35  typedef std::vector<DataObject*> Objects;
36  public:
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);
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:
73  ItemNames m_itemNames;
75  Items m_itemList;
77  ItemNames m_optItemNames;
83  Objects m_objects;
84 
86  std::map<std::string, TClass*> m_classMap;
90  bool m_strict;
93  };
94 }
95 #endif
96 
97 
#define GAUDI_API
Definition: Kernel.h:108
std::map< std::string, TClass * > m_classMap
Map of gROOT class information.
Definition: TESSerializer.h:86
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.
Items m_optItemList
Vector of optional items to be saved to this stream (DataStoreItem ptrs)
Definition: TESSerializer.h:79
ItemNames m_optItemNames
Vector of item names (std::strings)
Definition: TESSerializer.h:77
bool m_verifyItems
Boolean Flag as used by GaudiSvc/PersistencySvc/OutputStreamer.
Definition: TESSerializer.h:88
Data provider interface definition.
IAddressCreator * m_addressCreator
IAddress Creator for Opaque Addresses.
Definition: TESSerializer.h:92
Description of the DataStoreItem class.
Definition: DataStoreItem.h:18
Items m_itemList
Vector of items to be saved to this stream (DataStoreItem ptrs)
Definition: TESSerializer.h:75
bool m_strict
Boolean Flag used to determine error tolerance.
Definition: TESSerializer.h:90
std::vector< DataStoreItem * > Items
Definition: TESSerializer.h:33
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:35
IDataProviderSvc * m_TES
TES pointer.
Definition: TESSerializer.h:69
DataStoreItem * m_currentItem
Current item while traversing the TES tree.
Definition: TESSerializer.h:81
ItemNames m_itemNames
Vector of item names.
Definition: TESSerializer.h:73
Generic data agent interface.
Objects m_objects
Selected list of Objects to be serialized (DataObject ptrs)
Definition: TESSerializer.h:83
std::vector< std::string > ItemNames
Definition: TESSerializer.h:34
IDataManagerSvc * m_TESMgr
TES pointer.
Definition: TESSerializer.h:71
list itms
Definition: ana.py:135
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:31