//==================================================================== // T_AthenaPoolCnv template //-------------------------------------------------------------------- // // Package : AthenaPoolCnvSvc // // Description: template of the Athena converter class // // Author : Valeri Fine // created : Mar 3, 2003 // History : //==================================================================== #ifndef T_ATHENAPoolCNV_H #define T_ATHENAPoolCNV_H #include "AthenaPoolCnvSvc/AthenaPoolConverter.h" #include "POOLCore/Transaction.h" #include "DataSvc/Ref.h" class IOpaqueAddress; class DataObject; class StatusCode; class AthenaPoolCnvSvc; // Abstract factory to create the converter template class CnvFactory; template class T_AthenaPoolCnv: public AthenaPoolConverter { friend class CnvFactory >; protected: pool::Ref m_RefClass; protected: T_AthenaPoolCnv(ISvcLocator* svcloc); void setPlacement(); virtual StatusCode DataObjectToPool(DataObject* pObj,std::string tname); virtual StatusCode PoolToDataObject(DataObject* pObj,AthenaPoolAddress *pAddress); virtual std::string markWrite(); public: /// class ID static const CLID& classID(); private: }; #include "AthenaPoolCnvSvc/T_AthenaPoolCnv.icc" #endif