Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

DbDefObject.h

Go to the documentation of this file.
00001 //====================================================================
00002 //      DbDefObject definition
00003 //--------------------------------------------------------------------
00004 //
00005 //  Package    : DbCnv  ( The LHCb Offline System)
00006 //
00007 //  Description: Definition of default Gaudi-persistable object
00008 //
00009 //  Author     : M.Frank
00010 //  History    :
00011 // +---------+----------------------------------------------+---------
00012 // |    Date |                 Comment                      | Who     
00013 // +---------+----------------------------------------------+---------
00014 // | 11/07/99| Initial version                              | MF
00015 // +---------+----------------------------------------------+---------
00016 //====================================================================
00017 
00018 #ifndef DBCNV_DBDEFOBJECT_H
00019 #define DBCNV_DBDEFOBJECT_H 1
00020 
00021 // Framework include files
00022 #include "DbHandle.h"
00023 #include "GaudiKernel/StatusCode.h"
00024 #include <new>
00025 
00026 // Forward declarations
00027 class IDataDirectory;
00028 class IOpaqueAddress;
00029 class StreamBuffer;
00030 class GenericLink;
00031 class DataObject;
00032 
00033 // Forward declarations
00034 class IService;
00035 class ISvcLocator;
00036 class IMessageSvc;
00037 class IObjManager;
00038 class IDataBaseMgr;
00039 class IAddressCreator;
00040 class IDataProviderSvc;
00041 class IConversionSvc;
00042 class IDataBaseHandler;
00043 class DbDefObject;
00044 class DbPersistent;
00045 template <class T>  class DbWrapper;
00046 template <>  class DbWrapper<DbDefObject>;
00047 
00073 class DbDefObject : public DbObject  {
00075   friend DbPersistent;
00076   friend DbWrapper<DbDefObject>;
00077 public:
00079   class HelperServices    {
00080   public:
00081     ISvcLocator*           SvcLocator;
00082     IMessageSvc*           MessageSvc;
00083     IDataProviderSvc*      DataSvc;
00084     IConversionSvc*        PersSvc;
00085     IConversionSvc*        CnvSvc;
00086     IDataBaseMgr*          DbaseMgr;
00087     IAddressCreator*       AddrCreator;
00088     IObjManager*           ObjManager;
00089     HelperServices()    {
00090       clear();
00091     }
00092     void clear()    {
00093       SvcLocator = 0;
00094       MessageSvc = 0;
00095       DataSvc    = 0;
00096       CnvSvc     = 0;
00097       PersSvc    = 0;
00098       AddrCreator= 0;
00099       DbaseMgr   = 0;
00100       ObjManager = 0;
00101     }
00102   };
00103 protected:
00105   long m_numSymbolic;
00106 public:
00108   DbDefObject() : m_numSymbolic(0)   {
00109   }
00111   virtual ~DbDefObject()    {
00112   }
00114   static DbObject* create(void* buffer);
00116   void setNumSymLink(long length)    {
00117     m_numSymbolic = length;
00118   }
00120   long numSymLink()   const   {
00121     return m_numSymbolic;
00122   }
00124   virtual StatusCode beginTransientUpdate(HelperServices& /* helpers */, DataObject* /* pObject */ )    {
00125     return StatusCode::SUCCESS;
00126   }
00128   virtual StatusCode endTransientUpdate(HelperServices& /* helpers */ , DataObject* /* pObject */)    {
00129     return StatusCode::SUCCESS;
00130   }
00132   virtual StatusCode doTransientUpdate(HelperServices& /* helpers */ , DataObject* /* pObject */)    {
00133     return StatusCode::SUCCESS;
00134   }
00136   virtual StatusCode beginPersistentUpdate(HelperServices& /* helpers */ , const DataObject* /* pObject */)    {
00137     return StatusCode::SUCCESS;
00138   }
00140   virtual StatusCode endPersistentUpdate(HelperServices& /* helpers */ , const DataObject* /* pObject */)    {
00141     return StatusCode::SUCCESS;
00142   }
00144   virtual StatusCode doPersistentUpdate(HelperServices& /* helpers */ , const DataObject* /* pObject */)   {
00145     return StatusCode::SUCCESS;
00146   }
00147 };
00148 
00149 // Static creator
00150 inline DbObject* DbDefObject::create(void* buffer) {
00151   return ::new(buffer) DbDefObject();
00152 }
00153 
00154 #endif  // DBCNV_DBDEFOBJECT_H
00155 

Generated at Wed Nov 21 12:22:19 2001 by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000