iso::data::Values Class Reference

stores a hierarchical set of arbitrary values More...

#include <iso_data_values.h>

Collaboration diagram for iso::data::Values:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 Values ()
 Values (const VoidValue &pValue1)
 Values (const VoidValue &pValue1, const VoidValue &pValue2)
 Values (const VoidValue &pValue1, const VoidValue &pValue2, const VoidValue &pValue3)
 Values (const VoidValue &pValue1, const VoidValue &pValue2, const VoidValue &pValue3, const VoidValue &pValue4)
 Values (const VoidValue &pValue1, const VoidValue &pValue2, const VoidValue &pValue3, const VoidValue &pValue4, const VoidValue &pValue5)
 Values (const VoidValue &pValue1, const VoidValue &pValue2, const VoidValue &pValue3, const VoidValue &pValue4, const VoidValue &pValue5, const VoidValue &pValue6)
 Values (const VoidValue &pValue1, const VoidValue &pValue2, const VoidValue &pValue3, const VoidValue &pValue4, const VoidValue &pValue5, const VoidValue &pValue6, const VoidValue &pValue7)
 Values (const Values &pValues)
template<class Type>
 Values (const Type &pValue)
template<class TypeA, class TypeB>
 Values (const TypeA &pValue1, const TypeB &pValue2)
template<class TypeA, class TypeB, class TypeC>
 Values (const TypeA &pValue1, const TypeB &pValue2, const TypeC &pValue3)
template<class TypeA, class TypeB, class TypeC, class TypeD>
 Values (const TypeA &pValue1, const TypeB &pValue2, const TypeC &pValue3, const TypeD &pValue4)
template<class TypeA, class TypeB, class TypeC, class TypeD, class TypeE>
 Values (const TypeA &pValue1, const TypeB &pValue2, const TypeC &pValue3, const TypeD &pValue4, const TypeE &pValue5)
template<class TypeA, class TypeB, class TypeC, class TypeD, class TypeE, class TypeF>
 Values (const TypeA &pValue1, const TypeB &pValue2, const TypeC &pValue3, const TypeD &pValue4, const TypeE &pValue5, const TypeF &pValue6)
template<class TypeA, class TypeB, class TypeC, class TypeD, class TypeE, class TypeF, class TypeG>
 Values (const TypeA &pValue1, const TypeB &pValue2, const TypeC &pValue3, const TypeD &pValue4, const TypeE &pValue5, const TypeF &pValue6, const TypeG &pValue7)
 ~Values ()
Valuescopy () const
unsigned int valueCount () const
VoidValue ** values ()
const VoidValue ** values () const
VoidValueoperator[] (unsigned int pIndex) throw (base::Exception)
const VoidValueoperator[] (unsigned int pIndex) const throw (base::Exception)
const Valuesoperator= (const VoidValue &pValue) throw (base::Exception)
const Valuesoperator= (const Values &pValues) throw (base::Exception)
template<class Type>
 operator Type () const throw (base::Exception)
bool match (const Values &pValues) const
template<class Type>
bool match () const
template<class TypeA, class TypeB>
bool match () const
template<class TypeA, class TypeB, class TypeC>
bool match () const
template<class TypeA, class TypeB, class TypeC, class TypeD>
bool match () const
template<class Type>
void get (Type &pValue) const throw (base::Exception)
template<class TypeA, class TypeB>
void get (TypeA &pValue1, TypeB &pValue2) const throw (base::Exception)
template<class TypeA, class TypeB, class TypeC>
void get (TypeA &pValue1, TypeB &pValue2, TypeC &pValue3) const throw (base::Exception)
template<class TypeA, class TypeB, class TypeC, class TypeD>
void get (TypeA &pValue1, TypeB &pValue2, TypeC &pValue3, TypeD &pValue4) const throw (base::Exception)
template<class TypeA, class TypeB, class TypeC, class TypeD, class TypeE>
void get (TypeA &pValue1, TypeB &pValue2, TypeC &pValue3, TypeD &pValue4, TypeE &pValue5) const throw (base::Exception)
template<class TypeA, class TypeB, class TypeC, class TypeD, class TypeE, class TypeF>
void get (TypeA &pValue1, TypeB &pValue2, TypeC &pValue3, TypeD &pValue4, TypeE &pValue5, TypeF &pValue6) const throw (base::Exception)
template<class TypeA, class TypeB, class TypeC, class TypeD, class TypeE, class TypeF, class TypeG>
void get (TypeA &pValue1, TypeB &pValue2, TypeC &pValue3, TypeD &pValue4, TypeE &pValue5, TypeF &pValue6, TypeG &pValue7) const throw (base::Exception)
base::String info () const

