|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef ATHENAPOOLCNVSVC_T_ATHENAPOOLCUSTOMCNV_H
6 #define ATHENAPOOLCNVSVC_T_ATHENAPOOLCUSTOMCNV_H
13 #include "GaudiKernel/ThreadLocalContext.h"
14 #include "GaudiKernel/EventContext.h"
33 template <
class TRANS,
class PERS>
47 const char*
name =
nullptr);
113 const std::string&
key)
override;
129 template <
class TRANS,
class PERS>
virtual StatusCode cleanUp(const std::string &output) override
Callback from the CleanupSvc to delete persistent object in the local list.
std::map< std::string, std::vector< std::unique_ptr< PERS > > > m_persObjLists
Local cache for persistent objects created by this converter, grouped by processing slot These object...
virtual TRANS * createTransientWithKey(const std::string &key)=0
method to be implemented by the developer.
void keepPoolObj(PERS *obj, const std::string &output)
Remember the POOL object to be written out (will be deleted after commit)
std::mutex m_pListMutex
protection mutex for m_persObjLists
T_AthenaPoolCustomCnvWithKey(ISvcLocator *pSvcLocator, const char *name=nullptr)
Constructor.
This templated class provides the converter to translate an object to/from its persistent POOL repres...
his file contains the class definition for the templated T_AthenaPoolCustCnv class.
virtual StatusCode DataObjectToPool(IOpaqueAddress *pAddr, DataObject *pObj) override
Write an object into POOL.
This templated class extends T_AthenaPoolCustCnv to provide management of the persistent objects crea...
This class provides a token that identifies in a unique way objects on the persistent storage.
T_AthenaPoolCustCnv< TRANS, PERS > BaseType
Compatibility for old converter classes that don't get passed the key.
::StatusCode StatusCode
StatusCode definition for legacy code.
virtual StatusCode transToPers(TRANS *, PERS *&) override
Obsolete methods replaced by createPersistent() and createTransient() obsolete.
void poolReadObject(TopLevelTPCnvBase &tlp_converter)
Read object of type P (plus all extending objects) using the indicated top-level TP converter.
virtual StatusCode PoolToDataObject(DataObject *&pObj, const Token *token, const std::string &key) override
Read an object from POOL.
virtual PERS * createPersistentWithKey(TRANS *obj, const std::string &key)=0
method to be implemented by the developer.
virtual TRANS * createTransientWithKey(const std::string &) override
method to be implemented by the developer.
Base class for top-level TP converters.
P * poolReadObject()
Read object of type P.
virtual PERS * createPersistentWithKey(TRANS *obj, const std::string &) override
method to be implemented by the developer.
virtual TRANS * createTransient()=0
virtual PERS * createPersistent(TRANS *obj)=0
This templated class extends T_AthenaPoolCustomCnv to provide additional/chaged functionality for Ath...
virtual StatusCode DataObjectToPers(DataObject *pObj, IOpaqueAddress *&pAddr) override
Convert an object into Persistent.
virtual StatusCode persToTrans(TRANS *&, PERS *) override
obsolete