Variable that supports a fixed set of types. More...

#include <Variant.h>

Collaboration diagram for Urho3D::Variant:
[legend]

Public Member Functions

 Variant ()
 Construct empty.
 
 Variant (int value)
 Construct from integer.
 
 Variant (unsigned value)
 Construct from unsigned integer.
 
 Variant (const StringHash &value)
 Construct from a string hash (convert to integer).
 
 Variant (bool value)
 Construct from a bool.
 
 Variant (float value)
 Construct from a float.
 
 Variant (const Vector2 &value)
 Construct from a Vector2.
 
 Variant (const Vector3 &value)
 Construct from a Vector3.
 
 Variant (const Vector4 &value)
 Construct from a Vector4.
 
 Variant (const Quaternion &value)
 Construct from a quaternion.
 
 Variant (const Color &value)
 Construct from a color.
 
 Variant (const String &value)
 Construct from a string.
 
 Variant (const char *value)
 Construct from a C string.
 
 Variant (const PODVector< unsigned char > &value)
 Construct from a buffer.
 
 Variant (void *value)
 Construct from a pointer.
 
 Variant (const ResourceRef &value)
 Construct from a resource reference.
 
 Variant (const ResourceRefList &value)
 Construct from a resource reference list.
 
 Variant (const VariantVector &value)
 Construct from a variant vector.
 
 Variant (const VariantMap &value)
 Construct from a variant map.
 
 Variant (const IntRect &value)
 Construct from an integer rect.
 
 Variant (const IntVector2 &value)
 Construct from an IntVector2.
 
 Variant (RefCounted *value)
 Construct from a RefCounted pointer. The object will be stored internally in a WeakPtr so that its expiration can be detected safely.
 
 Variant (const Matrix3 &value)
 Construct from a Matrix3.
 
 Variant (const Matrix3x4 &value)
 Construct from a Matrix3x4.
 
 Variant (const Matrix4 &value)
 Construct from a Matrix4.
 
 Variant (const String &type, const String &value)
 Construct from type and value.
 
 Variant (VariantType type, const String &value)
 Construct from type and value.
 
 Variant (const char *type, const char *value)
 Construct from type and value.
 
 Variant (VariantType type, const char *value)
 Construct from type and value.
 
 Variant (const Variant &value)
 Copy-construct from another variant.
 
 ~Variant ()
 Destruct.
 
void Clear ()
 Reset to empty.
 
Variantoperator= (const Variant &rhs)
 Assign from another variant.
 
Variantoperator= (int rhs)
 Assign from an integer.
 
Variantoperator= (unsigned rhs)
 Assign from an unsigned integer.
 
Variantoperator= (const StringHash &rhs)
 Assign from a StringHash (convert to integer.)
 
Variantoperator= (bool rhs)
 Assign from a bool.
 
Variantoperator= (float rhs)
 Assign from a float.
 
Variantoperator= (const Vector2 &rhs)
 Assign from a Vector2.
 
Variantoperator= (const Vector3 &rhs)
 Assign from a Vector3.
 
Variantoperator= (const Vector4 &rhs)
 Assign from a Vector4.
 
Variantoperator= (const Quaternion &rhs)
 Assign from a quaternion.
 
Variantoperator= (const Color &rhs)
 Assign from a color.
 
Variantoperator= (const String &rhs)
 Assign from a string.
 
Variantoperator= (const char *rhs)
 Assign from a C string.
 
Variantoperator= (const PODVector< unsigned char > &rhs)
 Assign from a buffer.
 
Variantoperator= (void *rhs)
 Assign from a void pointer.
 
Variantoperator= (const ResourceRef &rhs)
 Assign from a resource reference.
 
Variantoperator= (const ResourceRefList &rhs)
 Assign from a resource reference list.
 
Variantoperator= (const VariantVector &rhs)
 Assign from a variant vector.
 
Variantoperator= (const VariantMap &rhs)
 Assign from a variant map.
 
