#ifndef GAUDIPoolCNVSVC_H #define GAUDIPoolCNVSVC_H #include "GaudiKernel/ConversionSvc.h" #include "POOLCore/pool.h" class PoolSvc; class EventHeaderConverter; // class IDataProviderSvc; // Forward declarations template class SvcFactory; class AthenaPoolCnvSvc : public ConversionSvc { /// Allow the factory class access to the constructor friend class SvcFactory; public: /**@name AthenaPoolCnvSvc overrides */ //@{ /// Initialize the service. virtual StatusCode initialize(); virtual StatusCode finalize(); /// Update state of the service virtual StatusCode updateServiceState(IOpaqueAddress* pAddress); //@} /// Implementation of IConverter: Resolve the references of the converted object. virtual StatusCode fillRepRefs(IOpaqueAddress* pAddress,DataObject* pObject); //???? //virtual StatusCode createReps(IDataSelector* pSelector) ; /// Connect the output file to the service with open mode. virtual StatusCode connectOutput(const std::string& outputFile, const std::string& openMode) ; /// Connect the output file to the service virtual StatusCode connectOutput(const std::string& output) ; // virtual StatusCode flushOutput(const std::string& t) ; // Commit pending output. virtual StatusCode commitOutput(const std::string& output, bool do_commit) ; PoolSvc * getPoolSvc(); pool::TransactionH *getTransaction(){ return &m_Transaction; } // TDataSet* getEvent(); // StatusCode getCLID(string st, CLID& clid ) ; // StatusCode getCLIDfromFac(string st, CLID& clid ) ; protected: /**@name: Object implementation */ //@{ /// Standard Constructor AthenaPoolCnvSvc(const std::string& name, ISvcLocator* svc); /// Standard Destructor virtual ~AthenaPoolCnvSvc(); private: // Input File std::string m_inputFile; PoolSvc* m_PoolSvc; // Pool transactions pool::TransactionH m_Transaction; pool::ConnectionH m_Dbc; EventHeaderConverter *m_EventHeaderConverter; }; #endif