ATLAS Offline Software
Loading...
Searching...
No Matches
CpByteStreamV2Cnv.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
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 "CpByteStreamV2Cnv.h"
28#include "CpByteStreamV2Tool.h"
29
30namespace LVL1BS {
31
33 : AthConstConverter( storageType(), classID(), svcloc, "CpByteStreamV2Cnv" ),
34 m_tool("LVL1BS::CpByteStreamV2Tool/CpByteStreamV2Tool")
35{
36}
37
41
42// CLID
43
48
53
54// Init method gets all necessary services etc.
55
56
58{
59 StatusCode sc = Converter::initialize();
60 ATH_CHECK( sc.isFailure() );
61 ATH_CHECK( m_tool.retrieve() );
62
63 return StatusCode::SUCCESS;
64}
65
66// createRep should create the bytestream from RDOs.
67
68StatusCode CpByteStreamV2Cnv::createRepConst ( DataObject* pObj,
69 IOpaqueAddress*& pAddr ) const
70{
72 if( !SG::fromStorable( pObj, cp ) ) {
73 ATH_MSG_ERROR( " Cannot cast to CPBSCollectionV2" );
74 return StatusCode::FAILURE;
75 }
76
77 const std::string nm = pObj->registry()->name();
78
79 ByteStreamAddress* addr = new ByteStreamAddress( classID(), nm, "" );
80
81 pAddr = addr;
82
83 // Convert to ByteStream
84 return m_tool->convert( cp );
85}
86
87} // end namespace
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_ERROR(x)
a traits class that associates a CLID to a type T It also detects whether T inherits from Gaudi DataO...
Helpers for checking error return status codes and reporting errors.
An STL vector of pointers that by default owns its pointed-to elements.
uint32_t CLID
The Class ID type.
static Double_t sc
Defines the ROB data entity. The ROB data is an abstract entity that is used to decouple the raw even...
convert to and from a SG storable
AthConstConverter(long storage_type, const CLID &class_type, ISvcLocator *svc, const std::string &name)
IOpaqueAddress for ByteStreamCnvSvc, with ROB ids.
static constexpr long storageType()
virtual StatusCode createRepConst(DataObject *pObj, IOpaqueAddress *&pAddr) const override
Create ByteStream from Cp Container.
CpByteStreamV2Cnv(ISvcLocator *svcloc)
virtual StatusCode initialize() override
ToolHandle< LVL1BS::CpByteStreamV2Tool > m_tool
Tool that does the actual work.
static const CLID & classID()
Cluster Processor container for writing bytestream.
bool fromStorable(DataObject *pDObj, T *&pTrans, bool quiet=false, IRegisterTransient *irt=0, bool isConst=true)