Gaudi Framework, version v20r2

Generated: 18 Jul 2008

NTuple::_DataImp< TYP > Class Template Reference

#include <NTupleItems.h>

Inheritance diagram for NTuple::_DataImp< TYP >:

Inheritance graph
[legend]
Collaboration diagram for NTuple::_DataImp< TYP >:

Collaboration graph
[legend]
List of all members.

Detailed Description

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

Concrete class discribing basic data items in an N tuple.

Definition at line 39 of file NTupleItems.h.

Public Types

typedef Range< TYP > ItemRange
 Set type definition to make life more easy easy.

Public Member Functions

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

Protected Types

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

Protected Attributes

long m_length
 Entire buffer length.
INTuplem_tuple
 Pointer to N tuple.
std::string m_name
 _Column name
std::string m_index
 Check that values are within a certain range while filling.
INTupleItemm_indexItem
 Pointer to index item.
DataTypeInfo::Type m_type
 _Column type
TYP m_def
 Buffer with default value.
Range< TYP > m_range
 Check that values are within a certain range while filling.
const std::type_infom_info
 Item type information.

Private Member Functions

 _DataImp (const _DataImp &copy)
 Inhibit Copy Constructor.


Member Typedef Documentation

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

Definition at line 44 of file NTupleItems.h.

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

Definition at line 45 of file NTupleItems.h.

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

Set type definition to make life more easy easy.

Reimplemented from NTuple::_Data< TYP >.

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

Definition at line 66 of file NTupleItems.h.


Constructor & Destructor Documentation

template<class TYP>
NTuple::_DataImp< TYP >::_DataImp ( const _DataImp< TYP > &  copy  )  [inline, private]

Inhibit Copy Constructor.

Definition at line 42 of file NTupleItems.h.

00042 {}

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

Standard Constructor.

Definition at line 68 of file NTupleItems.h.

References DataTypeInfo::ID(), NTuple::_Data< TYP >::m_buffer, NTuple::_DataImp< TYP >::m_indexItem, NTuple::_DataImp< TYP >::m_length, NTuple::_DataImp< TYP >::m_type, DataTypeInfo::POINTER, and NTuple::_DataImp< TYP >::reset().

00069     : m_length(len), m_tuple(tup), m_name(name), m_index(index), 
00070       m_def(def), m_range(low, high), m_info(info)
00071     {
00072       m_indexItem = 0;
00073       m_type = typeid(TYP) == typeid(void*) ? DataTypeInfo::POINTER : DataTypeInfo::ID(info);
00074       this->m_buffer = new TYP[m_length];
00075       reset();
00076     }

template<class TYP>
virtual NTuple::_DataImp< TYP >::~_DataImp (  )  [inline, virtual]

Standard destructor.

Definition at line 78 of file NTupleItems.h.

References NTuple::_Data< TYP >::m_buffer.

00078                                              {
00079       if ( 0 != this->m_buffer ) delete [] this->m_buffer;
00080     }


Member Function Documentation

template<class TYP>
virtual const std::string NTuple::_DataImp< TYP >::typeName (  )  const [inline, virtual]

Get proper type name.

Implements INTupleItem.

Definition at line 82 of file NTupleItems.h.

References System::typeinfoName().

00082                                                  {
00083       return System::typeinfoName( this->typeID() );
00084     }

template<class TYP>
virtual void NTuple::_DataImp< TYP >::reset (  )  [inline, virtual]

Reset to default.

Implements INTupleItem.

Definition at line 86 of file NTupleItems.h.

References NTuple::_Data< TYP >::m_buffer, NTuple::_DataImp< TYP >::m_def, and NTuple::_DataImp< TYP >::m_length.

Referenced by NTuple::_DataImp< TYP >::_DataImp().

00086                                               {  
00087       TYP* buff = this->m_buffer;
00088       for ( size_t i = 0; i < static_cast<size_t>(m_length); i++ )    {
00089         *buff++ = m_def;
00090       }
00091     }

template<class TYP>
virtual long NTuple::_DataImp< TYP >::filled (  )  const [inline, virtual]

Number of items filled.

Implements INTupleItem.

Definition at line 93 of file NTupleItems.h.

References INTupleItem::buffer(), NTuple::_DataImp< TYP >::dim(), NTuple::_DataImp< TYP >::indexItem(), NTuple::_DataImp< TYP >::m_indexItem, NTuple::_DataImp< TYP >::m_length, and NTuple::_DataImp< TYP >::ndim().

