The Gaudi Framework  v30r3 (a5ef0a68)
NTuple::_DataImp< TYP > Class Template Reference

Concrete class discribing basic data items in an N tuple. More...

#include <GaudiKernel/NTupleItems.h>

Inheritance diagram for NTuple::_DataImp< TYP >:
Collaboration diagram for NTuple::_DataImp< TYP >:

Public Types

typedef Range< TYP > ItemRange
 Set type definition to make life more easy easy. More...
 
- Public Types inherited from NTuple::_Data< TYP >
typedef Range< TYP > ItemRange
 Set type definition to make life more easy easy. More...
 

Public Member Functions

 _DataImp (INTuple *tup, std::string name, const std::type_info &info, std::string index, long len, TYP low, TYP high, TYP def)
 Standard Constructor. More...
 
 ~_DataImp () override
 Standard destructor. More...
 
std::string typeName () const override
 Get proper type name. More...
 
void reset () override
 Reset to default. More...
 
long filled () const override
 Number of items filled. More...
 
INTupleItemindexItem () override
 Pointer to index column (if present, 0 else) More...
 
const INTupleItemindexItem () const override
 Pointer to index column (if present, 0 else) (CONST) More...
 
const std::type_infotypeID () const override
 Compiler type ID. More...
 
long size () const override
 Size of entire object. More...
 
void release () override
 Destruct object. More...
 
bool hasIndex () const override
 Is the tuple have an index column? More...
 
const std::stringindex () const override
 Access the index _Column. More...
 
const std::stringname () const override
 Access _Column name. More...
 
long type () const override
 TYP information of the item. More...
 
void setType (long t) override
 Set the properties of the _Column. More...
 
void setDefault (const TYP val) override
 Set default value. More...
 
const ItemRangerange () const override
 Access the range if specified. More...
 
long length () const override
 Access the buffer length. More...
 
const void * buffer () const override
 Access data buffer (CONST) More...
 
virtual void * buffer ()
 Access data buffer. More...
 
long ndim () const override
 Dimension. More...
 
long dim (long i) const override
 Access individual dimensions. More...
 
INTupletuple () override
 Access to hosting ntuple. More...
 
- Public Member Functions inherited from INTupleItem
virtual ~INTupleItem ()=default
 destructor More...
 

Protected Types

typedef const std::stringCSTR
 
typedef const std::type_infoCTYPE
 

Protected Attributes

long m_length
 Entire buffer length. More...
 
INTuplem_tuple
 Pointer to N tuple. More...
 
std::string m_name
 _Column name More...
 
std::string m_index
 Check that values are within a certain range while filling. More...
 
INTupleItemm_indexItem = nullptr
 Pointer to index item. More...
 
DataTypeInfo::Type m_type
 _Column type More...
 
TYP m_def
 Buffer with default value. More...
 
Range< TYP > m_range
 Check that values are within a certain range while filling. More...
 
const std::type_infom_info
 Item type information. More...
 
- Protected Attributes inherited from NTuple::_Data< TYP >
TYP * m_buffer = nullptr
 Pointer to data buffer. More...
 

Private Member Functions

 _DataImp (const _DataImp &)=delete
 Inhibit Copy Constructor. More...
 

Additional Inherited Members

Detailed Description

template<class TYP>
class NTuple::_DataImp< TYP >

Concrete class discribing basic data items in an N tuple.

Definition at line 34 of file NTupleItems.h.

Member Typedef Documentation

template<class TYP >
typedef const std::string& NTuple::_DataImp< TYP >::CSTR
protected

Definition at line 51 of file NTupleItems.h.

template<class TYP >
typedef const std::type_info& NTuple::_DataImp< TYP >::CTYPE
protected

Definition at line 52 of file NTupleItems.h.

template<class TYP >
typedef Range<TYP> NTuple::_DataImp< TYP >::ItemRange

Set type definition to make life more easy easy.

Definition at line 74 of file NTupleItems.h.

Constructor & Destructor Documentation

template<class TYP >
NTuple::_DataImp< TYP >::_DataImp ( const _DataImp< TYP > &  )
privatedelete

Inhibit Copy Constructor.

template<class TYP >
NTuple::_DataImp< TYP >::_DataImp ( INTuple tup,
std::string  name,
const std::type_info info,
std::string  index,
long  len,
TYP  low,
TYP  high,
TYP  def 
)
inline

