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

DbNTupleCnv.h

Go to the documentation of this file.
00001 //====================================================================
00002 //  Row wise NTuple converter class definition
00003 //--------------------------------------------------------------------
00004 //
00005 //  Package    : HbookCnv ( The LHCb Offline System)
00006 //  Author     : M.Frank
00007 //
00008 //====================================================================
00009 #ifndef DBCNV_NTUPLES_DBTUPLECNV_H
00010 #define DBCNV_NTUPLES_DBTUPLECNV_H 1
00011 
00012 // Include files
00013 #include "DbUserDataBaseCnv.h"
00014 #include "GaudiKernel/NTuple.h"
00015 
00016 // STL include files
00017 #include <map>
00018 
00019 // Forward declarations
00020 class INTupleSvc;
00021 class DbColumn;
00022 class DbNTupleImage;
00023 template <class TYPE> class DbOOMsCnvFactory;
00024 
00025 
00048 class DbNTupleCnv : public DbUserDataBaseCnv   {
00049 protected:
00050 public:
00052   DbNTupleCnv(const CLID& clid, IOODataBase* db, ISvcLocator* svc);
00054   virtual ~DbNTupleCnv();
00056   virtual StatusCode initialize();
00058   virtual StatusCode finalize();
00059 
00061   virtual StatusCode createRep( DataObject* pObject, IOpaqueAddress*& refpAddress );
00063   virtual dbHandle<DbObject> createPersistent(dbHandle<DbContainer>& cntH);
00064 
00066   virtual StatusCode createObj(IOpaqueAddress* pAddress, DataObject*& refpObject);
00068   virtual StatusCode fillObjRefs(IOpaqueAddress* pAddress, DataObject* pObject);
00070   virtual StatusCode updateObj(IOpaqueAddress* pAddress, DataObject* pObject);
00072   virtual StatusCode updateObjRefs(IOpaqueAddress* pAddress, DataObject* pObject);
00073 
00075   virtual StatusCode updateRep(IOpaqueAddress* pAddress, DataObject* pObject);
00077   virtual StatusCode updateRepRefs(IOpaqueAddress* pAddress, DataObject* pObject);
00079   virtual StatusCode doPersistentUpdate( DefHandle& objH, const DataObject* pObject);
00081   virtual StatusCode afterPersistentUpdate(dbHandle<DbDefObject>& objH, const DataObject* pObject);
00083   virtual StatusCode doTransientUpdate( DefHandle& objH, DataObject* pObject);
00084 };
00085 
00086 #include "GaudiKernel/NTupleImplementation.h"
00087 
00088 class DbRWNTupleCnv : public DbNTupleCnv    {
00090   friend class DbOOMsCnvFactory<DbRWNTupleCnv>;
00091 public:
00093   static const CLID& classID()    {
00094     return CLID_RowWiseTuple;
00095   }
00097   DbRWNTupleCnv(IOODataBase* db, ISvcLocator* svc) : DbNTupleCnv(classID(), db, svc)    {
00098   }
00100   virtual ~DbRWNTupleCnv()    {
00101   }
00102 };
00103 
00104 class DbCWNTupleCnv : public DbNTupleCnv    {
00106   friend class DbOOMsCnvFactory<DbCWNTupleCnv>;
00107 public:
00109   static const CLID& classID()    {
00110     return CLID_ColumnWiseTuple;
00111   }
00113   DbCWNTupleCnv(IOODataBase* db, ISvcLocator* svc) : DbNTupleCnv(classID(), db, svc)    {
00114   }
00116   virtual ~DbCWNTupleCnv()    {
00117   }
00118 };
00119 
00120 #endif    // DBCNV_NTUPLES_DBTUPLECNV_H

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