Loading [MathJax]/extensions/tex2jax.js
The Gaudi Framework  master (d98a2936)
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
INTuple.h
Go to the documentation of this file.
1 /***********************************************************************************\
2 * (c) Copyright 1998-2025 CERN for the benefit of the LHCb and ATLAS collaborations *
3 * *
4 * This software is distributed under the terms of the Apache version 2 licence, *
5 * copied verbatim in the file "LICENSE". *
6 * *
7 * In applying this licence, CERN does not waive the privileges and immunities *
8 * granted to it by virtue of its status as an Intergovernmental Organization *
9 * or submit itself to any jurisdiction. *
10 \***********************************************************************************/
11 #pragma once
12 
13 #include <GaudiKernel/Kernel.h>
14 #include <GaudiKernel/StatusCode.h>
15 #include <string>
16 #include <typeinfo>
17 #include <vector>
18 
19 class INTuple;
20 class INTupleItem;
21 class ISelectStatement;
22 
33 protected:
35  virtual void setType( long typ ) = 0;
36 
37 public:
39  virtual ~INTupleItem() = default;
40 
42  virtual void release() = 0;
44  virtual const std::type_info& typeID() const = 0;
46  virtual std::string typeName() const = 0;
48  virtual const void* buffer() const = 0;
50  virtual bool hasIndex() const = 0;
52  virtual const std::string& index() const = 0;
54  virtual const std::string& name() const = 0;
56  virtual long type() const = 0;
58  virtual long length() const = 0;
60  virtual void reset() = 0;
62  virtual long ndim() const = 0;
64  virtual long dim( long i ) const = 0;
66  virtual long size() const = 0;
68  virtual long filled() const = 0;
70  virtual INTupleItem* indexItem() = 0;
72  virtual const INTupleItem* indexItem() const = 0;
74  virtual INTuple* tuple() = 0;
75 };
76 
87 protected:
89  virtual INTupleItem* i_find( const std::string& name ) const = 0;
90 
91 public:
92  // Definition of _Item container
93  typedef std::vector<INTupleItem*> ItemContainer;
95  virtual ItemContainer& items() = 0;
97  virtual const ItemContainer& items() const = 0;
99  virtual char* setBuffer( char* buff ) = 0;
101  virtual const char* buffer() const = 0;
103  virtual char* buffer() = 0;
105  virtual const std::string& title() const = 0;
107  virtual void reset() = 0;
109  virtual const INTupleItem* find( const std::string& name ) const = 0;
111  virtual INTupleItem* find( const std::string& name ) = 0;
113  virtual StatusCode add( INTupleItem* item ) = 0;
115  virtual StatusCode remove( INTupleItem* item ) = 0;
117  virtual StatusCode remove( const std::string& name ) = 0;
121  virtual ISelectStatement* selector() = 0;
123  virtual StatusCode write() = 0;
125  virtual StatusCode writeRecord() = 0;
127  virtual StatusCode read() = 0;
129  virtual StatusCode readRecord() = 0;
131  virtual StatusCode save() = 0;
132  virtual ~INTuple() = default;
133 };
INTuple::remove
virtual StatusCode remove(INTupleItem *item)=0
Remove an item row (identified by pointer) from the N tuple.
INTupleItem::type
virtual long type() const =0
Type information of the item.
INTupleItem::reset
virtual void reset()=0
Reset column.
INTupleItem::indexItem
virtual const INTupleItem * indexItem() const =0
Pointer to index column (if present, 0 else) (CONST)
INTupleItem::index
virtual const std::string & index() const =0
Access the index _Item.
INTuple::readRecord
virtual StatusCode readRecord()=0
Read record of the NTuple.
INTupleItem::length
virtual long length() const =0
Access the buffer length.
INTuple::save
virtual StatusCode save()=0
Save the NTuple.
INTuple::i_find
virtual INTupleItem * i_find(const std::string &name) const =0
Internally used by abstract classes.
INTuple::read
virtual StatusCode read()=0
Read record of the NTuple (Shortcut of readRecord)
INTuple::items
virtual const ItemContainer & items() const =0
Access item container (CONST)
INTupleItem::~INTupleItem
virtual ~INTupleItem()=default
destructor
ISelectStatement
Definition: ISelectStatement.h:38
INTupleItem::ndim
virtual long ndim() const =0
Dimension.
INTupleItem::typeID
virtual const std::type_info & typeID() const =0
Compiler type ID.
INTuple::find
virtual const INTupleItem * find(const std::string &name) const =0
Find an item row of the Ntuple (CONST)
INTuple::buffer
virtual const char * buffer() const =0
Access data buffer (CONST)
StatusCode.h
INTuple::setBuffer
virtual char * setBuffer(char *buff)=0
Attach data buffer.
INTupleItem::tuple
virtual INTuple * tuple()=0
NTuple the item belongs to.
INTuple::items
virtual ItemContainer & items()=0
Access item container.
INTupleItem::hasIndex
virtual bool hasIndex() const =0
Is the tuple have an index item?
INTuple::attachSelector
virtual StatusCode attachSelector(ISelectStatement *sel)=0
Attach selector.
INTuple::ItemContainer
std::vector< INTupleItem * > ItemContainer
Definition: INTuple.h:93
INTuple::writeRecord
virtual StatusCode writeRecord()=0
Write record of the NTuple.
StatusCode
Definition: StatusCode.h:64
INTuple::buffer
virtual char * buffer()=0
Access data buffer.
INTuple::write
virtual StatusCode write()=0
Write record of the NTuple (Shortcut of writeRecord)
INTupleItem::buffer
virtual const void * buffer() const =0
Access data buffer (CONST)
INTupleItem::typeName
virtual std::string typeName() const =0
Proper type name of the object.
INTuple
Definition: INTuple.h:86
INTupleItem::filled
virtual long filled() const =0
Number of items filled.
INTuple::remove
virtual StatusCode remove(const std::string &name)=0
Remove an item row (identified by name) from the N tuple.
INTuple::add
virtual StatusCode add(INTupleItem *item)=0
Add an item row to the N tuple.
INTupleItem
Definition: INTuple.h:32
IOTest.sel
sel
Definition: IOTest.py:106
INTupleItem::dim
virtual long dim(long i) const =0
Access individual dimensions.
INTuple::selector
virtual ISelectStatement * selector()=0
Access selector.
INTuple::~INTuple
virtual ~INTuple()=default
ConditionsStallTest.name
name
Definition: ConditionsStallTest.py:77
INTupleItem::setType
virtual void setType(long typ)=0
Set the properties of the INTupleItem.
INTupleItem::size
virtual long size() const =0
Size of entire object.
Kernel.h
INTuple::title
virtual const std::string & title() const =0
Object title.
INTupleItem::name
virtual const std::string & name() const =0
Access _Item name.
INTuple::reset
virtual void reset()=0
Reset all entries to their default values.
INTupleItem::release
virtual void release()=0
Destruct object.
INTuple::find
virtual INTupleItem * find(const std::string &name)=0
Find an item row of the Ntuple.
GAUDI_API
#define GAUDI_API
Definition: Kernel.h:49
INTupleItem::indexItem
virtual INTupleItem * indexItem()=0
Pointer to index column (if present, 0 else)