Standard Constructor.

Definition at line 76 of file NTupleItems.h.

78  : m_length( len )
79  , m_tuple( tup )
80  , m_name( std::move( name ) )
81  , m_index( std::move( index ) )
82  , m_def( std::move( def ) )
83  , m_range( std::move( low ), std::move( high ) )
84  , m_info( info )
85  {
86  m_type = typeid( TYP ) == typeid( void* ) ? DataTypeInfo::POINTER : DataTypeInfo::ID( info );
87  this->m_buffer = new TYP[m_length];
88  reset();
89  }
static Type ID(const bool)
Access to type information: bool.
Definition: DataTypeInfo.h:49
DataTypeInfo::Type m_type
_Column type
Definition: NTupleItems.h:64
TYP m_def
Buffer with default value.
Definition: NTupleItems.h:66
Range< TYP > m_range
Check that values are within a certain range while filling.
Definition: NTupleItems.h:68
std::string m_index
Check that values are within a certain range while filling.
Definition: NTupleItems.h:60
void reset() override
Reset to default.
Definition: NTupleItems.h:95
T move(T...args)
long m_length
Entire buffer length.
Definition: NTupleItems.h:54
INTuple * m_tuple
Pointer to N tuple.
Definition: NTupleItems.h:56
const std::type_info & m_info
Item type information.
Definition: NTupleItems.h:70
TYP * m_buffer
Pointer to data buffer.
Definition: NTuple.h:130
std::string m_name
_Column name
Definition: NTupleItems.h:58
template<class TYP >
NTuple::_DataImp< TYP >::~_DataImp ( )
inlineoverride

Standard destructor.

Definition at line 91 of file NTupleItems.h.

91 { delete[] this->m_buffer; }
TYP * m_buffer
Pointer to data buffer.
Definition: NTuple.h:130

Member Function Documentation

template<class TYP >
const void* NTuple::_DataImp< TYP >::buffer ( ) const
inlineoverridevirtual

Access data buffer (CONST)

Implements INTupleItem.

Definition at line 149 of file NTupleItems.h.

149 { return this->m_buffer; }
TYP * m_buffer
Pointer to data buffer.
Definition: NTuple.h:130
template<class TYP >
virtual void* NTuple::_DataImp< TYP >::buffer ( )
inlinevirtual

Access data buffer.

Definition at line 151 of file NTupleItems.h.

151 { return this->m_buffer; }
TYP * m_buffer
Pointer to data buffer.
Definition: NTuple.h:130
template<class TYP >
long NTuple::_DataImp< TYP >::dim ( long  i) const
inlineoverridevirtual

Access individual dimensions.

Implements INTupleItem.

Reimplemented in NTuple::_MatrixImp< TYP >, and NTuple::_ArrayImp< TYP >.

Definition at line 155 of file NTupleItems.h.

155 { return ( i == 0 ) ? 1 : 0; }
template<class TYP >
long NTuple::_DataImp< TYP >::filled ( ) const
inlineoverridevirtual

Number of items filled.

Implements INTupleItem.

Definition at line 97 of file NTupleItems.h.

98  {
99  int len = 1;
100  int nd = ndim();
101  if ( m_length > 1 ) {
102  for ( int l = 0; l < nd - 1; l++ ) {
103  len *= dim( l );
104  }
105  if ( indexItem() ) {
106  long* ll = (long*)m_indexItem->buffer();
107  len *= *ll;
108  } else if ( nd > 0 ) {
109  len *= dim( nd - 1 );
110  }
111  }
112  return len;
113  }
INTupleItem * indexItem() override
Pointer to index column (if present, 0 else)
Definition: NTupleItems.h:115
long dim(long i) const override
Access individual dimensions.
Definition: NTupleItems.h:155
long ndim() const override
Dimension.
Definition: NTupleItems.h:153
long m_length
Entire buffer length.
Definition: NTupleItems.h:54
dictionary l
Definition: gaudirun.py:440
virtual const void * buffer() const =0
Access data buffer (CONST)
INTupleItem * m_indexItem
Pointer to index item.
Definition: NTupleItems.h:62
template<class TYP >
bool NTuple::_DataImp< TYP >::hasIndex ( ) const
inlineoverridevirtual

Is the tuple have an index column?