00093                                               {
00094       int len = 1;
00095       int nd = ndim();
00096       if ( m_length > 1 )   {
00097         for ( int l = 0; l < nd-1; l++ )   {
00098           len *= dim(l);
00099         }
00100         if ( indexItem() )   {
00101           long *ll = (long*)m_indexItem->buffer();
00102           len *= *ll;
00103         }
00104         else if ( nd > 1 )   {
00105           len *= dim(nd);
00106         }
00107       }
00108       return len;
00109     }

template<class TYP>
virtual INTupleItem* NTuple::_DataImp< TYP >::indexItem (  )  [inline, virtual]

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

Implements INTupleItem.

Definition at line 111 of file NTupleItems.h.

References INTuple::find(), NTuple::_DataImp< TYP >::m_index, NTuple::_DataImp< TYP >::m_indexItem, and NTuple::_DataImp< TYP >::m_tuple.

Referenced by NTuple::_DataImp< TYP >::filled().

00111                                                       { 
00112       if ( 0 == m_indexItem )   {
00113         m_indexItem = m_tuple->find(m_index);
00114       }
00115       return m_indexItem;
00116     }

template<class TYP>
virtual const INTupleItem* NTuple::_DataImp< TYP >::indexItem (  )  const [inline, virtual]

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

Implements INTupleItem.

Definition at line 118 of file NTupleItems.h.

References INTuple::find(), NTuple::_DataImp< TYP >::m_index, NTuple::_DataImp< TYP >::m_indexItem, and NTuple::_DataImp< TYP >::m_tuple.

00118                                                       {
00119       if ( 0 == m_indexItem )   {
00120         m_indexItem = m_tuple->find(m_index);
00121       }
00122       return m_indexItem;
00123     }

template<class TYP>
virtual const std::type_info& NTuple::_DataImp< TYP >::typeID (  )  const [inline, virtual]

Compiler type ID.

Implements INTupleItem.

Definition at line 125 of file NTupleItems.h.

References NTuple::_DataImp< TYP >::m_info.

00125 { return m_info;}

template<class TYP>
virtual long NTuple::_DataImp< TYP >::size (  )  const [inline, virtual]

Size of entire object.

Implements INTupleItem.

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

Definition at line 127 of file NTupleItems.h.

References NTuple::_DataImp< TYP >::m_length.

00127 { return m_length*sizeof(TYP); }

template<class TYP>
virtual void NTuple::_DataImp< TYP >::release (  )  [inline, virtual]

Destruct object.

Implements INTupleItem.

Definition at line 129 of file NTupleItems.h.

00129 { delete this; }

template<class TYP>
virtual bool NTuple::_DataImp< TYP >::hasIndex (  )  const [inline, virtual]

Is the tuple have an index column?

Implements INTupleItem.

Definition at line 131 of file NTupleItems.h.

References std::basic_string< _CharT, _Traits, _Alloc >::length(), and NTuple::_DataImp< TYP >::m_index.

00131 { return m_index.length()>0; }

template<class TYP>
virtual const std::string& NTuple::_DataImp< TYP >::index (  )  const [inline, virtual]

Access the index _Column.

Implements INTupleItem.

Definition at line 133 of file NTupleItems.h.

References NTuple::_DataImp< TYP >::m_index.

00133 { return m_index; }

template<class TYP>
virtual const std::string& NTuple::_DataImp< TYP >::name (  )  const [inline, virtual]

Access _Column name.

Implements INTupleItem.

Definition at line 135 of file NTupleItems.h.

References NTuple::_DataImp< TYP >::m_name.

00135 { return m_name; }

template<class TYP>
virtual const long NTuple::_DataImp< TYP >::type (  )  const [inline, virtual]

TYP information of the item.

Implements INTupleItem.

Definition at line 137 of file NTupleItems.h.

References NTuple::_DataImp< TYP >::m_type.

00137 { return m_type; }

template<class TYP>
virtual void NTuple::_DataImp< TYP >::setType ( long  t  )  [inline, virtual]

Set the properties of the _Column.

Implements INTupleItem.

Definition at line 139 of file NTupleItems.h.

References NTuple::_DataImp< TYP >::m_type.

00139 { m_type=DataTypeInfo::Type(t); }

template<class TYP>
virtual void NTuple::_DataImp< TYP >::setDefault ( const TYP  val  )  [inline, virtual]

Set default value.

Implements NTuple::_Data< TYP >.

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

Definition at line 141 of file NTupleItems.h.

References NTuple::_DataImp< TYP >::m_def.

00141 { m_def = val; }

template<class TYP>
virtual const ItemRange& NTuple::_DataImp< TYP >::range (  )  const [inline, virtual]

Access the range if specified.

Implements NTuple::_Data< TYP >.

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

Definition at line 143 of file NTupleItems.h.

References NTuple::_DataImp< TYP >::m_range.