Protected Attributes

VoidValue ** mValues
unsigned int mValueCount

Friends

std::ostream & operator<< (std::ostream &pOstream, const Values &pValues)

Detailed Description

stores a hierarchical set of arbitrary values

hierarchical set of arbitrary values

The Values class acts as a data container for mixed data types (both base data types, objects and other Values instances). It is currently not possible, to directly store arrays of values. For this, the user has to resort to a class such as Array class or math::Vector class or whatever. For a class to be storable in Values, it must implement a copy constructor and assignment operator. Currently, only up to four data values can be stored on one level of a storage hierarchy. It is trivial to extend this number by implementing additional templated constructors and get functions for the Values class that support more parameters. For multi level hierarchies, any level above the lowest one must contain at least two data values.

Usage example: storage (single level hierarchy) : Values values( 4, 8.6, base::String("Hello World"), Array<double>(3, 1.1, 2.2, 3.3) );

Usage example: retrieval (single level hierarchy) : int iRet; double dRet; base::String sRet; Array<double> aRet; values.get( iRet, dRet, sRet, aRet );

Usage example: storage (two level hierarchy) : Values values( 4, 8.6, base::String("Hello World"), Array<double>(3, 1.1, 2.2, 3.3) ); Values values2( 7.3, values );

Usage example: retrieval (two level hierarchy) : Values vRet; int iRet; double dRet1; double dRet2; base::String sRet; Array<double> aRet;

values2.get( dRet1, vRet ); vRet.get( iRet, dRet2, sRet, aRet );

Created by Daniel Bisig on 3/13/09.


Constructor & Destructor Documentation

Values::Values (  ) 

Values::Values ( const VoidValue pValue1  ) 

Values::Values ( const VoidValue pValue1,
const VoidValue pValue2 
)

Values::Values ( const VoidValue pValue1,
const VoidValue pValue2,
const VoidValue pValue3 
)

Values::Values ( const VoidValue pValue1,
const VoidValue pValue2,
const VoidValue pValue3,
const VoidValue pValue4 
)

Values::Values ( const VoidValue pValue1,
const VoidValue pValue2,
const VoidValue pValue3,
const VoidValue pValue4,
const VoidValue pValue5 
)

Values::Values ( const VoidValue pValue1,
const VoidValue pValue2,
const VoidValue pValue3,
const VoidValue pValue4,
const VoidValue pValue5,
const VoidValue pValue6 
)

Values::Values ( const VoidValue pValue1,
const VoidValue pValue2,
const VoidValue pValue3,
const VoidValue pValue4,
const VoidValue pValue5,
const VoidValue pValue6,
const VoidValue pValue7 
)

Values::Values ( const Values pValues  ) 

template<class Type>
iso::data::Values::Values ( const Type &  pValue  ) 

template<class TypeA, class TypeB>
iso::data::Values::Values ( const TypeA &  pValue1,
const TypeB &  pValue2 
)

template<class TypeA, class TypeB, class TypeC>
iso::data::Values::Values ( const TypeA &  pValue1,
const TypeB &  pValue2,
const TypeC &  pValue3 
)

template<class TypeA, class TypeB, class TypeC, class TypeD>
iso::data::Values::Values ( const TypeA &  pValue1,
const TypeB &  pValue2,
const TypeC &  pValue3,
const TypeD &  pValue4 
)

