|
ATLAS Offline Software
|
Go to the documentation of this file.
24 #include "GaudiKernel/DataObject.h"
25 #include "GaudiKernel/IOpaqueAddress.h"
26 #include "GaudiKernel/IRegistry.h"
35 std::string name_from_clid(
const CLID clid) {
37 o <<
"AthenaRootCnv_" << clid;
46 m_cnvSvc(
"Athena::RootCnvSvc/AthenaRootCnvSvc", ::name_from_clid(
id)),
54 m_cnvSvc(
"Athena::RootCnvSvc/AthenaRootCnvSvc", ::name_from_clid(CLID_NULL)),
66 return StatusCode::FAILURE;
70 CLID clid = this->objType();
79 ATH_MSG_INFO(
"Cannot get T/P converter, will write transient type [" <<
m_ttype.
Name() <<
", clid = " << clid <<
"]");
87 return StatusCode::FAILURE;
90 return StatusCode::SUCCESS;
98 return ROOT_StorageType;
102 return ROOT_StorageType;
120 return StatusCode::FAILURE;
124 ATH_MSG_VERBOSE(
"fillObjRefs(pAddr = " << pAddr <<
", " <<
"pObj = " << pObj <<
")...");
125 return StatusCode::FAILURE;
133 return StatusCode::FAILURE;
135 CLID clid = pObj->clID();
136 IRegistry* pR = pObj->registry();
139 return StatusCode::FAILURE;
141 std::string
p[2] = {
"", pR->identifier() };
142 unsigned long ip[2] = { 0, 0 };
147 if (token == 0 || !
m_cnvSvc->createAddress(this->repSvcType(), clid,
p,
ip, pAddr).isSuccess()) {
149 return StatusCode::FAILURE;
151 ATH_MSG_DEBUG(
"writing [" << objType() <<
"/" <<
p[1] <<
"] [done], entry = " <<
ip[0]);
152 return StatusCode::SUCCESS;
156 ATH_MSG_VERBOSE(
"fillRepRefs(pAddr = " << pAddr <<
", " <<
"pObj = " << pObj <<
")...");
157 return StatusCode::FAILURE;
virtual StatusCode initialize()
Gaudi Service Interface method implementations:
def finalize(self)
_info( "content of StoreGate..." ) self.sg.dump()
RootType m_ttype
transient type
bool fromStorable(DataObject *pDObj, T *&pTrans, bool quiet=false, IRegisterTransient *irt=0, bool isConst=true)
convert to and from a SG storable
This file contains the class definition for the Athena::RootCnv class.
virtual ~RootCnv()
Destructor.
#define ATH_MSG_VERBOSE(x)
ServiceHandle< ::IAthenaRootCnvSvc > m_cnvSvc
ServiceHandle to the conversion service.
msgSvc
Provide convenience handles for various services.
virtual StatusCode fillObjRefs(IOpaqueAddress *pAddr, DataObject *pObj)
Resolve the references of the created transient object.
Some weak symbol referencing magic...
::StatusCode StatusCode
StatusCode definition for legacy code.
virtual StatusCode createRep(DataObject *pObj, IOpaqueAddress *&pAddr)
Create a ROOT persistent representation for a transient object.
Class to provide easy MsgStream access and capabilities.
uint32_t CLID
The Class ID type.
std::string Name(unsigned int mod=Reflex::SCOPED) const
virtual StatusCode createObj(IOpaqueAddress *pAddr, DataObject *&pObj)
Create a transient object from a ROOT persistent representation.
RootType m_ptype
persistent type
Bool_t IsFundamental() const
long repSvcType() const
Retrieve the class type of the data store the converter uses.
This file contains the class definition for the IRootSvc interface class.
virtual const std::type_info & persistentTInfo() const =0
return C++ type id of the persistent class this converter is for
static long storageType()
This file contains the class definition for the IAthenaRootCnvSvc interface class.
This file contains the class definition for the Placement class (migrated from POOL).
virtual StatusCode finalize()
This file contains the class definition for the Token class (migrated from POOL).
RootCnv()
Default constructor:
virtual StatusCode fillRepRefs(IOpaqueAddress *pAddr, DataObject *pObj)
Resolve the references of the created transient object.