#include <iso_data_values.h>
Collaboration diagram for iso::data::Values:
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 () | |
Values * | copy () const |
unsigned int | valueCount () const |
VoidValue ** | values () |
const VoidValue ** | values () const |
VoidValue & | operator[] (unsigned int pIndex) throw (base::Exception) |
const VoidValue & | operator[] (unsigned int pIndex) const throw (base::Exception) |
const Values & | operator= (const VoidValue &pValue) throw (base::Exception) |
const Values & | operator= (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) |
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.
Values::Values | ( | ) |
Values::Values | ( | const VoidValue & | pValue1 | ) |
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 | ) |
iso::data::Values::Values | ( | const Type & | pValue | ) |
iso::data::Values::Values | ( | const TypeA & | pValue1, | |
const TypeB & | pValue2 | |||
) |
iso::data::Values::Values | ( | const TypeA & | pValue1, | |
const TypeB & | pValue2, | |||
const TypeC & | pValue3 | |||
) |
iso::data::Values::Values | ( | const TypeA & | pValue1, | |
const TypeB & | pValue2, | |||
const TypeC & | pValue3, | |||
const TypeD & | pValue4 | |||
) |
iso::data::Values::Values | ( | const TypeA & | pValue1, | |
const TypeB & | pValue2, | |||
const TypeC & | pValue3, | |||
const TypeD & | pValue4, | |||
const TypeE & | pValue5 | |||
) |
iso::data::Values::Values | ( | const TypeA & | pValue1, | |
const TypeB & | pValue2, | |||
const TypeC & | pValue3, | |||
const TypeD & | pValue4, | |||
const TypeE & | pValue5, | |||
const TypeF & | pValue6 | |||
) |
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 | ( | ) |
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) |
iso::data::Values::operator Type | ( | ) | const throw (base::Exception) |
bool Values::match | ( | const Values & | pValues | ) | const |
bool iso::data::Values::match | ( | ) | const |
bool iso::data::Values::match | ( | ) | const |
bool iso::data::Values::match | ( | ) | const |
bool iso::data::Values::match | ( | ) | const |
void iso::data::Values::get | ( | Type & | pValue | ) | const throw (base::Exception) |
void iso::data::Values::get | ( | TypeA & | pValue1, | |
TypeB & | pValue2 | |||
) | const throw (base::Exception) |
void iso::data::Values::get | ( | TypeA & | pValue1, | |
TypeB & | pValue2, | |||
TypeC & | pValue3 | |||
) | const throw (base::Exception) |
void iso::data::Values::get | ( | TypeA & | pValue1, | |
TypeB & | pValue2, | |||
TypeC & | pValue3, | |||
TypeD & | pValue4 | |||
) | const throw (base::Exception) |
void iso::data::Values::get | ( | TypeA & | pValue1, | |
TypeB & | pValue2, | |||
TypeC & | pValue3, | |||
TypeD & | pValue4, | |||
TypeE & | pValue5 | |||
) | const throw (base::Exception) |
void iso::data::Values::get | ( | TypeA & | pValue1, | |
TypeB & | pValue2, | |||
TypeC & | pValue3, | |||
TypeD & | pValue4, | |||
TypeE & | pValue5, | |||
TypeF & | pValue6 | |||
) | const throw (base::Exception) |
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 |
std::ostream& operator<< | ( | std::ostream & | pOstream, | |
const Values & | pValues | |||
) | [friend] |
VoidValue** iso::data::Values::mValues [protected] |
unsigned int iso::data::Values::mValueCount [protected] |