ATLAS Offline Software
Loading...
Searching...
No Matches
RootCnv.h
Go to the documentation of this file.
2
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
18
19// fwk includes
20#include "GaudiKernel/Converter.h"
21#include "GaudiKernel/ServiceHandle.h"
24
25// fwd declares
27class ITPCnvBase;
28
30template <class TYPE> class CnvFactory;
31
32namespace Athena {
37class RootCnv : public ::Converter, public ::AthMessaging {
38 friend class CnvFactory<Athena::RootCnv>;
39
40public:
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
81private:
83 RootCnv(); //< not implemented
84 RootCnv(const ::Athena::RootCnv&); //< not implemented
85 RootCnv& operator=(const ::Athena::RootCnv&); //< not implemented
86
87protected:
90
91private:
94
97
99};
100
101} //< end namespace Athena
102
103#endif /* !ATHENAROOTCOMPS_ROOTCNV_H */
uint32_t CLID
The Class ID type.
TTypeAdapter RootType
Definition RootType.h:211
AthMessaging(IMessageSvc *msgSvc, const std::string &name)
Constructor.
virtual StatusCode initialize()
Gaudi Service Interface method implementations:
Definition RootCnv.cxx:63
virtual StatusCode fillObjRefs(IOpaqueAddress *pAddr, DataObject *pObj)
Resolve the references of the created transient object.
Definition RootCnv.cxx:123
RootType m_ttype
transient type
Definition RootCnv.h:93
virtual StatusCode createObj(IOpaqueAddress *pAddr, DataObject *&pObj)
Create a transient object from a ROOT persistent representation.
Definition RootCnv.cxx:105
virtual StatusCode fillRepRefs(IOpaqueAddress *pAddr, DataObject *pObj)
Resolve the references of the created transient object.
Definition RootCnv.cxx:155
virtual StatusCode createRep(DataObject *pObj, IOpaqueAddress *&pAddr)
Create a ROOT persistent representation for a transient object.
Definition RootCnv.cxx:128
ServiceHandle< ::IAthenaRootCnvSvc > m_cnvSvc
ServiceHandle to the conversion service.
Definition RootCnv.h:89
virtual StatusCode finalize()
Definition RootCnv.cxx:93
static const CLID & classID()
Definition RootCnv.h:79
RootCnv & operator=(const ::Athena::RootCnv &)
ITPCnvBase * m_tpcnv
Definition RootCnv.h:98
RootCnv(const CLID &id, ISvcLocator *pSvcLocator)
Standard Constructor.
Definition RootCnv.cxx:44
RootCnv()
Default constructor:
RootCnv(const ::Athena::RootCnv &)
long repSvcType() const
Retrieve the class type of the data store the converter uses.
Definition RootCnv.cxx:97
static long storageType()
Definition RootCnv.cxx:101
RootType m_ptype
persistent type
Definition RootCnv.h:96
Abstract factory to create the converter.
This class provides the interface between Athena and RootSvc.
Some weak symbol referencing magic... These are declared in AthenaKernel/getMessageSvc....