Implements INTupleItem.

Definition at line 133 of file NTupleItems.h.

133 { return m_index.length() > 0; }
std::string m_index
Check that values are within a certain range while filling.
Definition: NTupleItems.h:60
T length(T...args)
template<class TYP >
const std::string& NTuple::_DataImp< TYP >::index ( ) const
inlineoverridevirtual

Access the index _Column.

Implements INTupleItem.

Definition at line 135 of file NTupleItems.h.

135 { return m_index; }
std::string m_index
Check that values are within a certain range while filling.
Definition: NTupleItems.h:60
template<class TYP >
INTupleItem* NTuple::_DataImp< TYP >::indexItem ( )
inlineoverridevirtual

Pointer to index column (if present, 0 else)

Implements INTupleItem.

Definition at line 115 of file NTupleItems.h.

116  {
118  return m_indexItem;
119  }
std::string m_index
Check that values are within a certain range while filling.
Definition: NTupleItems.h:60
INTuple * m_tuple
Pointer to N tuple.
Definition: NTupleItems.h:56
virtual const INTupleItem * find(const std::string &name) const =0
Find an item row of the Ntuple (CONST)
INTupleItem * m_indexItem
Pointer to index item.
Definition: NTupleItems.h:62
template<class TYP >
const INTupleItem* NTuple::_DataImp< TYP >::indexItem ( ) const
inlineoverridevirtual

Pointer to index column (if present, 0 else) (CONST)

Implements INTupleItem.

Definition at line 121 of file NTupleItems.h.

122  {
124  return m_indexItem;
125  }
std::string m_index
Check that values are within a certain range while filling.
Definition: NTupleItems.h:60
INTuple * m_tuple
Pointer to N tuple.
Definition: NTupleItems.h:56
virtual const INTupleItem * find(const std::string &name) const =0
Find an item row of the Ntuple (CONST)
INTupleItem * m_indexItem
Pointer to index item.
Definition: NTupleItems.h:62
template<class TYP >
long NTuple::_DataImp< TYP >::length ( ) const
inlineoverridevirtual

Access the buffer length.

Implements INTupleItem.

Definition at line 147 of file NTupleItems.h.

147 { return m_length; }
long m_length
Entire buffer length.
Definition: NTupleItems.h:54
template<class TYP >
const std::string& NTuple::_DataImp< TYP >::name ( ) const
inlineoverridevirtual

Access _Column name.

Implements INTupleItem.

Definition at line 137 of file NTupleItems.h.

137 { return m_name; }
std::string m_name
_Column name
Definition: NTupleItems.h:58
template<class TYP >
long NTuple::_DataImp< TYP >::ndim ( ) const
inlineoverridevirtual

Dimension.

Implements INTupleItem.

Reimplemented in NTuple::_MatrixImp< TYP >, and NTuple::_ArrayImp< TYP >.

Definition at line 153 of file NTupleItems.h.

153 { return 0; }
template<class TYP >
const ItemRange& NTuple::_DataImp< TYP >::range ( ) const
inlineoverridevirtual

Access the range if specified.

Implements NTuple::_Data< TYP >.

Reimplemented in NTuple::_MatrixImp< TYP >, NTuple::_ArrayImp< TYP >, and NTuple::_ItemImp< TYP >.

Definition at line 145 of file NTupleItems.h.

145 { return m_range; }
Range< TYP > m_range
Check that values are within a certain range while filling.
Definition: NTupleItems.h:68
template<class TYP >
void NTuple::_DataImp< TYP >::release ( )
inlineoverridevirtual

Destruct object.

Implements INTupleItem.

Definition at line 131 of file NTupleItems.h.

131 { delete this; }
template<class TYP >
void NTuple::_DataImp< TYP >::reset ( )
inlineoverridevirtual

Reset to default.

Implements INTupleItem.

Definition at line 95 of file NTupleItems.h.

95 { std::fill_n( this->m_buffer, m_length, m_def ); }
TYP m_def
Buffer with default value.
Definition: NTupleItems.h:66
long m_length
Entire buffer length.
Definition: NTupleItems.h:54
T fill_n(T...args)
TYP * m_buffer
Pointer to data buffer.
Definition: NTuple.h:130
template<class TYP >
void NTuple::_DataImp< TYP >::setDefault ( const TYP  val)
inlineoverridevirtual

