ATLAS Offline Software
CpByteStreamV1Cnv.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 
6 #include <vector>
7 
9 
11 #include "ByteStreamData/ROBData.h"
12 
14 
15 #include "GaudiKernel/DataObject.h"
16 #include "GaudiKernel/IOpaqueAddress.h"
17 #include "GaudiKernel/IRegistry.h"
18 #include "GaudiKernel/ISvcLocator.h"
19 #include "GaudiKernel/StatusCode.h"
20 
24 
26 
27 #include "CpByteStreamV1Cnv.h"
28 #include "CpByteStreamV1Tool.h"
29 
30 namespace LVL1BS {
31 
33  : AthConstConverter( storageType(), classID(), svcloc, "CpByteStreamV1Cnv" ),
34  m_tool("LVL1BS::CpByteStreamV1Tool/CpByteStreamV1Tool")
35 {
36 }
37 
39 {
40 }
41 
42 // CLID
43 
45 {
47 }
48 
50 {
52 }
53 
54 // Init method gets all necessary services etc.
55 
56 
58 {
60  ATH_CHECK( m_tool.retrieve() );
61 
62  return StatusCode::SUCCESS;
63 }
64 
65 // createRep should create the bytestream from RDOs.
66 
68  IOpaqueAddress*& pAddr ) const
69 {
71  if( !SG::fromStorable( pObj, cp ) ) {
72  ATH_MSG_ERROR( "Cannot cast to CPBSCollectionV1" );
73  return StatusCode::FAILURE;
74  }
75 
76  const std::string nm = pObj->registry()->name();
77 
78  ByteStreamAddress* addr = new ByteStreamAddress( classID(), nm, "" );
79 
80  pAddr = addr;
81 
82  // Convert to ByteStream
83  return m_tool->convert( cp );
84 }
85 
86 } // end namespace
SG::fromStorable
bool fromStorable(DataObject *pDObj, T *&pTrans, bool quiet=false, IRegisterTransient *irt=0, bool isConst=true)
Definition: StorableConversions.h:167
StorableConversions.h
convert to and from a SG storable
LVL1BS::CpByteStreamV1Cnv::createRepConst
virtual StatusCode createRepConst(DataObject *pObj, IOpaqueAddress *&pAddr) const override
Create ByteStream from Cp Container.
Definition: CpByteStreamV1Cnv.cxx:67
LVL1BS::CpByteStreamV1Cnv::CpByteStreamV1Cnv
CpByteStreamV1Cnv(ISvcLocator *svcloc)
Definition: CpByteStreamV1Cnv.cxx:32
ROBData.h
Defines the ROB data entity. The ROB data is an abstract entity that is used to discase the raw event...
initialize
void initialize()
Definition: run_EoverP.cxx:894
AthConstConverter
Gaudi converter base class with const interfaces.
Definition: AthConstConverter.h:33
LVL1BS::CpByteStreamV1Cnv::storageType
static long storageType()
Definition: CpByteStreamV1Cnv.cxx:49
ClassID_traits::ID
static const CLID & ID()
the CLID of T
Definition: Control/AthenaKernel/AthenaKernel/ClassID_traits.h:50
CPBSCollectionV1.h
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
LVL1BS::CpByteStreamV1Cnv::initialize
virtual StatusCode initialize() override
Definition: CpByteStreamV1Cnv.cxx:57
ClassID_traits.h
a traits class that associates a CLID to a type T It also detects whether T inherits from Gaudi DataO...
RawEvent.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ByteStreamAddress
IOpaqueAddress for ByteStreamCnvSvc, with ROB ids.
Definition: ByteStreamAddress.h:28
CpByteStreamV1Tool.h
LVL1BS::CpByteStreamV1Cnv::m_tool
ToolHandle< LVL1BS::CpByteStreamV1Tool > m_tool
Tool that does the actual work.
Definition: CpByteStreamV1Cnv.h:49
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
CpByteStreamV1Cnv.h
ByteStreamAddress.h
LVL1::CPBSCollectionV1
Cluster Processor container for writing bytestream.
Definition: CPBSCollectionV1.h:24
CLID
uint32_t CLID
The Class ID type.
Definition: Event/xAOD/xAODCore/xAODCore/ClassID_traits.h:47
LVL1BS::CpByteStreamV1Cnv::classID
static const CLID & classID()
Definition: CpByteStreamV1Cnv.cxx:44
ByteStreamAddress::storageType
static constexpr long storageType()
Definition: ByteStreamAddress.h:51
errorcheck.h
Helpers for checking error return status codes and reporting errors.
LArNewCalib_PedestalAutoCorr.cp
cp
Definition: LArNewCalib_PedestalAutoCorr.py:188
DataVector.h
An STL vector of pointers that by default owns its pointed-to elements.
LVL1BS::CpByteStreamV1Cnv::~CpByteStreamV1Cnv
virtual ~CpByteStreamV1Cnv()
Definition: CpByteStreamV1Cnv.cxx:38
CalibCoolCompareRT.nm
nm
Definition: CalibCoolCompareRT.py:110
LVL1BS
Definition: ZdcModifySlices.h:10