Gaudi Framework, version v23r2

Home   Generated: Thu Jun 28 2012

RootCnvSvc.h

Go to the documentation of this file.
00001 // $Id: RootCnvSvc.h,v 1.7 2010-09-14 06:01:12 frankb Exp $
00002 //====================================================================
00003 //      RootCnvSvc definition
00004 //--------------------------------------------------------------------
00005 //
00006 //      Author     : M.Frank
00007 //====================================================================
00008 #ifndef GAUDIROOTCNV_GAUDIROOTCNVSVC_H
00009 #define GAUDIROOTCNV_GAUDIROOTCNVSVC_H
00010 // $Header: /afs/cern.ch/project/cvs/reps/lhcb/Online/RootCnv/src/RootCnvSvc.h,v 1.7 2010-09-14 06:01:12 frankb Exp $
00011 
00012 // Framework include files
00013 #include "GaudiKernel/ConversionSvc.h"
00014 #include "GaudiKernel/DataObject.h"
00015 #include "GaudiKernel/ClassID.h"
00016 
00017 // C++ include files
00018 #include <set>
00019 
00020 // Forward declarations
00021 class IDataManagerSvc;
00022 class IIncidentSvc;
00023 class TClass;
00024 
00025 /*
00026  * Gaudi namespace declaration
00027  */
00028 namespace Gaudi {
00029 
00030   // Forward declarations
00031   class IIODataManager;
00032   class IDataConnection;
00033   class RootDataConnection;
00034   class RootConnectionSetup;
00035 
00046   class GAUDI_API RootCnvSvc : public ConversionSvc  {
00047   protected:
00048 
00050     Gaudi::IIODataManager*      m_ioMgr;
00052     IIncidentSvc*               m_incidentSvc;
00054     Gaudi::RootDataConnection*  m_current;
00056     TClass*                     m_classRefs;
00058     TClass*                     m_classDO;
00060     RootConnectionSetup*        m_setup;
00062     std::string                 m_currSection;
00063 
00065     bool                        m_incidentEnabled;
00067     std::string                 m_shareFiles;
00069     std::string                 m_recordName;
00071     std::string                 m_ioPerfStats;
00073     std::string                 m_compression;
00075     std::set<std::string>       m_badFiles;
00076 
00078     MsgStream*                  m_log;
00079 
00081     TClass* getClass(DataObject* pObject);
00083     MsgStream& log() const {   return *m_log; }
00084 
00085   public:
00086 
00088     RootCnvSvc(const std::string& name, ISvcLocator* svc);
00089 
00091     virtual ~RootCnvSvc();
00092 
00094     virtual StatusCode updateServiceState(IOpaqueAddress* /* pAddress */) 
00095     { return StatusCode::SUCCESS;                  }
00096 
00102     StatusCode error(const std::string& msg);
00103 
00110     StatusCode connectDatabase(const std::string& dataset, int mode, RootDataConnection** con);
00111 
00113     virtual StatusCode initialize();
00114 
00116     virtual StatusCode finalize();
00117 
00119     virtual IConverter* createConverter(long typ, 
00120                                         const CLID& wanted, 
00121                                         const ICnvFactory* fac);
00122 
00124     virtual void loadConverter(DataObject* pObj);
00125 
00132     virtual StatusCode connectOutput(const std::string& outputFile,
00133                                      const std::string& openMode);
00134 
00140     virtual StatusCode connectOutput(const std::string& outputFile);
00141 
00152     virtual StatusCode commitOutput(const std::string& outputFile,
00153                                     bool               do_commit);
00154 
00160     virtual StatusCode disconnect(const std::string& dbName);
00161 
00173     virtual StatusCode createAddress( long                 svc_type,
00174                                       const CLID&          clid,
00175                                       const std::string*   par, 
00176                                       const unsigned long* ip,
00177                                       IOpaqueAddress*&     refpAddress);
00178   
00188     virtual StatusCode createAddress( long svc_type,
00189                                       const CLID& clid,
00190                                       const std::string& refAddress,
00191                                       IOpaqueAddress*& refpAddress) {
00192       return this->ConversionSvc::createAddress(svc_type,clid,refAddress,refpAddress);
00193     }
00194 
00201     virtual StatusCode createNullRep(const std::string& path);
00202 
00209     virtual StatusCode createNullRef(const std::string& path);
00210 
00218     virtual StatusCode i__createRep(DataObject* pObj, IOpaqueAddress*& refpAddr);
00219 
00220 
00228     virtual StatusCode i__fillRepRefs(IOpaqueAddress* pAddr,DataObject* pObj);
00229 
00237     virtual StatusCode i__createObj(IOpaqueAddress* pAddr, DataObject*& refpObj);
00238 
00246     virtual StatusCode i__fillObjRefs(IOpaqueAddress* pAddr, DataObject* pObj);
00247   };
00248 }
00249 
00250 #endif  // GAUDIROOTCNV_GAUDIROOTCNVSVC_H
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines

Generated at Thu Jun 28 2012 23:27:29 for Gaudi Framework, version v23r2 by Doxygen version 1.7.2 written by Dimitri van Heesch, © 1997-2004