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

INTuple.h

Go to the documentation of this file.
00001 // $Header: /nfs/slac/g/glast/ground/cvs/GaudiKernel/GaudiKernel/INTuple.h,v 1.1.1.1 2001/04/18 18:14:18 tlindner Exp $
00002 #ifndef GAUDIKERNEL_INTUPLE_H
00003 #define GAUDIKERNEL_INTUPLE_H
00004 
00005 // STL include files
00006 #include <string>
00007 #include <typeinfo>
00008 
00009 // Framework include files
00010 #include "GaudiKernel/Kernel.h"
00011 #include "GaudiKernel/StatusCode.h"
00012 
00013 // Forward declarations
00014 class INTuple;
00015 class INTupleItem;
00016 class ISelectStatement;
00017 
00027 class INTupleItem    {
00028 protected:
00030   virtual void                setType (long typ)            = 0;
00031 public:
00033   virtual void                release()                     = 0;
00035   virtual const std::type_info& typeID()      const         = 0;
00037   virtual const std::string   typeName()      const         = 0;
00039   virtual const void*         buffer()        const         = 0;
00041   virtual bool                hasIndex()      const         = 0;
00043   virtual const std::string&  index()         const         = 0;
00045   virtual const std::string&  name()          const         = 0;
00047   virtual const long          type()          const         = 0;
00049   virtual const long          length()        const         = 0;
00051   virtual void                reset()                       = 0;
00053   virtual long                ndim()          const         = 0;
00055   virtual long                dim(long i)     const         = 0;
00057   virtual long                size()          const         = 0;
00059   virtual long                filled()        const         = 0;
00061   virtual INTupleItem*        indexItem()                   = 0;
00063   virtual const INTupleItem*  indexItem()     const         = 0;
00065   virtual INTuple*            tuple()                       = 0;
00066 };
00067 
00077 class INTuple   {
00078 protected:
00080   virtual INTupleItem*          i_find(const std::string& name)  const = 0;
00081 public:
00082   // Definition of _Item container
00083   typedef std::vector< INTupleItem* > ItemContainer;
00085   virtual ItemContainer&        items()   =  0;
00087   virtual const ItemContainer&  items()    const   = 0;
00089   virtual void                  setBuffer(char* buff) = 0;
00091   virtual const char*           buffer()  const = 0;
00093   virtual char*                 buffer()  = 0;
00095   virtual const std::string&    title()         const         = 0;
00097   virtual void                  reset() = 0;
00099   virtual const INTupleItem*    find(const std::string& name) const = 0;
00101   virtual       INTupleItem*    find(const std::string& name) = 0;
00103   virtual StatusCode            add(INTupleItem* item) = 0;
00105   virtual StatusCode            remove(INTupleItem* item) = 0;
00107   virtual StatusCode            remove(const std::string& name) = 0;
00109   virtual StatusCode            attachSelector(ISelectStatement* sel) = 0;
00111   virtual ISelectStatement*     selector() = 0;
00112 };
00113 #endif

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