The Gaudi Framework
master (9f3f8895)
Toggle main menu visibility
Loading...
Searching...
No Matches
RConverter.h
Go to the documentation of this file.
1
/***********************************************************************************\
2
* (c) Copyright 1998-2026 CERN for the benefit of the LHCb and ATLAS collaborations *
3
* *
4
* This software is distributed under the terms of the Apache version 2 licence, *
5
* copied verbatim in the file "LICENSE". *
6
* *
7
* In applying this licence, CERN does not waive the privileges and immunities *
8
* granted to it by virtue of its status as an Intergovernmental Organization *
9
* or submit itself to any jurisdiction. *
10
\***********************************************************************************/
11
#pragma once
12
13
// Include files
14
#include <
GaudiKernel/Converter.h
>
15
#include <TDirectory.h>
16
#include <map>
17
#include <string>
18
19
// Forward declarations
20
class
ISvcLocator
;
21
class
TObject;
22
class
TTree;
23
class
TFile;
24
25
class
GlobalDirectoryRestore
{
26
TDirectory*
m_current
;
27
28
public
:
29
GlobalDirectoryRestore
() {
m_current
= gDirectory; }
30
virtual
~GlobalDirectoryRestore
() { gDirectory =
m_current
; }
31
};
32
33
namespace
RootHistCnv
{
34
40
class
RConverter
:
public
Converter
{
41
public
:
43
StatusCode
createRep
(
DataObject
* pObj,
IOpaqueAddress
*& refpAddr )
override
;
45
static
long
storageType
() {
return
ROOT_StorageType
; }
46
long
repSvcType
()
const override
{
return
i_repSvcType
(); }
47
48
StatusCode
error
(
const
std::string& msg );
49
StatusCode
regTFile
(
const
std::string&,
const
TFile* );
50
StatusCode
findTFile
(
const
std::string&, TFile*& );
51
52
std::string
diskDirectory
(
const
std::string& loc );
53
std::string
directory
(
const
std::string& loc );
54
void
setDirectory
(
const
std::string& loc );
55
void
setDiskDirectory
(
const
std::string& loc );
56
StatusCode
createDirectory
(
const
std::string& loc );
57
StatusCode
createDiskDirectory
(
const
std::string& loc );
58
std::string
getDirectory
();
59
60
std::string
convertId
(
const
std::string& );
61
62
protected
:
64
RConverter
(
const
CLID
& clid,
ISvcLocator
* svc ) :
Converter
(
storageType
(), clid, svc ) {}
66
virtual
StatusCode
readObject
(
IOpaqueAddress
* pAddr,
DataObject
*& refpObj );
68
virtual
TObject*
createPersistent
(
DataObject
* pObj );
70
StatusCode
createAddress
(
DataObject
* pObject, TDirectory* pDir, TObject* pTObject,
IOpaqueAddress
*& refpAddr );
71
72
StatusCode
createAddress
(
const
std::string& rzdir,
const
CLID
& clid,
long
id
, TObject* pTobj,
73
IOpaqueAddress
*& refpAddress );
74
75
StatusCode
createAddress
(
const
std::string& rzdir,
const
CLID
& clid,
const
std::string& title, TObject* pTobj,
76
IOpaqueAddress
*& refpAddress );
77
79
TDirectory*
changeDirectory
(
DataObject
* pObject );
80
};
81
}
// namespace RootHistCnv
CLID
unsigned int CLID
Class ID definition.
Definition
ClassID.h:16
ROOT_StorageType
const long ROOT_StorageType
Definition
ClassID.h:60
Converter.h
Converter::Converter
Converter(long storage_type, const CLID &class_type, ISvcLocator *svc=0)
Standard Constructor.
Definition
Converter.cpp:113
Converter::i_repSvcType
virtual long i_repSvcType() const
Retrieve the class type of the data store the converter uses.
Definition
Converter.cpp:25
DataObject
A DataObject is the base class of any identifiable object on any data store.
Definition
DataObject.h:37
GlobalDirectoryRestore::GlobalDirectoryRestore
GlobalDirectoryRestore()
Definition
RConverter.h:29
GlobalDirectoryRestore::~GlobalDirectoryRestore
virtual ~GlobalDirectoryRestore()
Definition
RConverter.h:30
GlobalDirectoryRestore::m_current
TDirectory * m_current
Definition
RConverter.h:26
IOpaqueAddress
Opaque address interface definition.
Definition
IOpaqueAddress.h:28
ISvcLocator
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
Definition
ISvcLocator.h:42
RootHistCnv::RConverter::createDiskDirectory
StatusCode createDiskDirectory(const std::string &loc)
RootHistCnv::RConverter::directory
std::string directory(const std::string &loc)
Definition
RConverter.cpp:111
RootHistCnv::RConverter::createRep
StatusCode createRep(DataObject *pObj, IOpaqueAddress *&refpAddr) override
Convert the transient object to the requested representation.
Definition
RConverter.cpp:238
RootHistCnv::RConverter::diskDirectory
std::string diskDirectory(const std::string &loc)
Definition
RConverter.cpp:79
RootHistCnv::RConverter::storageType
static long storageType()
Inquire storage type.
Definition
RConverter.h:45
RootHistCnv::RConverter::repSvcType
long repSvcType() const override
Definition
RConverter.h:46
RootHistCnv::RConverter::findTFile
StatusCode findTFile(const std::string &, TFile *&)
Definition
RConverter.cpp:289
RootHistCnv::RConverter::getDirectory
std::string getDirectory()
Definition
RConverter.cpp:158
RootHistCnv::RConverter::setDirectory
void setDirectory(const std::string &loc)
Definition
RConverter.cpp:118
RootHistCnv::RConverter::setDiskDirectory
void setDiskDirectory(const std::string &loc)
Definition
RConverter.cpp:151
RootHistCnv::RConverter::createDirectory
StatusCode createDirectory(const std::string &loc)
Definition
RConverter.cpp:34
RootHistCnv::RConverter::regTFile
StatusCode regTFile(const std::string &, const TFile *)
Definition
RConverter.cpp:274
RootHistCnv::RConverter::readObject
virtual StatusCode readObject(IOpaqueAddress *pAddr, DataObject *&refpObj)
Create the transient representation of an object.
Definition
RConverter.cpp:260
RootHistCnv::RConverter::convertId
std::string convertId(const std::string &)
Definition
RConverter.cpp:322
RootHistCnv::RConverter::changeDirectory
TDirectory * changeDirectory(DataObject *pObject)
Switch to object directory (=Parent directory).
Definition
RConverter.cpp:210
RootHistCnv::RConverter::RConverter
RConverter(const CLID &clid, ISvcLocator *svc)
Standard constructor.
Definition
RConverter.h:64
RootHistCnv::RConverter::createPersistent
virtual TObject * createPersistent(DataObject *pObj)
Create the persistent representation of an object.
Definition
RConverter.cpp:271
RootHistCnv::RConverter::createAddress
StatusCode createAddress(DataObject *pObject, TDirectory *pDir, TObject *pTObject, IOpaqueAddress *&refpAddr)
Create address of the transient object according to the requested representation.
Definition
RConverter.cpp:165
RootHistCnv::RConverter::error
StatusCode error(const std::string &msg)
Definition
RConverter.cpp:339
StatusCode
This class is used for returning status codes from appropriate routines.
Definition
StatusCode.h:64
RootHistCnv
Definition
DirectoryCnv.h:26
RootHistCnv
src
RConverter.h
Generated on
for The Gaudi Framework by
1.17.0