All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
RConverter.h
Go to the documentation of this file.
1 #ifndef ROOTHISTCNV_RCONVERTER_H
2 #define ROOTHISTCNV_RCONVERTER_H 1
3 
4 // Include files
6 #include "TDirectory.h"
7 #include <string>
8 #include <map>
9 
10 // Forward declarations
11 class ISvcLocator;
12 class TObject;
13 class TTree;
14 class TFile;
15 
17  TDirectory* m_current;
18 public:
20  m_current = gDirectory;
21  }
23  gDirectory = m_current;
24  }
25 };
26 
27 namespace RootHistCnv {
28 
34  class RConverter : public Converter {
35  public:
37  virtual StatusCode createRep(DataObject* pObj,
38  IOpaqueAddress*& refpAddr);
40  static long storageType() { return ROOT_StorageType; }
41  long repSvcType() const { return i_repSvcType(); }
42 
43  StatusCode error(const std::string& msg);
44  StatusCode regTFile(const std::string, const TFile*);
45  StatusCode findTFile(const std::string, TFile*&);
46 
47  std::string diskDirectory(const std::string& loc);
48  std::string directory(const std::string& loc);
49  void setDirectory(const std::string& loc);
50  void setDiskDirectory(const std::string& loc);
51  StatusCode createDirectory(const std::string& loc);
52  StatusCode createDiskDirectory(const std::string& loc);
53  std::string getDirectory();
54 
55  std::string convertId(const std::string& ) const ;
56 
57  protected:
59  RConverter( const CLID& clid, ISvcLocator* svc )
60  : Converter(storageType(), clid, svc) { }
62  virtual ~RConverter() { }
64  virtual StatusCode readObject( IOpaqueAddress* pAddr,
65  DataObject*& refpObj);
67  virtual TObject* createPersistent(DataObject* pObj);
70  TDirectory* pDir,
71  TObject* pTObject,
72  IOpaqueAddress*& refpAddr);
73 
74  StatusCode createAddress(const std::string& rzdir,
75  const CLID& clid,
76  long id,
77  TObject* pTobj,
78  IOpaqueAddress*& refpAddress);
79 
80  StatusCode createAddress(const std::string& rzdir,
81  const CLID& clid,
82  const std::string& title,
83  TObject* pTobj,
84  IOpaqueAddress*& refpAddress);
85 
87  TDirectory* changeDirectory(DataObject* pObject);
88  };
89 } // namespace RootHistCnv
90 
91 #endif // RootHistCnv_RConverter_H
std::string getDirectory()
Definition: RConverter.cpp:162
Root Converter.
Definition: RConverter.h:34
RConverter(const CLID &clid, ISvcLocator *svc)
Standard constructor.
Definition: RConverter.h:59
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
Definition: ISvcLocator.h:26
virtual ~RConverter()
Standard destructor.
Definition: RConverter.h:62
std::string diskDirectory(const std::string &loc)
Definition: RConverter.cpp:81
void setDirectory(const std::string &loc)
Definition: RConverter.cpp:120
StatusCode createDiskDirectory(const std::string &loc)
StatusCode regTFile(const std::string, const TFile *)
Definition: RConverter.cpp:309
StatusCode findTFile(const std::string, TFile *&)
Definition: RConverter.cpp:331
StatusCode createDirectory(const std::string &loc)
Definition: RConverter.cpp:26
TDirectory * changeDirectory(DataObject *pObject)
Switch to object directory (=Parent directory)
Definition: RConverter.cpp:236
static long storageType()
Inquire storage type.
Definition: RConverter.h:40
long repSvcType() const
Retrieve the class type of the data store the converter uses.
Definition: RConverter.h:41
virtual TObject * createPersistent(DataObject *pObj)
Create the persistent representation of an object.
Definition: RConverter.cpp:302
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:30
const long ROOT_StorageType
Definition: ClassID.h:53
TDirectory * m_current
Definition: RConverter.h:17
virtual ~GlobalDirectoryRestore()
Definition: RConverter.h:22
unsigned int CLID
Class ID definition.
Definition: ClassID.h:9
Converter base class.
Definition: Converter.h:24
std::string directory(const std::string &loc)
Definition: RConverter.cpp:113
virtual long i_repSvcType() const
Retrieve the class type of the data store the converter uses.
Definition: Converter.cpp:21
StatusCode error(const std::string &msg)
Definition: RConverter.cpp:386
std::string convertId(const std::string &) const
Definition: RConverter.cpp:370
virtual StatusCode readObject(IOpaqueAddress *pAddr, DataObject *&refpObj)
Create the transient representation of an object.
Definition: RConverter.cpp:289
virtual StatusCode createRep(DataObject *pObj, IOpaqueAddress *&refpAddr)
Convert the transient object to the requested representation.
Definition: RConverter.cpp:264
Opaque address interface definition.
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:31
StatusCode createAddress(DataObject *pObject, TDirectory *pDir, TObject *pTObject, IOpaqueAddress *&refpAddr)
Create address of the transient object according to the requested representation. ...
Definition: RConverter.cpp:171
void setDiskDirectory(const std::string &loc)
Definition: RConverter.cpp:155