#include <Element.h>
enum Type { TYPE_NONE, TYPE_INT, TYPE_FLOAT, TYPE_PTR, TYPE_STRING, TYPE_MAP, TYPE_LIST }
Element ()
Construct an empty object.
Element (const Element &obj)
Copy an existing object.
Element (int v)
Set type to int, and value to v.
Element (bool v)
Set type to int, and value to v.
Element (IntType v)
Set type to int, and value to v.
Element (float v)
Set type to double, and value to v.
Element (FloatType v)
Set type to double, and value to v.
Element (PtrType v)
Set type to PtrType, and value to v.
Element (const char *v)
Set type to std::string, and value to v.
Element (const StringType &v)
Set type to std::string, and value to v.
Element (const MapType &v)
Set type to MapType, and value to v.
Element (const ListType &v)
Set type to ListType, and value to v.
Element & operator= (const Element &obj)
overload assignment operator !
Element & operator= (int v)
Element & operator= (bool v)
Element & operator= (IntType v)
Element & operator= (float v)
Element & operator= (FloatType v)
Element & operator= (PtrType v)
Element & operator= (const char *v)
Element & operator= (const StringType &v)
Element & operator= (const MapType &v)
Element & operator= (const ListType &v)
bool operator== (const Element &o) const
Check for equality with another Element.
template<class C > bool operator!= (C c) const
Check for inequality with anything we can check equality with.
bool operator== (IntType v) const
Check for equality with a int.
bool operator== (FloatType v) const
Check for equality with a double.
bool operator== (PtrType v) const
Check for equality with a pointer.
bool operator== (const char *v) const
Check for equality with a const char *.
bool operator== (const StringType &v) const
Check for equality with a std::string.
bool operator== (const MapType &v) const
Check for equality with a MapType.
bool operator== (const ListType &v) const
Check for equality with a ListType.
Type getType () const
Get the current type.
bool isNone () const
Check whether the current type is nothing.
bool isInt () const
Check whether the current type is int.
bool isFloat () const
Check whether the current type is double.
bool isPtr () const
Check whether the current type is pointer.
bool isNum () const
Check whether the current type is numeric.
bool isString () const
Check whether the current type is std::string.
bool isMap () const
Check whether the current type is MapType.
bool isList () const
Check whether the current type is ListType.
IntType asInt () const throw (WrongTypeException)
Retrieve the current value as a int.
IntType Int () const
FloatType asFloat () const throw (WrongTypeException)
Retrieve the current value as a double.
FloatType Float () const
PtrType asPtr () const throw (WrongTypeException)
Retrieve the current value as a pointer.
PtrType Ptr () const
FloatType asNum () const throw (WrongTypeException)
Retrieve the current value as a number.
const std::string & asString () const throw (WrongTypeException)
Retrieve the current value as a const std::string reference.
std::string & asString () throw (WrongTypeException)
Retrieve the current value as a non-const std::string reference.
const StringType & String () const
StringType & String ()
const MapType & asMap () const throw (WrongTypeException)
Retrieve the current value as a const MapType reference.
MapType & asMap () throw (WrongTypeException)
Retrieve the current value as a non-const MapType reference.
const MapType & Map () const
MapType & Map ()
const ListType & asList () const throw (WrongTypeException)
Retrieve the current value as a const ListType reference.
ListType & asList () throw (WrongTypeException)
Retrieve the current value as a non-const ListType reference.
const ListType & List () const
ListType & List ()
static const char * typeName (Type)
Type t
union {
IntType i
FloatType f
void * p
DataType< StringType > * s
DataType< MapType > * m
DataType< ListType > * l
};
Multi-type container.
FIXME: Document this
Author:
Changes:
2003/04/02 Al Riddcoh <alriddoch@zepler.org> Add in some assignment operators for efficiency 2002/11/07 Al Riddcoh <alriddoch@zepler.org> Changed the name to Element as Object is a stupid name for a class. 2000/08/05 Karsten-O. Laux <klaux@rhrk.uni-kl.de> Changed the members to pointers which only get created when really needed. This is a major speedup for passing Object as parameter or when copying it. Because copying of unused members is omitted. All pointers are stored as a union, so we save memory ! Changed IntType to long and added convinience Constructors for float, int and bool
Generated automatically by Doxygen for Atlas-C++ from the source code.