Variantoperator= (const IntRect &rhs)
 Assign from an integer rect.
 
Variantoperator= (const IntVector2 &rhs)
 Assign from an IntVector2.
 
Variantoperator= (RefCounted *rhs)
 Assign from a RefCounted pointer. The object will be stored internally in a WeakPtr so that its expiration can be detected safely.
 
Variantoperator= (const Matrix3 &rhs)
 Assign from a Matrix3.
 
Variantoperator= (const Matrix3x4 &rhs)
 Assign from a Matrix3x4.
 
Variantoperator= (const Matrix4 &rhs)
 Assign from a Matrix4.
 
bool operator== (const Variant &rhs) const
 Test for equality with another variant.
 
bool operator== (int rhs) const
 Test for equality with an integer. To return true, both the type and value must match.
 
bool operator== (unsigned rhs) const
 Test for equality with an unsigned integer. To return true, both the type and value must match.
 
bool operator== (bool rhs) const
 Test for equality with a bool. To return true, both the type and value must match.
 
bool operator== (float rhs) const
 Test for equality with a float. To return true, both the type and value must match.
 
bool operator== (const Vector2 &rhs) const
 Test for equality with a Vector2. To return true, both the type and value must match.
 
bool operator== (const Vector3 &rhs) const
 Test for equality with a Vector3. To return true, both the type and value must match.
 
bool operator== (const Vector4 &rhs) const
 Test for equality with a Vector4. To return true, both the type and value must match.
 
bool operator== (const Quaternion &rhs) const
 Test for equality with a quaternion. To return true, both the type and value must match.
 
bool operator== (const Color &rhs) const
 Test for equality with a color. To return true, both the type and value must match.
 
bool operator== (const String &rhs) const
 Test for equality with a string. To return true, both the type and value must match.
 
bool operator== (const PODVector< unsigned char > &rhs) const
 Test for equality with a buffer. To return true, both the type and value must match.
 
bool operator== (void *rhs) const
 Test for equality with a void pointer. To return true, both the type and value must match, with the exception that a RefCounted pointer is also allowed.
 
bool operator== (const ResourceRef &rhs) const
 Test for equality with a resource reference. To return true, both the type and value must match.
 
bool operator== (const ResourceRefList &rhs) const
 Test for equality with a resource reference list. To return true, both the type and value must match.
 
bool operator== (const VariantVector &rhs) const
 Test for equality with a variant vector. To return true, both the type and value must match.
 
bool operator== (const VariantMap &rhs) const
 Test for equality with a variant map. To return true, both the type and value must match.
 
bool operator== (const IntRect &rhs) const
 Test for equality with an integer rect. To return true, both the type and value must match.
 
bool operator== (const IntVector2 &rhs) const
 Test for equality with an IntVector2. To return true, both the type and value must match.
 
bool operator== (const StringHash &rhs) const
 Test for equality with a StringHash. To return true, both the type and value must match.
 
bool operator== (RefCounted *rhs) const
 Test for equality with a RefCounted pointer. To return true, both the type and value must match, with the exception that void pointer is also allowed.
 
bool operator== (const Matrix3 &rhs) const
 Test for equality with a Matrix3. To return true, both the type and value must match.
 
bool operator== (const Matrix3x4 &rhs) const
 Test for equality with a Matrix3x4. To return true, both the type and value must match.
 
bool operator== (const Matrix4 &rhs) const
 Test for equality with a Matrix4. To return true, both the type and value must match.
 
bool operator!= (const Variant &rhs) const
 Test for inequality with another variant.
 
bool operator!= (int rhs) const
 Test for inequality with an integer.
 
bool operator!= (unsigned rhs) const
 Test for inequality with an unsigned integer.
 
bool operator!= (bool rhs) const
 Test for inequality with a bool.
 
bool operator!= (float rhs) const
 Test for inequality with a float.
 
bool operator!= (const Vector2 &rhs) const
 Test for inequality with a Vector2.
 
