Gaudi Framework, version v23r1

Home   Generated: Wed Feb 29 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 
00112   public:
00113 
00115     //const std::string& section() const { return m_section; }
00116 
00118     virtual StatusCode initialize();
00119 
00121     virtual StatusCode finalize();
00122 
00124     virtual IConverter* createConverter(long typ, 
00125                                         const CLID& wanted, 
00126                                         const ICnvFactory* fac);
00127 
00129     virtual void loadConverter(DataObject* pObj);
00130 
00137     virtual StatusCode connectOutput(const std::string& outputFile,
00138                                      const std::string& openMode);
00139 
00145     virtual StatusCode connectOutput(const std::string& outputFile);
00146 
00157     virtual StatusCode commitOutput(const std::string& outputFile,
00158                                     bool               do_commit);
00159 
00165     virtual StatusCode disconnect(const std::string& dbName);
00166 
00178     virtual StatusCode createAddress( long                 svc_type,
00179                                       const CLID&          clid,
00180                                       const std::string*   par, 
00181                                       const unsigned long* ip,
00182                                       IOpaqueAddress*&     refpAddress);
00183   
00193     virtual StatusCode createAddress( long svc_type,
00194                                       const CLID& clid,
00195                                       const std::string& refAddress,
00196                                       IOpaqueAddress*& refpAddress) {
00197       return this->ConversionSvc::createAddress(svc_type,clid,refAddress,refpAddress);
00198     }
00199 
00206     virtual StatusCode createNullRep(const std::string& path);
00207 
00214     virtual StatusCode createNullRef(const std::string& path);
00215 
00223     virtual StatusCode i__createRep(DataObject* pObj, IOpaqueAddress*& refpAddr);
00224 
00225 
00233     virtual StatusCode i__fillRepRefs(IOpaqueAddress* pAddr,DataObject* pObj);
00234 
00242     virtual StatusCode i__createObj(IOpaqueAddress* pAddr, DataObject*& refpObj);
00243 
00251     virtual StatusCode i__fillObjRefs(IOpaqueAddress* pAddr, DataObject* pObj);
00252   };
00253 }
00254 
00255 #endif  // GAUDIROOTCNV_GAUDIROOTCNVSVC_H
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines

Generated at Wed Feb 29 2012 15:30:04 for Gaudi Framework, version v23r1 by Doxygen version 1.7.2 written by Dimitri van Heesch, © 1997-2004