ATLAS Offline Software
LeafCnv.h
Go to the documentation of this file.
1 
3 /*
4  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 // LeafCnv.h
8 // Header file for class LeafCnv
9 // Author: S.Binet<binet@cern.ch>
11 #ifndef ATHENAROOTCOMPS_LEAFCNV_H
12 #define ATHENAROOTCOMPS_LEAFCNV_H 1
13 
14 // STL includes
15 #include <iosfwd>
16 
17 // FrameWork includes
18 #include "GaudiKernel/Converter.h"
19 #include "GaudiKernel/ClassID.h"
21 #include "DataModelRoot/RootType.h"
22 
23 // Forward declaration
24 class TLeaf;
25 class ISvcLocator;
26 class DataObject;
27 class IOpaqueAddress;
28 class StatusCode;
30 template <class TYPE> class CnvFactory;
31 
32 namespace Athena {
33 
34 class LeafCnv
35  : public ::Converter,
36  public ::AthMessaging
37 {
38 
40  // Public methods:
42  public:
43 
45  LeafCnv( const CLID& clid, ISvcLocator* pSvcLocator );
46  LeafCnv(ISvcLocator* pSvcLocator);
47 
49  virtual ~LeafCnv();
50 
52 
53  virtual StatusCode initialize();
55 
57  // Const methods:
59 
61  // Non-const methods:
63 
64  long repSvcType() const;
65 
69  virtual StatusCode createObj(IOpaqueAddress* pAddr, DataObject*& pObj);
70 
74  virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr);
75 
77  static long storageType();
78 
80  static const CLID& classID() { return CLID_NULL; }
81 
82 
84  // Private data:
86  private:
87 
90 
91 };
92 
94 // Inline methods:
96 //std::ostream& operator<<( std::ostream& out, const LeafCnv& o );
97 
98 } //> end namespace Athena
99 
100 #endif //> !ATHENAROOTCOMPS_LEAFCNV_H
Athena::LeafCnv::storageType
static long storageType()
Definition: LeafCnv.cxx:207
Athena::LeafCnv::repSvcType
long repSvcType() const
Definition: LeafCnv.cxx:127
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::LeafCnv::LeafCnv
LeafCnv(const CLID &clid, ISvcLocator *pSvcLocator)
Constructor with parameters:
Definition: LeafCnv.cxx:53
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::LeafCnv::~LeafCnv
virtual ~LeafCnv()
Destructor:
Definition: LeafCnv.cxx:80
Converter
Definition: Converter.h:27
Athena::LeafCnv
Definition: LeafCnv.h:37
Athena::LeafCnv::classID
static const CLID & classID()
Definition: LeafCnv.h:80
Athena::LeafCnv::m_type
RootType m_type
the type we can convert
Definition: LeafCnv.h:89
AthMessaging.h
Athena::LeafCnv::createObj
virtual StatusCode createObj(IOpaqueAddress *pAddr, DataObject *&pObj)
Create a transient object from a persistent representation.
Definition: LeafCnv.cxx:140
RootType.h
Athena::LeafCnv::initialize
virtual StatusCode initialize()
Gaudi Service Implementation.
Definition: LeafCnv.cxx:87
Athena::LeafCnv::createRep
virtual StatusCode createRep(DataObject *pObj, IOpaqueAddress *&pAddr)
Create a persistent representation for a transient object.
Definition: LeafCnv.cxx:162
TScopeAdapter
Definition: RootType.h:119