The Gaudi Framework  master (82fdf313)
Loading...
Searching...
No Matches
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>
15#include <string>
16#include <typeinfo>
17#include <vector>
18
19class INTuple;
20class INTupleItem;
22
33protected:
35 virtual void setType( long typ ) = 0;
36
37public:
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
87protected:
89 virtual INTupleItem* i_find( const std::string& name ) const = 0;
90
91public:
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;
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};
#define GAUDI_API
Definition Kernel.h:49
NTuple interface class definition.
Definition INTuple.h:86
virtual StatusCode attachSelector(ISelectStatement *sel)=0
Attach selector.
virtual INTupleItem * find(const std::string &name)=0
Find an item row of the Ntuple.
virtual INTupleItem * i_find(const std::string &name) const =0
Internally used by abstract classes.
virtual StatusCode save()=0
Save the NTuple.
std::vector< INTupleItem * > ItemContainer
Definition INTuple.h:93
virtual void reset()=0
Reset all entries to their default values.
virtual ISelectStatement * selector()=0
Access selector.
virtual const char * buffer() const =0
Access data buffer (CONST)
virtual char * setBuffer(char *buff)=0
Attach data buffer.
virtual const INTupleItem * find(const std::string &name) const =0
Find an item row of the Ntuple (CONST)
virtual ~INTuple()=default
virtual StatusCode writeRecord()=0
Write record of the NTuple.
virtual StatusCode write()=0
Write record of the NTuple (Shortcut of writeRecord)
virtual StatusCode remove(INTupleItem *item)=0
Remove an item row (identified by pointer) from the N tuple.
virtual ItemContainer & items()=0
Access item container.
virtual StatusCode readRecord()=0
Read record of the NTuple.
virtual StatusCode remove(const std::string &name)=0
Remove an item row (identified by name) from the N tuple.
virtual StatusCode read()=0
Read record of the NTuple (Shortcut of readRecord)
virtual StatusCode add(INTupleItem *item)=0
Add an item row to the N tuple.
virtual char * buffer()=0
Access data buffer.
virtual const ItemContainer & items() const =0
Access item container (CONST)
virtual const std::string & title() const =0
Object title.
NTuple interface class definition.
Definition INTuple.h:32
virtual long ndim() const =0
Dimension.
virtual const void * buffer() const =0
Access data buffer (CONST)
virtual ~INTupleItem()=default
destructor
virtual long dim(long i) const =0
Access individual dimensions.
virtual const std::string & index() const =0
Access the index _Item.
virtual INTuple * tuple()=0
NTuple the item belongs to.
virtual long size() const =0
Size of entire object.
virtual long filled() const =0
Number of items filled.
virtual const INTupleItem * indexItem() const =0
Pointer to index column (if present, 0 else) (CONST)
virtual std::string typeName() const =0
Proper type name of the object.
virtual const std::type_info & typeID() const =0
Compiler type ID.
virtual long type() const =0
Type information of the item.
virtual long length() const =0
Access the buffer length.
virtual INTupleItem * indexItem()=0
Pointer to index column (if present, 0 else)
virtual void setType(long typ)=0
Set the properties of the INTupleItem.
virtual void release()=0
Destruct object.
virtual const std::string & name() const =0
Access _Item name.
virtual bool hasIndex() const =0
Is the tuple have an index item?
virtual void reset()=0
Reset column.
A select statement can either contain.
This class is used for returning status codes from appropriate routines.
Definition StatusCode.h:64