ATLAS Offline Software
RootCnv.h
Go to the documentation of this file.
1 
3 /*
4  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 // RootCnv.h
8 // Header file for class Athena::RootCnv
9 // Author Peter van Gemmeren <gemmeren@anl.gov>
11 #ifndef ATHENAROOTCOMPS_ROOTCNV_H
12 #define ATHENAROOTCOMPS_ROOTCNV_H 1
13 
19 // fwk includes
20 #include "GaudiKernel/Converter.h"
21 #include "GaudiKernel/ServiceHandle.h"
23 #include "DataModelRoot/RootType.h"
24 
25 // fwd declares
26 class IAthenaRootCnvSvc;
27 class ITPCnvBase;
28 
30 template <class TYPE> class CnvFactory;
31 
32 namespace Athena {
37 class RootCnv : public ::Converter, public ::AthMessaging {
38  friend class CnvFactory<Athena::RootCnv>;
39 
40 public:
42  RootCnv(const CLID& id, ISvcLocator* pSvcLocator);
43  RootCnv(ISvcLocator* pSvcLocator);
44 
46  virtual ~RootCnv();
47 
49  virtual StatusCode initialize();
50  virtual StatusCode finalize();
51 
53  long repSvcType() const;
54 
58  virtual StatusCode createObj(IOpaqueAddress* pAddr, DataObject*& pObj);
59 
63  virtual StatusCode fillObjRefs(IOpaqueAddress* pAddr, DataObject* pObj);
64 
68  virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr);
69 
73  virtual StatusCode fillRepRefs(IOpaqueAddress* pAddr, DataObject* pObj);
74 
76  static long storageType();
77 
79  static const CLID& classID() { return CLID_NULL; }
80 
81 private:
83  RootCnv(); //< not implemented
84  RootCnv(const ::Athena::RootCnv&); //< not implemented
85  RootCnv& operator=(const ::Athena::RootCnv&); //< not implemented
86 
87 protected:
90 
91 private:
94 
97 
99 };
100 
101 } //< end namespace Athena
102 
103 #endif /* !ATHENAROOTCOMPS_ROOTCNV_H */
Athena::RootCnv::initialize
virtual StatusCode initialize()
Gaudi Service Interface method implementations:
Definition: RootCnv.cxx:63
Athena::RootCnv::m_ttype
RootType m_ttype
transient type
Definition: RootCnv.h:93
IAthenaRootCnvSvc
This class provides the interface between Athena and RootSvc.
Definition: IAthenaRootCnvSvc.h:30
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
Athena::RootCnv::RootCnv
RootCnv(const ::Athena::RootCnv &)
Athena::RootCnv::m_cnvSvc
ServiceHandle< ::IAthenaRootCnvSvc > m_cnvSvc
ServiceHandle to the conversion service.
Definition: RootCnv.h:89
Athena::RootCnv::fillObjRefs
virtual StatusCode fillObjRefs(IOpaqueAddress *pAddr, DataObject *pObj)
Resolve the references of the created transient object.
Definition: RootCnv.cxx:123
Athena
Some weak symbol referencing magic...
Definition: AthLegacySequence.h:21
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Athena::RootCnv::createRep
virtual StatusCode createRep(DataObject *pObj, IOpaqueAddress *&pAddr)
Create a ROOT persistent representation for a transient object.
Definition: RootCnv.cxx:128
AthMessaging
Class to provide easy MsgStream access and capabilities.
Definition: AthMessaging.h:55
CnvFactory
Abstract factory to create the converter.
Definition: ToyConverter.h:16
CLID
uint32_t CLID
The Class ID type.
Definition: Event/xAOD/xAODCore/xAODCore/ClassID_traits.h:47
Athena::RootCnv::operator=
RootCnv & operator=(const ::Athena::RootCnv &)
Athena::RootCnv::createObj
virtual StatusCode createObj(IOpaqueAddress *pAddr, DataObject *&pObj)
Create a transient object from a ROOT persistent representation.
Definition: RootCnv.cxx:105
Converter
Definition: Converter.h:27
Athena::RootCnv::m_ptype
RootType m_ptype
persistent type
Definition: RootCnv.h:96
Athena::RootCnv::classID
static const CLID & classID()
Definition: RootCnv.h:79
ITPCnvBase
Definition: ITPCnvBase.h:24
Athena::RootCnv::repSvcType
long repSvcType() const
Retrieve the class type of the data store the converter uses.
Definition: RootCnv.cxx:97
Athena::RootCnv::storageType
static long storageType()
Definition: RootCnv.cxx:101
AthMessaging.h
RootType.h
Athena::RootCnv
This class provides the abstract converter to translate an object to/from its persistent ROOT represe...
Definition: RootCnv.h:37
Athena::RootCnv::finalize
virtual StatusCode finalize()
Definition: RootCnv.cxx:93
Athena::RootCnv::m_tpcnv
ITPCnvBase * m_tpcnv
Definition: RootCnv.h:98
Athena::RootCnv::RootCnv
RootCnv()
Default constructor:
Athena::RootCnv::fillRepRefs
virtual StatusCode fillRepRefs(IOpaqueAddress *pAddr, DataObject *pObj)
Resolve the references of the created transient object.
Definition: RootCnv.cxx:155
ServiceHandle
Definition: ClusterMakerTool.h:37
TScopeAdapter
Definition: RootType.h:119