ATLAS Offline Software
Loading...
Searching...
No Matches
HLTResultMTByteStreamCnv.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 TRIGHLTRESULTBYTESTREAM_HLTResultMTByteStreamCnv_H
6#define TRIGHLTRESULTBYTESTREAM_HLTResultMTByteStreamCnv_H
7
8// Athena includes
13
14// Gaudi includes
15#include "GaudiKernel/Converter.h"
16
17namespace HLT {
22 public:
24 HLTResultMTByteStreamCnv(ISvcLocator* svcLoc);
27
28 // ------------------------- Converter methods -----------------------------
29 virtual StatusCode initialize() override;
30 virtual StatusCode finalize() override;
31
33 virtual StatusCode createObj(IOpaqueAddress* pAddr, DataObject*& pObj) override;
35 virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr) override;
36
37 // ------------------------- Converter definition helpers ------------------
39 static long storageType();
41 static const CLID& classID();
42
43 long repSvcType() const override { return i_repSvcType(); }
44
45 private:
48
51 struct Cache {
52 std::unique_ptr<uint32_t[]> streamTagData;
53 std::vector<std::unique_ptr<OFFLINE_FRAGMENTS_NAMESPACE_WRITE::ROBFragment>> robFragments;
55 void clear() {
56 streamTagData.reset();
57 for (auto& ptr : robFragments) ptr.reset();
58 robFragments.clear();
59 }
60 };
62 };
63} // namespace HLT
64
65#endif // TRIGHLTRESULTBYTESTREAM_HLTResultMTByteStreamCnv_H
Maintain a set of objects, one per slot.
uint32_t CLID
The Class ID type.
AthMessaging(IMessageSvc *msgSvc, const std::string &name)
Constructor.
virtual StatusCode initialize() override
virtual StatusCode createRep(DataObject *pObj, IOpaqueAddress *&pAddr) override
Create ByteStream from RDO (HLTResultMT)
SG::SlotSpecificObj< Cache > m_cache
static const CLID & classID()
CLID of the class HLTResultMT converted by this converter.
virtual StatusCode finalize() override
virtual ~HLTResultMTByteStreamCnv()
Standard destructor.
HLTResultMTByteStreamCnv(ISvcLocator *svcLoc)
Standard constructor.
virtual StatusCode createObj(IOpaqueAddress *pAddr, DataObject *&pObj) override
Create RDO (HLTResultMT) from ByteStream.
static long storageType()
Storage type used by this converter.
long repSvcType() const override
return repSvcType
ServiceHandle< IByteStreamEventAccess > m_ByteStreamEventAccess
Helper to obtain the RawEvent pointer.
Maintain a set of objects, one per slot.
It used to be useful piece of code for replacing actual SG with other store of similar functionality ...
Cache tracking memory allocation for serialised stream tag data and ROBFragment objects.
std::vector< std::unique_ptr< OFFLINE_FRAGMENTS_NAMESPACE_WRITE::ROBFragment > > robFragments