00143 { return m_range; }

template<class TYP>
virtual const long NTuple::_DataImp< TYP >::length (  )  const [inline, virtual]

Access the buffer length.

Implements INTupleItem.

Definition at line 145 of file NTupleItems.h.

References NTuple::_DataImp< TYP >::m_length.

00145 { return m_length; }

template<class TYP>
virtual const void* NTuple::_DataImp< TYP >::buffer (  )  const [inline, virtual]

Access data buffer (CONST).

Implements INTupleItem.

Definition at line 147 of file NTupleItems.h.

References NTuple::_Data< TYP >::m_buffer.

00147 { return this->m_buffer; }

template<class TYP>
virtual void* NTuple::_DataImp< TYP >::buffer (  )  [inline, virtual]

Access data buffer.

Definition at line 149 of file NTupleItems.h.

References NTuple::_Data< TYP >::m_buffer.

00149 { return this->m_buffer; }

template<class TYP>
virtual long NTuple::_DataImp< TYP >::ndim (  )  const [inline, virtual]

Dimension.

Implements INTupleItem.

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

Definition at line 151 of file NTupleItems.h.

Referenced by NTuple::_DataImp< TYP >::filled().

00151 { return 0; }

template<class TYP>
virtual long NTuple::_DataImp< TYP >::dim ( long  i  )  const [inline, virtual]

Access individual dimensions.

Implements INTupleItem.

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

Definition at line 153 of file NTupleItems.h.

Referenced by NTuple::_DataImp< TYP >::filled().

00153 { return (i==0) ? 1 : 0; }

template<class TYP>
virtual INTuple* NTuple::_DataImp< TYP >::tuple (  )  [inline, virtual]

Access to hosting ntuple.

Implements INTupleItem.

Definition at line 155 of file NTupleItems.h.

References NTuple::_DataImp< TYP >::m_tuple.

00155 { return m_tuple; }


Member Data Documentation

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

Entire buffer length.

Definition at line 47 of file NTupleItems.h.

Referenced by NTuple::_DataImp< TYP >::_DataImp(), NTuple::_DataImp< TYP >::filled(), NTuple::_DataImp< TYP >::length(), NTuple::_DataImp< TYP >::reset(), NTuple::_MatrixImp< TYP >::size(), NTuple::_ArrayImp< TYP >::size(), NTuple::_ItemImp< TYP >::size(), and NTuple::_DataImp< TYP >::size().

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

Pointer to N tuple.

Definition at line 49 of file NTupleItems.h.

Referenced by NTuple::_DataImp< TYP >::indexItem(), and NTuple::_DataImp< TYP >::tuple().

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

_Column name

Definition at line 51 of file NTupleItems.h.

Referenced by NTuple::_DataImp< TYP >::name().

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

Check that values are within a certain range while filling.

Definition at line 53 of file NTupleItems.h.

Referenced by NTuple::_DataImp< TYP >::hasIndex(), NTuple::_DataImp< TYP >::index(), and NTuple::_DataImp< TYP >::indexItem().

template<class TYP>
INTupleItem* NTuple::_DataImp< TYP >::m_indexItem [mutable, protected]

Pointer to index item.

Definition at line 55 of file NTupleItems.h.

Referenced by NTuple::_DataImp< TYP >::_DataImp(), NTuple::_DataImp< TYP >::filled(), and NTuple::_DataImp< TYP >::indexItem().

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

_Column type

Definition at line 57 of file NTupleItems.h.

Referenced by NTuple::_DataImp< TYP >::_DataImp(), NTuple::_DataImp< TYP >::setType(), and NTuple::_DataImp< TYP >::type().

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

Buffer with default value.

Definition at line 59 of file NTupleItems.h.

Referenced by NTuple::_DataImp< TYP >::reset(), NTuple::_MatrixImp< TYP >::setDefault(), NTuple::_ArrayImp< TYP >::setDefault(), NTuple::_ItemImp< TYP >::setDefault(), and NTuple::_DataImp< TYP >::setDefault().

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

Check that values are within a certain range while filling.

Definition at line 61 of file NTupleItems.h.

Referenced by NTuple::_MatrixImp< TYP >::range(), NTuple::_ArrayImp< TYP >::range(), NTuple::_ItemImp< TYP >::range(), and NTuple::_DataImp< TYP >::range().

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

Item type information.

Definition at line 63 of file NTupleItems.h.

Referenced by NTuple::_DataImp< TYP >::typeID().


The documentation for this class was generated from the following file:
Generated at Fri Jul 18 12:11:01 2008 for Gaudi Framework, version v20r2 by Doxygen version 1.5.1 written by Dimitri van Heesch, © 1997-2004