bool operator!= (const Vector3 &rhs) const
 Test for inequality with a Vector3.
 
bool operator!= (const Vector4 &rhs) const
 Test for inequality with an Vector4.
 
bool operator!= (const Quaternion &rhs) const
 Test for inequality with a Quaternion.
 
bool operator!= (const String &rhs) const
 Test for inequality with a string.
 
bool operator!= (const PODVector< unsigned char > &rhs) const
 Test for inequality with a buffer.
 
bool operator!= (void *rhs) const
 Test for inequality with a pointer.
 
bool operator!= (const ResourceRef &rhs) const
 Test for inequality with a resource reference.
 
bool operator!= (const ResourceRefList &rhs) const
 Test for inequality with a resource reference list.
 
bool operator!= (const VariantVector &rhs) const
 Test for inequality with a variant vector.
 
bool operator!= (const VariantMap &rhs) const
 Test for inequality with a variant map.
 
bool operator!= (const IntRect &rhs) const
 Test for inequality with an integer rect.
 
bool operator!= (const IntVector2 &rhs) const
 Test for inequality with an IntVector2.
 
bool operator!= (const StringHash &rhs) const
 Test for inequality with a StringHash.
 
bool operator!= (RefCounted *rhs) const
 Test for inequality with a RefCounted pointer.
 
bool operator!= (const Matrix3 &rhs) const
 Test for inequality with a Matrix3.
 
bool operator!= (const Matrix3x4 &rhs) const
 Test for inequality with a Matrix3x4.
 
bool operator!= (const Matrix4 &rhs) const
 Test for inequality with a Matrix4.
 
void FromString (const String &type, const String &value)
 Set from typename and value strings. Pointers will be set to null, and VariantBuffer or VariantMap types are not supported.
 
void FromString (const char *type, const char *value)
 Set from typename and value strings. Pointers will be set to null, and VariantBuffer or VariantMap types are not supported.
 
void FromString (VariantType type, const String &value)
 Set from type and value string. Pointers will be set to null, and VariantBuffer or VariantMap types are not supported.
 
void FromString (VariantType type, const char *value)
 Set from type and value string. Pointers will be set to null, and VariantBuffer or VariantMap types are not supported.
 
void SetBuffer (const void *data, unsigned size)
 Set buffer type from a memory area.
 
int GetInt () const
 Return int or zero on type mismatch.
 
unsigned GetUInt () const
 Return unsigned int or zero on type mismatch.
 
StringHash GetStringHash () const
 Return StringHash or zero on type mismatch.
 
bool GetBool () const
 Return bool or false on type mismatch.
 
float GetFloat () const
 Return float or zero on type mismatch.
 
const Vector2GetVector2 () const
 Return Vector2 or zero on type mismatch.
 
const Vector3GetVector3 () const
 Return Vector3 or zero on type mismatch.
 
const Vector4GetVector4 () const
 Return Vector4 or zero on type mismatch.
 
const QuaternionGetQuaternion () const
 Return quaternion or identity on type mismatch.
 
const ColorGetColor () const
 Return color or default on type mismatch.
 
const StringGetString () const
 Return string or empty on type mismatch.
 
const PODVector< unsigned char > & GetBuffer () const
 Return buffer or empty on type mismatch.
 
void * GetVoidPtr () const
 Return void pointer or null on type mismatch. RefCounted pointer will be converted.
 
const ResourceRefGetResourceRef () const
 Return a resource reference or empty on type mismatch.
 
const ResourceRefListGetResourceRefList () const
 Return a resource reference list or empty on type mismatch.
 
const VariantVectorGetVariantVector () const
 Return a variant vector or empty on type mismatch.
 
const VariantMapGetVariantMap () const
 Return a variant map or empty on type mismatch.
 
const IntRectGetIntRect () const
 Return an integer rect or empty on type mismatch.
 
const IntVector2GetIntVector2 () const
 Return an IntVector2 or empty on type mismatch.
 
