| # Gaudi Framework, version v20r3
Generated: 24 Nov 2008

# HNTupleCnv.h

Go to the documentation of this file.

    00001 // $Header: /local/reps/Gaudi/HbookCnv/src/HNTupleCnv.h,v 1.1.1.1 2000/11/23 11:34:55 ranjard Exp $
    00002 #ifndef HBOOKCNV_HNTUPLECNV_H
    00003 #define HBOOKCNV_HNTUPLECNV_H 1
    00004
    00005
    00006 // Include files
    00007 #include "HConverter.h"
    00008
    00009
    00010 // Forward declarations
    00011 class ISvcLocator;
    00012 class NTUPLEINFO;
    00013 class INTupleItem;
    00014 class INTupleSvc;
    00015 class INTuple;
    00016
    00017
    00018 //====================================================================
    00019 //  NTuple converter class definition
    00020 //--------------------------------------------------------------------
    00021 //
    00022 //  Package    : HbookCnv ( The LHCb Offline System)
    00023 //  Author     : M.Frank
    00024 //
    00025 //====================================================================
    00026
    00027
    00028 namespace HbookCnv {
    00029
    00052   class HNTupleCnv : public HConverter   {
    00053
    00054   public:
    00056     virtual StatusCode initialize();
    00058     virtual StatusCode finalize();
    00060     virtual StatusCode createObj(IOpaqueAddress* pAddress, DataObject*& refpObject);
    00062     virtual StatusCode updateObj( IOpaqueAddress* pAddress, DataObject* refpObject );
    00064     virtual StatusCode createRep( DataObject* pObject, IOpaqueAddress*& refpAddress );
    00066     virtual StatusCode updateRep( IOpaqueAddress* pAddress, DataObject* pObject );
    00067
    00068   protected:
    00070     HNTupleCnv( ISvcLocator* svc, const CLID& clid );
    00072     virtual ~HNTupleCnv();
    00074     virtual StatusCode load( long id, INTuple*& refpObject ) = 0;
    00076     virtual StatusCode book( long idh, const std::string& loc, INTuple* pObject) = 0;
    00078     virtual StatusCode writeData(long idh, INTuple* pObject) = 0;
    00080     virtual StatusCode readData(long idh, INTuple* pObject, long ievt) = 0;
    00081
    00082
    00083   protected:
    00085     INTupleSvc*  m_ntupleSvc;
    00086
    00087   };
    00088
    00090   template<class TYP>
    00091   INTupleItem* createNTupleItem(NTUPLEINFO& tags, long i, INTuple* tuple, TYP minimum, TYP maximum, long& size);
    00092
    00093   bool parseName(std::string full, std::string &blk, std::string &var);
    00094
    00095 }    // namespace HbookCnv
    00096
    00097
    00098 #endif    // HBOOKCNV_HNTUPLECNV_H