ATLAS Offline Software
Loading...
Searching...
No Matches
T_AthenaPoolCustCnv.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef ATHENAPOOLCNVSVC_T_ATHENAPOOLCUSTCNV_H
6#define ATHENAPOOLCNVSVC_T_ATHENAPOOLCUSTCNV_H
7
12
14
17
18#include <string>
19#include <map>
20
21class DataObject;
22class StatusCode;
23
25template <class TYPE> class CnvFactory;
26
30template <class TRANS, class PERS>
32 friend class CnvFactory<T_AthenaPoolCustCnv<TRANS, PERS> >;
33
34protected:
36 T_AthenaPoolCustCnv(ISvcLocator* pSvcLocator,
37 const char* name = nullptr);
38
40 virtual StatusCode initialize();
41
43 template <class P>
44 Placement setPlacementForP(P& p, const std::string& key, const std::string& output);
45
49 virtual StatusCode DataObjectToPool(IOpaqueAddress* pAddr, DataObject* pObj);
50
55 virtual StatusCode PoolToDataObject(DataObject*& pObj, const Token* token,
56 const std::string& key);
57
62 template <class P>
63 StatusCode objectToPool(P* pObj, std::unique_ptr<Token>& token, const std::string& key, const std::string& output);
64
68 template <class P>
69 StatusCode poolToObject(const Token* token, P*& pObj);
70
71 virtual StatusCode transToPers(TRANS* obj, PERS*& persObj) = 0;
72 virtual StatusCode persToTrans(TRANS*& transObj, PERS* obj) = 0;
73
77 virtual bool compareClassGuid(const Token* token, const Guid &clid) const;
78
79public:
81 static CLID classID();
82
83private:
84 std::string m_className;
85
86 typedef std::map<std::string, RootType> ClassMap;
88};
89
91#endif
uint32_t CLID
The Class ID type.
This file contains the class definition for the Guid class (migrated from POOL).
static Double_t P(Double_t *tt, Double_t *par)
RpcSectorLogicContainer_p1 PERS
his file contains the class definition for the templated T_AthenaPoolCnvBase class.
This file contains the class definition for the Token class (migrated from POOL).
Abstract factory to create the converter.
This class provides a encapsulation of a GUID/UUID/CLSID/IID data structure (128 bit number).
Definition Guid.h:25
This class holds all the necessary information to guide the writing of an object in a physical place.
Definition Placement.h:20
T_AthenaPoolCnvBase(ISvcLocator *svcloc, const char *name=nullptr)
virtual StatusCode persToTrans(TRANS *&transObj, PERS *obj)=0
StatusCode objectToPool(P *pObj, std::unique_ptr< Token > &token, const std::string &key, const std::string &output)
Write an object into POOL returning its token.
virtual bool compareClassGuid(const Token *token, const Guid &clid) const
Compare POOL class GUID with the one of the object being read.
virtual StatusCode DataObjectToPool(IOpaqueAddress *pAddr, DataObject *pObj)
Write an object into POOL.
StatusCode poolToObject(const Token *token, P *&pObj)
Read an object from POOL.
Placement setPlacementForP(P &p, const std::string &key, const std::string &output)
Set POOL placement for type P.
virtual StatusCode initialize()
Gaudi Service Interface method implementations:
static CLID classID()
virtual StatusCode transToPers(TRANS *obj, PERS *&persObj)=0
T_AthenaPoolCustCnv(ISvcLocator *pSvcLocator, const char *name=nullptr)
Constructor.
virtual StatusCode PoolToDataObject(DataObject *&pObj, const Token *token, const std::string &key)
Read an object from POOL.
This class provides a token that identifies in a unique way objects on the persistent storage.
Definition Token.h:22