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

DbContainerObj.h

Go to the documentation of this file.
00001 //====================================================================
00002 //      DbContainer class definitions
00003 //--------------------------------------------------------------------
00004 //
00005 //      Package    : DbCnv ( The LHCb Offline System)
00006 //      Author     : M.Frank
00007 //====================================================================
00008 #ifndef DBCNV_DBCONTAINEROBJ_H
00009 #define DBCNV_DBCONTAINEROBJ_H 1
00010 
00011 // Framework include files
00012 #include "GaudiDb/DbHandle.h"
00013 #include "GaudiDb/DbContainer.h"
00014 #include "GaudiDb/DbAccessObj.h"
00015 #include "GaudiDb/DbDataBase.h"
00016 
00017 class IOODataBase;
00018 class DbObject;
00019 class DbContainer;
00020 class DbTypeInfo;
00021 
00049 class DbContainer    : public  DbAccessObj<DbObject*, DbObject >   {
00050 public:
00052   typedef DbAccessObj<DbObject*, DbObject > _Base;
00054   friend class DbDataBase;
00055   friend class DbContainerImpl;
00056   friend dbHandle<DbContainer>;
00057 
00058 private:
00060   IOODataBase*                  m_dbOOMs;
00062   IDbContainer*                 m_info;
00064   IMessageSvc*                  m_msgSvc;
00066   const DbTypeInfo&             m_typeInfo;
00068   mutable dbHandle<DbDataBase>  m_database;
00070   mutable bool                  m_isOpen;
00071 
00072 private:
00074   DbContainer(dbHandle<DbDataBase>& db, const std::string& name, const DbTypeInfo& info, DbAccessMode mode);
00076   virtual ~DbContainer();
00078   IDbContainer* info();
00080   IOODataBase* db();
00082   IMessageSvc* msgSvc();
00084   const DbTypeInfo* typeInfo()  const;
00086   dbHandle<DbDataBase>& database();
00088   const dbHandle<DbDataBase>& database()  const;
00090   long size()   const;
00092   DbResult open()   const;
00094   DbResult close()    const;
00096   DbResult addEntry(const dbHandle<DbObject>& handle);
00098   DbResult updateEntry(const dbHandle<DbObject>& handle);
00100   DbResult find(const dbHandle<DbContainer>& cntH, dbHandle<DbObject>& objH, const dbHandle<DbLink>& link) const;
00102   DbResult select(ISelectStatement* sel)  const;
00104   DbResult unselect()  const;
00106   DbResult remove(dbHandle<DbObject>& element);
00108   IDbCursor* makeCursor()  const;
00109 };
00110 
00111 // Inline code
00112 inline dbHandle<DbDataBase>& DbContainer::database()    {
00113   return m_database;
00114 }
00115 
00116 inline const dbHandle<DbDataBase>& DbContainer::database()  const    {
00117   return m_database;
00118 }
00119 
00120 inline IDbContainer* DbContainer::info()   {
00121   return m_info;
00122 }
00123 
00124 inline IMessageSvc* DbContainer::msgSvc()   {
00125   return m_msgSvc;
00126 }
00127 
00128 inline IOODataBase* DbContainer::db()   {
00129   return m_dbOOMs;
00130 }
00131 
00132 inline const DbTypeInfo* DbContainer::typeInfo()  const  {
00133   return &m_typeInfo;
00134 }
00135 
00136 #endif // DBCNV_DBCONTAINEROBJ_H

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