Set default value.

Implements NTuple::_Data< TYP >.

Reimplemented in NTuple::_MatrixImp< TYP >, NTuple::_ArrayImp< TYP >, and NTuple::_ItemImp< TYP >.

Definition at line 143 of file NTupleItems.h.

143 { m_def = val; }
TYP m_def
Buffer with default value.
Definition: NTupleItems.h:66
template<class TYP >
void NTuple::_DataImp< TYP >::setType ( long  t)
inlineoverridevirtual

Set the properties of the _Column.

Implements INTupleItem.

Definition at line 141 of file NTupleItems.h.

141 { m_type = DataTypeInfo::Type( t ); }
DataTypeInfo::Type m_type
_Column type
Definition: NTupleItems.h:64
template<class TYP >
long NTuple::_DataImp< TYP >::size ( ) const
inlineoverridevirtual

Size of entire object.

Implements INTupleItem.

Reimplemented in NTuple::_MatrixImp< TYP >, NTuple::_ArrayImp< TYP >, and NTuple::_ItemImp< TYP >.

Definition at line 129 of file NTupleItems.h.

129 { return m_length * sizeof( TYP ); }
long m_length
Entire buffer length.
Definition: NTupleItems.h:54
template<class TYP >
INTuple* NTuple::_DataImp< TYP >::tuple ( )
inlineoverridevirtual

Access to hosting ntuple.

Implements INTupleItem.

Definition at line 157 of file NTupleItems.h.

157 { return m_tuple; }
INTuple * m_tuple
Pointer to N tuple.
Definition: NTupleItems.h:56
template<class TYP >
long NTuple::_DataImp< TYP >::type ( ) const
inlineoverridevirtual

TYP information of the item.

Implements INTupleItem.

Definition at line 139 of file NTupleItems.h.

139 { return m_type; }
DataTypeInfo::Type m_type
_Column type
Definition: NTupleItems.h:64
template<class TYP >
const std::type_info& NTuple::_DataImp< TYP >::typeID ( ) const
inlineoverridevirtual

Compiler type ID.

Implements INTupleItem.

Definition at line 127 of file NTupleItems.h.

127 { return m_info; }
const std::type_info & m_info
Item type information.
Definition: NTupleItems.h:70
template<class TYP >
std::string NTuple::_DataImp< TYP >::typeName ( ) const
inlineoverridevirtual

Get proper type name.

Implements INTupleItem.

Definition at line 93 of file NTupleItems.h.

93 { return System::typeinfoName( this->typeID() ); }
GAUDI_API const std::string typeinfoName(const std::type_info &)
Get platform independent information about the class type.
Definition: System.cpp:332
const std::type_info & typeID() const override
Compiler type ID.
Definition: NTupleItems.h:127

Member Data Documentation

template<class TYP >
TYP NTuple::_DataImp< TYP >::m_def
protected

Buffer with default value.

Definition at line 66 of file NTupleItems.h.

template<class TYP >
std::string NTuple::_DataImp< TYP >::m_index
protected

Check that values are within a certain range while filling.

Definition at line 60 of file NTupleItems.h.

template<class TYP >
INTupleItem* NTuple::_DataImp< TYP >::m_indexItem = nullptr
mutableprotected

Pointer to index item.

Definition at line 62 of file NTupleItems.h.

template<class TYP >
const std::type_info& NTuple::_DataImp< TYP >::m_info
protected

Item type information.

Definition at line 70 of file NTupleItems.h.

template<class TYP >
long NTuple::_DataImp< TYP >::m_length
protected

Entire buffer length.

Definition at line 54 of file NTupleItems.h.

template<class TYP >
std::string NTuple::_DataImp< TYP >::m_name
protected

_Column name

Definition at line 58 of file NTupleItems.h.

template<class TYP >
Range<TYP> NTuple::_DataImp< TYP >::m_range
protected

Check that values are within a certain range while filling.

Definition at line 68 of file NTupleItems.h.

template<class TYP >
INTuple* NTuple::_DataImp< TYP >::m_tuple
protected

Pointer to N tuple.

Definition at line 56 of file NTupleItems.h.

template<class TYP >
DataTypeInfo::Type NTuple::_DataImp< TYP >::m_type
protected

_Column type

Definition at line 64 of file NTupleItems.h.


The documentation for this class was generated from the following file: