ATLAS Offline Software
CollectionByteStreamCnv.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef BYTESTRAMCNVSVC_COLLECTIONBYTESTREAMCNV_H
6 #define BYTESTRAMCNVSVC_COLLECTIONBYTESTREAMCNV_H
7 
8 #include "GaudiKernel/Converter.h"
9 #include "ByteStreamData/ROBData.h"
10 
11 class IOpaqueAddress;
12 class DataObject;
13 class StatusCode;
14 class IAddressCreator;
15 class IROBDataProviderSvc;
16 
17 #include <string>
18 
19 // Abstract factory to create the converter
20 template <class TYPE> class CnvFactory;
21 
28 template < class TOOL >
30  friend class CnvFactory<CollectionByteStreamCnv<TOOL> >;
31 
32  protected:
33  CollectionByteStreamCnv(ISvcLocator* svcloc);
34 
35  public:
36 
37  // typedef typename RDP::ROBData ROBData;
38 
39  typedef typename TOOL::COLLECTION COLLECTION ;
40 
43  virtual StatusCode initialize() override;
44 
47  virtual StatusCode createObj(IOpaqueAddress* pAddr, DataObject*& pObj) override;
48 
51  virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr) override;
52 
55  virtual long repSvcType() const override { return i_repSvcType(); }
56 
59  static long storageType();
60 
63  static const CLID& classID();
64 
65 private:
66 
70 
73  TOOL* m_tool;
74 
75 };
76 
78 
79 #endif
80 
81 
82 
CollectionByteStreamCnv.icc
ROBData.h
Defines the ROB data entity. The ROB data is an abstract entity that is used to discase the raw event...
CollectionByteStreamCnv::COLLECTION
TOOL::COLLECTION COLLECTION
Definition: CollectionByteStreamCnv.h:39
IROBDataProviderSvc
Interface class for managing ROB for both online and offline.
Definition: IROBDataProviderSvc.h:25
CollectionByteStreamCnv::CollectionByteStreamCnv
CollectionByteStreamCnv(ISvcLocator *svcloc)
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
CollectionByteStreamCnv::createObj
virtual StatusCode createObj(IOpaqueAddress *pAddr, DataObject *&pObj) override
create data object from Address
CollectionByteStreamCnv
template class for BS converter for Collections
Definition: CollectionByteStreamCnv.h:29
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
CollectionByteStreamCnv::m_tool
TOOL * m_tool
tool responsbile for converting the data.
Definition: CollectionByteStreamCnv.h:73
CollectionByteStreamCnv::initialize
virtual StatusCode initialize() override
initialize the converter
Converter
Definition: Converter.h:27
CollectionByteStreamCnv::createRep
virtual StatusCode createRep(DataObject *pObj, IOpaqueAddress *&pAddr) override
write data object to Bytestream
CollectionByteStreamCnv::repSvcType
virtual long repSvcType() const override
Storage type for BS.
Definition: CollectionByteStreamCnv.h:55
CollectionByteStreamCnv::storageType
static long storageType()
Storage type for BS.
CollectionByteStreamCnv::m_robDataProvider
IROBDataProviderSvc * m_robDataProvider
pointer to the ROB data provider
Definition: CollectionByteStreamCnv.h:69
CollectionByteStreamCnv::classID
static const CLID & classID()
CLID for the data type.