| # Gaudi Framework, version v20r3
Generated: 24 Nov 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