RefCountedGetPtr () const
 Return a RefCounted pointer or null on type mismatch. Will return null if holding a void pointer, as it can not be safely verified that the object is a RefCounted.
 
const Matrix3GetMatrix3 () const
 Return a Matrix3 or identity on type mismatch.
 
const Matrix3x4GetMatrix3x4 () const
 Return a Matrix3x4 or identity on type mismatch.
 
const Matrix4GetMatrix4 () const
 Return a Matrix4 or identity on type mismatch.
 
VariantType GetType () const
 Return value's type.
 
String GetTypeName () const
 Return value's type name.
 
String ToString () const
 Convert value to string. Pointers are returned as null, and VariantBuffer or VariantMap are not supported and return empty.
 
bool IsZero () const
 Return true when the variant value is considered zero according to its actual type.
 
bool IsEmpty () const
 Return true when the variant is empty (i.e. not initialized yet).
 
template<class T >
Get () const
 Return the value, template version.
 
PODVector< unsigned char > * GetBufferPtr ()
 Return a pointer to a modifiable buffer or null on type mismatch.
 
VariantVectorGetVariantVectorPtr ()
 Return a pointer to a modifiable variant vector or null on type mismatch.
 
VariantMapGetVariantMapPtr ()
 Return a pointer to a modifiable variant map or null on type mismatch.
 
template<>
int Get () const
 
template<>
unsigned Get () const
 
template<>
StringHash Get () const
 
template<>
bool Get () const
 
template<>
float Get () const
 
template<>
const Vector2Get () const
 
template<>
const Vector3Get () const
 
template<>
const Vector4Get () const
 
template<>
const QuaternionGet () const
 
template<>
const ColorGet () const
 
template<>
const StringGet () const
 
template<>
const IntRectGet () const
 
template<>
const IntVector2Get () const
 
template<>
const PODVector< unsigned char > & Get () const
 
template<>
void * Get () const
 
template<>
RefCountedGet () const
 
template<>
const Matrix3Get () const
 
template<>
const Matrix3x4Get () const
 
template<>
const Matrix4Get () const
 
template<>
ResourceRef Get () const
 
template<>
ResourceRefList Get () const
 
template<>
VariantVector Get () const
 
template<>
VariantMap Get () const
 
template<>
Vector2 Get () const
 
template<>
Vector3 Get () const
 
template<>
Vector4 Get () const
 
template<>
Quaternion Get () const
 
template<>
Color Get () const
 
template<>
String Get () const
 
template<>
IntRect Get () const
 
template<>
IntVector2 Get () const
 
template<>
PODVector< unsigned char > Get () const
 
template<>
Matrix3 Get () const
 
template<>
Matrix3x4 Get () const
 
template<>
Matrix4 Get () const
 

Static Public Member Functions

static String GetTypeName (VariantType type)
 Return name for variant type.
 
static VariantType GetTypeFromName (const String &typeName)
 Return variant type from type name.
 
static VariantType GetTypeFromName (const char *typeName)
 Return variant type from type name.
 

Static Public Attributes

static const Variant EMPTY
 Empty variant.
 
static const PODVector
< unsigned char > 
emptyBuffer
 Empty buffer.
 
static const ResourceRef emptyResourceRef
 Empty resource reference.
 
static const ResourceRefList emptyResourceRefList
 Empty resource reference list.
 
static const VariantMap emptyVariantMap
 Empty variant map.
 
static const VariantVector emptyVariantVector
 Empty variant vector.
 

Private Member Functions

void SetType (VariantType newType)
 Set new type and allocate/deallocate memory as necessary.
 

Private Attributes

VariantType type_
 Variant type.
 
VariantValue value_
 Variant value.
 

Detailed Description

Variable that supports a fixed set of types.


The documentation for this class was generated from the following files:
  • /home/travis/build/urho3d/Urho3D/Source/Urho3D/Core/Variant.h
  • /home/travis/build/urho3d/Urho3D/Source/Urho3D/Core/Variant.cpp