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
1.2.3 written by Dimitri van Heesch,
© 1997-2000