Gaudi Framework, version v20r2

Generated: 18 Jul 2008

IPoolDbMgr.h

Go to the documentation of this file.
00001 // $Id: IPoolDbMgr.h,v 1.7 2008/02/21 18:01:54 hmd Exp $
00002 //====================================================================
00003 //      IPoolDbMgr.h
00004 //--------------------------------------------------------------------
00005 //
00006 //      Author     : M.Frank
00007 //====================================================================
00008 // $Header: /local/reps/Gaudi/GaudiPoolDb/GaudiPoolDb/IPoolDbMgr.h,v 1.7 2008/02/21 18:01:54 hmd Exp $
00009 #ifndef POOLDB_IPOOLDBMGR_H
00010 #define POOLDB_IPOOLDBMGR_H
00011 
00012 // C/C++ include files
00013 #include <string>
00014 
00015 // Framework include files
00016 #include "GaudiKernel/IInterface.h"
00017 #include "GaudiKernel/ClassID.h"
00018 #include "GaudiUtils/IIODataManager.h"
00019 #include "StorageSvc/DbContainer.h"
00020 
00021 // Forward declarations
00022 class DataObject;
00023 class PoolDbAddress;
00024 class IOpaqueAddress;
00025 class ContainedObject;
00026 class IPoolCacheSvc;
00027 
00028 namespace pool {
00029   class DataCallBack;
00030   class DbSelect;
00031   class DbType;
00032   class Token;
00033   class Guid;
00034 }
00035 namespace seal {
00036   namespace reflex {
00037     class Type;
00038   }
00039 };
00040 
00041 static const InterfaceID IID_IPoolDbMgr("IPoolDbMgr", 1 , 0); 
00042 
00053 class IPoolDbMgr : virtual public IInterface    {
00054 public:
00055 
00056   enum { UNKNOWN = Gaudi::IIODataManager::UNKNOWN, 
00057          PFN = Gaudi::IIODataManager::PFN, 
00058          LFN = Gaudi::IIODataManager::LFN, 
00059          FID = Gaudi::IIODataManager::FID
00060   };
00061   enum { BAD_DATA_CONNECTION=Gaudi::IDataConnection::BAD_DATA_CONNECTION };
00062 
00064   static const InterfaceID& interfaceID() { return IID_IPoolDbMgr; }
00065 
00067   virtual IPoolCacheSvc* cacheSvc() const = 0;
00068 
00078   virtual StatusCode accessStorageType(const std::string& type_string, 
00079                                        long& gaudi_type) = 0;
00080   
00096   virtual StatusCode createAddress(long                 svc_type,
00097                                    const CLID&          clid,
00098                                    const std::string*   par, 
00099                                    const unsigned long* ipar,
00100                                    IOpaqueAddress*&     refpAddress) = 0;
00101 
00110   virtual StatusCode createAddress(pool::Token*       pToken,
00111                                    PoolDbAddress**    ppAddress) = 0;
00118   virtual StatusCode connectOutput(const std::string& outputFile,
00119                                    const std::string& openMode) = 0;
00120 
00130   virtual StatusCode commitOutput( const std::string& outputFile,
00131                                    bool               do_commit) = 0;
00132 
00141   virtual StatusCode connect(const std::string& dbName, 
00142                              const std::string& cntName,
00143                              pool::DbContainer& cntH) = 0;
00144 
00156   virtual StatusCode connectContainer(int typ, 
00157                                       const std::string& dbName,
00158                                       const std::string& cntName,
00159                                       pool::DbAccessMode openMode,
00160                                       const pool::DbTypeInfo* shape,
00161                                       pool::DbContainer& cntH
00162                                       )=0;
00163 
00171   virtual pool::DbSelect* createSelect(const std::string& criteria,
00172                                        const std::string& dbName, 
00173                                        const std::string& cntName) = 0;
00174 
00180   virtual StatusCode disconnect(   const std::string&  dbName) = 0;
00181 
00190   virtual StatusCode markWrite(     pool::DataCallBack* call,
00191                                     const std::string& cntName,
00192                                     PoolDbAddress**    ppAddr=0) = 0;
00193 
00200   virtual StatusCode markUpdate(    pool::DataCallBack* call,
00201                                     PoolDbAddress*     pAddr) = 0;
00202 
00209   virtual StatusCode read(          pool::DataCallBack* call,
00210                                     PoolDbAddress*     pAddr) = 0;
00211 
00213 
00218   virtual StatusCode read(          pool::DataCallBack* call,
00219                                     pool::Token& tok) = 0;
00220 };
00221 
00222 #endif  // POOLDB_IPOOLDBMGR_H

Generated at Fri Jul 18 11:59:23 2008 for Gaudi Framework, version v20r2 by Doxygen version 1.5.1 written by Dimitri van Heesch, © 1997-2004