20#include "GaudiKernel/GenericAddress.h"
21#include "GaudiKernel/IRegistry.h"
22#include "Gaudi/Property.h"
36 ISvcLocator* pSvcLocator ) :
37 base_class( name, pSvcLocator, POOL_ROOTTREE_StorageType )
71 return dynamic_cast<GenericAddress*
>(pAddress)
73 : StatusCode::FAILURE;
75 return StatusCode::FAILURE;
85 ATH_MSG_DEBUG(
"-->createObj(" << pAddress->par()[0] <<
"/" << pAddress->par()[1]
86 <<
", " << refpObject <<
")...");
87 GenericAddress *addr =
dynamic_cast<GenericAddress*
>(pAddress);
90 <<
" is NOT a GenericAddress!");
91 return StatusCode::FAILURE;
93 ATH_MSG_DEBUG(
" par: " << pAddress->par()[0] <<
"/" << pAddress->par()[1]
95 " ipar: " << *pAddress->ipar());
107 ATH_MSG_DEBUG(
"::createRep(" << refpAddress <<
", " << pObject <<
")...");
110 ATH_MSG_ERROR(
"::createRep: received null ptr to DataObject");
111 return StatusCode::FAILURE;
113 return ::AthCnvSvc::createRep(pObject, refpAddress);
124 ATH_MSG_DEBUG(
"::fillRepRefs(" << pAddress <<
", " << pObject <<
")...");
125 if (0==pAddress || 0==pObject) {
126 ATH_MSG_ERROR(
"::fillRepRefs: null ptr received! (paddr=" << pAddress
127 <<
", pobj=" << pObject <<
")");
128 return StatusCode::FAILURE;
130 return ::AthCnvSvc::fillRepRefs(pAddress, pObject);
139 const std::string& openMode)
142 << outputConnectionSpec <<
", "
146 TFile *f = TFile::Open(outputConnectionSpec.c_str(),
"recreate");
148 return StatusCode::FAILURE;
151 return StatusCode::SUCCESS;
161 << outputConnectionSpec <<
")");
163 TFile *f = TFile::Open(outputConnectionSpec.c_str(),
"recreate");
165 return StatusCode::FAILURE;
167 return StatusCode::SUCCESS;
176 <<
", " << doCommit <<
")...");
177 return StatusCode::SUCCESS;
195 const std::string* par,
196 const unsigned long* ip,
197 IOpaqueAddress*& refpAddress)
200 <<
", " << par <<
", " << ip <<
", " << refpAddress
202 return ::AthCnvSvc::createAddress(svcType, clid, par, ip, refpAddress);
210 std::string& refAddress)
213 << refAddress <<
")...");
215 refAddress = *pAddress->par();
216 return StatusCode::SUCCESS;
218 ATH_MSG_ERROR(
"::convertAddress: null pointer to IOpaqueAddress !");
219 return StatusCode::FAILURE;
230 const std::string& refAddress,
231 IOpaqueAddress*& refpAddress)
234 <<
", " << refAddress <<
", " << refpAddress
236 if (svcType != POOL_ROOTTREE_StorageType) {
239 ATH_MSG_ERROR(
" root-type = [" << POOL_ROOTTREE_StorageType <<
"]");
240 return StatusCode::FAILURE;
242 refpAddress =
new GenericAddress(POOL_ROOTTREE_StorageType, clid, refAddress);
243 return StatusCode::SUCCESS;
263 const ICnvFactory* fac)
266 <<
", " << fac <<
")...");
#define ATH_MSG_VERBOSE(x)
uint32_t CLID
The Class ID type.
virtual IConverter * createConverter(long typ, const CLID &clid, const ICnvFactory *fac)
Create new Converter using factory.
virtual StatusCode finalize() override
virtual StatusCode createObj(IOpaqueAddress *pAddress, DataObject *&refpObject) override
Implementation of IConverter: Create the transient representation of an object.
virtual StatusCode initialize() override
Gaudi Service Implementation.
virtual StatusCode initialize()
Gaudi Service Implementation.
virtual StatusCode createObj(IOpaqueAddress *pAddress, DataObject *&refpObject)
Implementation of IConverter: Create the transient representation of an object from persistent state.
virtual StatusCode connectOutput(const std::string &outputConnectionSpec, const std::string &openMode)
Connect the output connection specification to the service with open mode.
virtual StatusCode convertAddress(const IOpaqueAddress *pAddress, std::string &refAddress)
Convert address to string form.
virtual IConverter * createConverter(long typ, const CLID &clid, const ICnvFactory *fac)
Create new Converter using factory (override AthCnvSvc::createConverter)
virtual StatusCode commitOutput(const std::string &outputConnectionSpec, bool doCommit)
Commit pending output.
virtual StatusCode updateServiceState(IOpaqueAddress *pAddress)
IConversionSvc and IConverter interfaces
virtual ~xAODCnvSvc()
Destructor:
virtual StatusCode fillRepRefs(IOpaqueAddress *pAddress, DataObject *pObject)
Implementation of IConverter: Resolve the references of the converted object.
virtual StatusCode createAddress(long svcType, const CLID &clid, const std::string *par, const unsigned long *ip, IOpaqueAddress *&refpAddress)
IAddressCreator interfaces
xAODCnvSvc()
Default constructor:
virtual StatusCode createRep(DataObject *pObject, IOpaqueAddress *&refpAddress)
Implementation of IConverter: Convert the transient object to the requested representation.
virtual StatusCode finalize()
Some weak symbol referencing magic... These are declared in AthenaKernel/getMessageSvc....