ATLAS Offline Software
LeafCnv.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 // 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();
54 // virtual StatusCode queryInterface( const InterfaceID& riid,
55 // void** ppvInterface );
57 
59  // Const methods:
61 
63  // Non-const methods:
65 
66  long repSvcType() const;
67 
71  virtual StatusCode createObj(IOpaqueAddress* pAddr, DataObject*& pObj);
72 
76  virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr);
77 
79  static long storageType();
80 
82  static const CLID& classID() { return CLID_NULL; }
83 
84 
86  // Private data:
88  private:
89 
92 
93 };
94 
96 // Inline methods:
98 //std::ostream& operator<<( std::ostream& out, const LeafCnv& o );
99 
100 } //> end namespace Athena
101 
102 #endif //> !ATHENAROOTCOMPS_LEAFCNV_H
Athena::LeafCnv::storageType
static long storageType()
Definition: LeafCnv.cxx:234
Athena::LeafCnv::repSvcType
long repSvcType() const
Definition: LeafCnv.cxx:154
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:82
Athena::LeafCnv::m_type
RootType m_type
the type we can convert
Definition: LeafCnv.h:91
AthMessaging.h
Athena::LeafCnv::createObj
virtual StatusCode createObj(IOpaqueAddress *pAddr, DataObject *&pObj)
Create a transient object from a persistent representation.
Definition: LeafCnv.cxx:167
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:189
TScopeAdapter
Definition: RootType.h:119