17#define ALLOW_ALL_TYPES
59 typedef const std::string&
CSTR;
60 typedef const std::type_info&
CTYPE;
108 for (
int l = 0; l < nd - 1; l++ ) { len *=
dim( l ); }
112 }
else if ( nd > 0 ) {
113 len *=
dim( nd - 1 );
155 long ndim()
const override {
return 0; }
157 long dim(
long i )
const override {
return ( i == 0 ) ? 1 : 0; }
172 :
_DataImp<TYP>( tup,
name, info,
"", 1, min, max, def ) {}
192 TYP min, TYP max, TYP def )
203 long ndim()
const override {
return 1; }
217 long nrow, TYP min, TYP max, TYP def )
230 long ndim()
const override {
return 2; }
232 long dim(
long i )
const override {
static Type ID(const bool)
Access to type information: bool.
Data provider interface definition.
NTuple interface class definition.
NTuple interface class definition.
Abstract class describing a column-array in a N tuple.
Concrete class discribing a column-array in a N tuple.
long ndim() const override
Dimension.
const ItemRange & range() const override
Access the range if specified.
_ArrayImp(INTuple *tup, const std::string &name, const std::type_info &typ, const std::string &index, long len, TYP min, TYP max, TYP def)
Standard Constructor.
void setDefault(const TYP val) override
Compiler type ID.
long size() const override
Size of entire object.
Range< TYP > ItemRange
Set type definition to make life more easy easy.
long dim(long i) const override
Access individual dimensions.
Abstract class describing basic data in an Ntuple.
TYP * m_buffer
Pointer to data buffer.
Concrete class discribing basic data items in an N tuple.
long filled() const override
Number of items filled.
void release() override
Destruct object.
const std::type_info & typeID() const override
Compiler type ID.
long size() const override
Size of entire object.
const std::type_info & m_info
Item type information.
INTuple * tuple() override
Access to hosting ntuple.
void setType(long t) override
Set the properties of the _Column.
bool hasIndex() const override
Is the tuple have an index column?
Range< TYP > m_range
Check that values are within a certain range while filling.
const std::string & index() const override
Access the index _Column.
INTupleItem * m_indexItem
Pointer to index item.
std::string m_name
_Column name
_DataImp(const _DataImp &)=delete
Inhibit Copy Constructor.
long length() const override
Access the buffer length.
TYP m_def
Buffer with default value.
const std::string & name() const override
Access _Column name.
long type() const override
TYP information of the item.
INTuple * m_tuple
Pointer to N tuple.
virtual void * buffer()
Access data buffer.
void setDefault(const TYP val) override
Set default value.
void reset() override
Reset to default.
_DataImp(INTuple *tup, std::string name, const std::type_info &info, std::string index, long len, TYP low, TYP high, TYP def)
Standard Constructor.
long ndim() const override
Dimension.
long dim(long i) const override
Access individual dimensions.
const std::type_info & CTYPE
std::string m_index
Check that values are within a certain range while filling.
const INTupleItem * indexItem() const override
Pointer to index column (if present, 0 else) (CONST)
const void * buffer() const override
Access data buffer (CONST)
DataTypeInfo::Type m_type
_Column type
~_DataImp() override
Standard destructor.
std::string typeName() const override
Get proper type name.
const ItemRange & range() const override
Access the range if specified.
long m_length
Entire buffer length.
Range< TYP > ItemRange
Set type definition to make life more easy easy.
INTupleItem * indexItem() override
Pointer to index column (if present, 0 else)
Abstract class describing a column in a N tuple.
Concrete class discribing a column in a N tuple.
void setDefault(const TYP val) override
Compiler type ID.
_ItemImp(INTuple *tup, const std::string &name, const std::type_info &info, TYP min, TYP max, TYP def)
Standard Constructor.
Range< TYP > ItemRange
Set type definition to make life more easy easy.
long size() const override
Size of entire object.
const ItemRange & range() const override
Access the range if specified.
Abstract class describing a matrix column in a N tuple.
long m_rows
Number of rows per column.
Concrete class discribing a matrix column in a N tuple.
long size() const override
Size of entire object.
long dim(long i) const override
Access individual dimensions.
_MatrixImp(INTuple *tup, const std::string &name, const std::type_info &typ, const std::string &index, long ncol, long nrow, TYP min, TYP max, TYP def)
Standard Constructor.
void setDefault(const TYP val) override
Compiler type ID.
const ItemRange & range() const override
Access the range if specified.
Range< TYP > ItemRange
Set type definition to make life more easy easy.
long ndim() const override
Dimension.
GAUDI_API const std::string typeinfoName(const std::type_info &)
Get platform independent information about the class type.