template<class TypeA, class TypeB, class TypeC, class TypeD, class TypeE>
iso::data::Values::Values ( const TypeA &  pValue1,
const TypeB &  pValue2,
const TypeC &  pValue3,
const TypeD &  pValue4,
const TypeE &  pValue5 
)

template<class TypeA, class TypeB, class TypeC, class TypeD, class TypeE, class TypeF>
iso::data::Values::Values ( const TypeA &  pValue1,
const TypeB &  pValue2,
const TypeC &  pValue3,
const TypeD &  pValue4,
const TypeE &  pValue5,
const TypeF &  pValue6 
)

template<class TypeA, class TypeB, class TypeC, class TypeD, class TypeE, class TypeF, class TypeG>
iso::data::Values::Values ( const TypeA &  pValue1,
const TypeB &  pValue2,
const TypeC &  pValue3,
const TypeD &  pValue4,
const TypeE &  pValue5,
const TypeF &  pValue6,
const TypeG &  pValue7 
)

Values::~Values (  ) 


Member Function Documentation

Values * Values::copy (  )  const

unsigned int Values::valueCount (  )  const

VoidValue ** Values::values (  ) 

const VoidValue ** Values::values (  )  const

VoidValue & Values::operator[] ( unsigned int  pIndex  )  throw (base::Exception)

const VoidValue & Values::operator[] ( unsigned int  pIndex  )  const throw (base::Exception)

const Values & Values::operator= ( const VoidValue pValue  )  throw (base::Exception)

const Values & Values::operator= ( const Values pValues  )  throw (base::Exception)

template<class Type>
iso::data::Values::operator Type (  )  const throw (base::Exception)

bool Values::match ( const Values pValues  )  const

template<class TypeA, class TypeB, class TypeC, class TypeD>
bool iso::data::Values::match (  )  const

template<class TypeA, class TypeB>
bool iso::data::Values::match (  )  const

template<class TypeA, class TypeB, class TypeC>
bool iso::data::Values::match (  )  const

template<class TypeA, class TypeB, class TypeC, class TypeD>
bool iso::data::Values::match (  )  const

template<class Type>
void iso::data::Values::get ( Type &  pValue  )  const throw (base::Exception)

template<class TypeA, class TypeB>
void iso::data::Values::get ( TypeA &  pValue1,
TypeB &  pValue2 
) const throw (base::Exception)

template<class TypeA, class TypeB, class TypeC>
void iso::data::Values::get ( TypeA &  pValue1,
TypeB &  pValue2,
TypeC &  pValue3 
) const throw (base::Exception)

template<class TypeA, class TypeB, class TypeC, class TypeD>
void iso::data::Values::get ( TypeA &  pValue1,
TypeB &  pValue2,
TypeC &  pValue3,
TypeD &  pValue4 
) const throw (base::Exception)

template<class TypeA, class TypeB, class TypeC, class TypeD, class TypeE>
void iso::data::Values::get ( TypeA &  pValue1,
TypeB &  pValue2,
TypeC &  pValue3,
TypeD &  pValue4,
TypeE &  pValue5 
) const throw (base::Exception)

template<class TypeA, class TypeB, class TypeC, class TypeD, class TypeE, class TypeF>
void iso::data::Values::get ( TypeA &  pValue1,
TypeB &  pValue2,
TypeC &  pValue3,
TypeD &  pValue4,
TypeE &  pValue5,
TypeF &  pValue6 
) const throw (base::Exception)

template<class TypeA, class TypeB, class TypeC, class TypeD, class TypeE, class TypeF, class TypeG>
void iso::data::Values::get ( TypeA &  pValue1,
TypeB &  pValue2,
TypeC &  pValue3,
TypeD &  pValue4,
TypeE &  pValue5,
TypeF &  pValue6,
TypeG &  pValue7 
) const throw (base::Exception)

base::String Values::info (  )  const


Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  pOstream,
const Values pValues 
) [friend]


Member Data Documentation

VoidValue** iso::data::Values::mValues [protected]

unsigned int iso::data::Values::mValueCount [protected]


The documentation for this class was generated from the following files:
Generated on Fri Feb 25 13:57:33 2011 for iso_data by  doxygen 1.5.1