Loading [MathJax]/extensions/tex2jax.js
The Gaudi Framework  v31r0 (aeb156f0)
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
INTuple.h
Go to the documentation of this file.
1 #ifndef GAUDIKERNEL_INTUPLE_H
2 #define GAUDIKERNEL_INTUPLE_H
3 
4 // STL include files
5 #include <string>
6 #include <typeinfo>
7 #include <vector>
8 
9 // Framework include files
10 #include "GaudiKernel/Kernel.h"
11 #include "GaudiKernel/StatusCode.h"
12 
13 // Forward declarations
14 class INTuple;
15 class INTupleItem;
16 class ISelectStatement;
17 
28 protected:
30  virtual void setType( long typ ) = 0;
31 
32 public:
34  virtual ~INTupleItem() = default;
35 
37  virtual void release() = 0;
39  virtual const std::type_info& typeID() const = 0;
41  virtual std::string typeName() const = 0;
43  virtual const void* buffer() const = 0;
45  virtual bool hasIndex() const = 0;
47  virtual const std::string& index() const = 0;
49  virtual const std::string& name() const = 0;
51  virtual long type() const = 0;
53  virtual long length() const = 0;
55  virtual void reset() = 0;
57  virtual long ndim() const = 0;
59  virtual long dim( long i ) const = 0;
61  virtual long size() const = 0;
63  virtual long filled() const = 0;
65  virtual INTupleItem* indexItem() = 0;
67  virtual const INTupleItem* indexItem() const = 0;
69  virtual INTuple* tuple() = 0;
70 };
71 
82 protected:
84  virtual INTupleItem* i_find( const std::string& name ) const = 0;
85 
86 public:
87  // Definition of _Item container
90  virtual ItemContainer& items() = 0;
92  virtual const ItemContainer& items() const = 0;
94  virtual char* setBuffer( char* buff ) = 0;
96  virtual const char* buffer() const = 0;
98  virtual char* buffer() = 0;
100  virtual const std::string& title() const = 0;
102  virtual void reset() = 0;
104  virtual const INTupleItem* find( const std::string& name ) const = 0;
106  virtual INTupleItem* find( const std::string& name ) = 0;
108  virtual StatusCode add( INTupleItem* item ) = 0;
110  virtual StatusCode remove( INTupleItem* item ) = 0;
112  virtual StatusCode remove( const std::string& name ) = 0;
114  virtual StatusCode attachSelector( ISelectStatement* sel ) = 0;
116  virtual ISelectStatement* selector() = 0;
118  virtual StatusCode write() = 0;
120  virtual StatusCode writeRecord() = 0;
122  virtual StatusCode read() = 0;
124  virtual StatusCode readRecord() = 0;
126  virtual StatusCode save() = 0;
127  virtual ~INTuple() = default;
128 };
129 #endif
std::vector< INTupleItem * > ItemContainer
Definition: INTuple.h:88
A select statement can either contain.
sel
Definition: IOTest.py:93
def read(f, regex='.*', skipevents=0)
Definition: hivetimeline.py:22
constexpr auto size(const C &c) noexcept(noexcept(c.size())) -> decltype(c.size())
STL class.
NTuple interface class definition.
Definition: INTuple.h:81
NTuple interface class definition.
Definition: INTuple.h:27
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
STL class.
std::string typeName(const std::type_info &typ)
Definition: Dictionary.cpp:21
#define GAUDI_API
Definition: Kernel.h:71