| # Gaudi Framework, version v20r4
Generated: 8 Jan 2009

# NTupleImplementation.h

Go to the documentation of this file.

    00001 // $Header: /tmp/svngaudi/tmp.jEpFh25751/Gaudi/GaudiKernel/GaudiKernel/NTupleImplementation.h,v 1.7 2006/12/10 20:29:17 leggett Exp $
    00002 #ifndef GAUDIKERNEL_NTUPLEIMP_H
    00003 #define GAUDIKERNEL_NTUPLEIMP_H
    00004
    00005 // Framework include files
    00006 #include "NTuple.h"
    00007
    00008 // Forward declarations
    00009 class INTupleSvc;
    00010 class IConversionSvc;
    00011
    00012 namespace NTuple   {
    00013   // Concrete N tuple class definition
    00014   class TupleImp : public Tuple  {
    00015   protected:
    00017     ItemContainer     m_items;
    00019     bool              m_isBooked;
    00021     std::string       m_title;
    00023     ISelectStatement* m_pSelector;
    00025     char*             m_buffer;
    00027     INTupleSvc*       m_ntupleSvc;
    00029     IConversionSvc*   m_cnvSvc;
    00030   private:
    00032     TupleImp(const TupleImp&) ;
    00033
    00034   public:
    00036     virtual INTupleItem* i_find(const std::string& name)  const;
    00037   public:
    00039     TupleImp( const std::string& title);
    00041     virtual ~TupleImp();
    00043     ItemContainer& items()    {
    00044       return m_items;
    00045     }
    00047     const ItemContainer& items()    const   {
    00048       return m_items;
    00049     }
    00051     virtual const std::string&  title()         const   {
    00052       return m_title;
    00053     }
    00055     virtual const INTupleItem* find(const std::string& name) const    {
    00056       return i_find(name);
    00057     }
    00059     virtual INTupleItem* find(const std::string& name)    {
    00060       return i_find(name);
    00061     }
    00063     char* buffer()    {
    00064       return m_buffer;
    00065     }
    00067     const char* buffer()  const  {
    00068       return m_buffer;
    00069     }
    00071     IConversionSvc* conversionService()   const  {
    00072       return m_cnvSvc;
    00073     }
    00075     void setConversionService( IConversionSvc* svc )    {
    00076       m_cnvSvc = svc;
    00077     }
    00079     INTupleSvc* tupleService()   const  {
    00080       return m_ntupleSvc;
    00081     }
    00083     void setTupleService( INTupleSvc* svc )    {
    00084       m_ntupleSvc = svc;
    00085     }
    00087     virtual StatusCode attachSelector(ISelectStatement* sel);
    00089     virtual ISelectStatement* selector();
    00091     virtual void setBuffer(char* buff);
    00093     virtual void reset();
    00095     virtual StatusCode add(INTupleItem* item);
    00097     virtual StatusCode remove(INTupleItem* item);
    00099     virtual StatusCode remove(const std::string& name);
    00101     virtual StatusCode write();
    00103     virtual StatusCode writeRecord();
    00105     virtual StatusCode read();
    00107     virtual StatusCode readRecord();
    00109     virtual StatusCode save();
    00110
    00111   };  // end class definition: Tuple
    00112
    00113
    00114   // Concrete column wise N tuple class definition
    00115   class ColumnWiseTuple : public TupleImp    {
    00116   public:
    00118     ColumnWiseTuple(const std::string& title ) : TupleImp(title)    {
    00119     }
    00121     virtual ~ColumnWiseTuple()   {
    00122     }
    00124     virtual const CLID& clID() const   {
    00125       return ColumnWiseTuple::classID();
    00126     }
    00128     static const CLID& classID()      {
    00129       return CLID_ColumnWiseTuple;
    00130     }
    00131   };  // end class definition: ColumnWiseTuple
    00132
    00133   // Concrete column wise N tuple class definition
    00134   class RowWiseTuple : public TupleImp    {
    00135   public:
    00137     RowWiseTuple( const std::string& title ) : TupleImp(title)    {
    00138     }
    00140     virtual ~RowWiseTuple()   {
    00141     }
    00143     virtual const CLID& clID() const   {
    00144       return RowWiseTuple::classID();
    00145     }
    00147     static const CLID& classID()      {
    00148       return CLID_RowWiseTuple;
    00149     }
    00150   };  // end class definition: RowWiseTuple
    00151 }   // end name space NTuple
    00152
    00153 #endif  // GAUDIKERNEL_NTUPLEIMP_H