Sourceforge.net - The VCF's Project Host
   The VCF Website Home   |   Online Discussion Forums   |   Sourceforge.net Project Page   

VCF::VariantData Class Reference

VariantData represents an unknown type of variable - similiar to Visual Basic's Variant object. More...

#include <vcf/FoundationKit/VariantData.h>

List of all members.

Public Types

enum  { DefaultPropertyValLength = 50 }

Public Member Functions

 VariantData ()
 creates an empty, undefined object
 VariantData (const int &val)
 creates a VariantData initialized by an int value
 VariantData (const unsigned int &val)
 creates a VariantData initialized by an unsigned int value
 VariantData (const long &val)
 creates a VariantData initialized by a long value
 VariantData (const unsigned long &val)
 creates a VariantData initialized by an unsigned long value
 VariantData (const float &val)
 creates a VariantData initialized by a float value
 VariantData (const double &val)
 creates a VariantData initialized by a double value
 VariantData (const char &val)
 creates a VariantData initialized by a char value
 VariantData (const bool &val)
 creates a VariantData initialized by a bool value
 VariantData (const short &val)
 creates a VariantData initialized by a short value
 VariantData (const ushort &val)
 creates a VariantData initialized by a short value
 VariantData (const String &val)
 creates a VariantData initialized by a String value
 VariantData (const char *val)
 VariantData (const WideChar *val)
 VariantData (const Enum &val)
 creates a VariantData initialized by a Enum value
 VariantData (Enum &val)
 creates a VariantData initialized by a Enum value
 VariantData (Enum *val)
 creates a VariantData initialized by a Enum* value
 VariantData (Object *val)
 creates a VariantData initialized by a Object* value
 VariantData (Object &val)
 creates a VariantData initialized by a Object& value
 VariantData (const Object &val)
 creates a VariantData initialized by a const Object& value
 VariantData (Interface *val)
 creates a VariantData initialized by a Interface* value
 VariantData (const VCF::int64 &val)
 creates a Variant initialized by a int64 value
 VariantData (const VCF::uint64 &val)
 creates a Variant initialized by a uint64 value
 VariantData (void *val)
 VariantData (const DateTime &val)
 creates a Variant initialized by a DateTime value
 VariantData (const DateTimeSpan &val)
 creates a Variant initialized by a DateTimeSpan value
 VariantData (const VariantData &value)
 copy constructor
 ~VariantData ()
 destructor
bool operator== (const VariantData &v) const
 comparison operator
bool operator!= (const VariantData &v) const
 comparison operator
 operator int () const
 converts the VariantData to an int
 operator long () const
 converts the VariantData to an long
 operator short () const
 converts the VariantData to an short
 operator ushort () const
 converts the VariantData to an unsigned short
 operator unsigned int () const
 converts the VariantData to an unsigned int
 operator unsigned long () const
 converts the VariantData to an unsigned long
 operator float () const
 converts the VariantData to an float
 operator char () const
 converts the VariantData to an char
 operator double () const
 converts the VariantData to an double
 operator Interface * () const
 converts the VariantData to an Interface pointer
 operator Object * () const
 converts the VariantData to an Object pointer
 operator Object & () const
 converts the VariantData to an Object reference
 operator String () const
 converts the VariantData to an String
 operator bool () const
 converts the VariantData to a bool
 operator Enum * () const
 converts the VariantData to an Enum pointer
 operator Enum & () const
 converts the VariantData to an Enum reference
 operator VCF::int64 () const
 converts the Variant to a int64
 operator VCF::uint64 () const
 converts the Variant to an uint64
 operator void * () const
 operator VCF::DateTime () const
 converts the Variant to a DateTime
 operator VCF::DateTimeSpan () const
 converts the Variant to a DateTimeSpan
VariantDataoperator= (const VariantData &newValue)
VariantDataoperator= (VariantData *newValue)
VariantDataoperator= (const int &newValue)
 Assigns an int value to the VariantData.
VariantDataoperator= (const long &newValue)
 Assigns an long value to the VariantData.
VariantDataoperator= (const short &newValue)
 Assigns an short value to the VariantData.
VariantDataoperator= (const ushort &newValue)
 Assigns an unsigned short value to the VariantData.
VariantDataoperator= (const unsigned int &newValue)
 Assigns an unsigned int value to the VariantData.
VariantDataoperator= (const unsigned long &newValue)
 Assigns an unsigned long value to the VariantData.
VariantDataoperator= (const float &newValue)
 Assigns an float value to the VariantData.
VariantDataoperator= (const char &newValue)
 Assigns an char value to the VariantData.
VariantDataoperator= (const double &newValue)
 Assigns an double value to the VariantData.
VariantDataoperator= (const bool &newValue)
 Assigns an bool value to the VariantData.
VariantDataoperator= (const char *newValue)
 Assigns an string (as an array of char's) to the VariantData.
VariantDataoperator= (Interface *newValue)
 Assigns an Interface pointer to the VariantData.
VariantDataoperator= (Object *newValue)
 Assigns an Object pointer to the VariantData.
VariantDataoperator= (const Object &newValue)
 Assigns an Object reference to the VariantData.
VariantDataoperator= (const String &newValue)
 Assigns an string (as an String) to the VariantData.
VariantDataoperator= (Enum *newValue)
 Assigns an Enum pointer to the VariantData.
VariantDataoperator= (const Enum &newValue)
 Assigns an Enum reference to the VariantData.
VariantDataoperator= (const int64 &newValue)
 Assigns a int64 value to the Variant.
VariantDataoperator= (const uint64 &newValue)
 Assigns an uint64 value to the Variant.
VariantDataoperator= (void *newValue)
VariantDataoperator= (const DateTime &newValue)
 Assigns a DateTime value to the Variant.
VariantDataoperator= (const DateTimeSpan &newValue)
 Assigns a DateTimeSpan value to the Variant.
bool isNull () const
 Returns true or false depending on whether the variant is considered "null".
void setNull ()
 Mark the variant as "null" and set it's internal values to NULL (or 0).
String toString () const
 converts the VariantData to a string, no matter what the type.
void setFromString (const String &value)
 Assigns the VariantData's data from a string.
bool isReal () const
bool isInteger () const
uint64 sizeOf () const
void checkStringVal ()

Static Public Member Functions

static VariantData null ()

Public Attributes

StringStringVal
 string are a special case
PropertyDescriptorType type
 defines the data type of the VariantData, where type can represent an int, unsigned int, long, unsigned long, short, char, double, float, bool, string, Enum pointer, Object pointer, int64, uint64, DateTime or DateTimeSpan.
int IntVal
long LongVal
short ShortVal
ushort UShortVal
unsigned int UIntVal
unsigned long ULongVal
float FloatVal
char CharVal
double DblVal
bool BoolVal
ObjectObjVal
EnumValue EnumVal
InterfaceInterfaceVal
int64 Int64Val
uint64 UInt64Val
void * VoidPtrVal

Protected Member Functions

void setValue (const VariantData &value)
int convertToInt () const
long convertToLong () const
short convertToShort () const
ushort convertToUShort () const
unsigned int convertToUInt () const
unsigned long convertToULong () const
float convertToFloat () const
char convertToChar () const
double convertToDbl () const
bool convertToBool () const
int64 convertToInt64 () const
uint64 convertToUInt64 () const
void * convertToVoidPtr () const


Detailed Description

VariantData represents an unknown type of variable - similiar to Visual Basic's Variant object.

VariantData objects can store int, long, double, bool String, or Object*. VariantData overrides conversion operators and provides operator equals overloads to handle the conversion from one type to another. Setting the value of a VariantData automatically sets the type. For example:

    VariantData val;
    int i = 123;
    val = i; //automatically sets the VariantData::type to equal pdInt
To convert from one type to another is equally simple:
    VariantData val;
    int i;
    double d;
    val = 234.8546; //val is 234.8546 and is set to the correct type
    d = val; //val is converted to a double and d is assigned the value 234.8546
    val = 123; //val is now assigned an int (or whatever the compiler assumes 123 is )
    i = val;    //i is now equal to 123
Strings are a special case, since the compiler will not allow a union to be made with them, thus the reason for the StringVal member outside of the union. VariantData objects can also have their data render as a string and can be assigned strings and convert then to the correct data value.

Version:
1.0
Author:
Jim Crafton


Member Enumeration Documentation

anonymous enum
 

Enumerator:
DefaultPropertyValLength 


Constructor & Destructor Documentation

VCF::VariantData::VariantData  )  [inline]
 

creates an empty, undefined object

VCF::VariantData::VariantData const int &  val  )  [inline]
 

creates a VariantData initialized by an int value

VCF::VariantData::VariantData const unsigned int &  val  )  [inline]
 

creates a VariantData initialized by an unsigned int value

VCF::VariantData::VariantData const long &  val  )  [inline]
 

creates a VariantData initialized by a long value

VCF::VariantData::VariantData const unsigned long &  val  )  [inline]
 

creates a VariantData initialized by an unsigned long value

VCF::VariantData::VariantData const float &  val  )  [inline]
 

creates a VariantData initialized by a float value

VCF::VariantData::VariantData const double &  val  )  [inline]
 

creates a VariantData initialized by a double value

VCF::VariantData::VariantData const char &  val  )  [inline]
 

creates a VariantData initialized by a char value

VCF::VariantData::VariantData const bool &  val  )  [inline]
 

creates a VariantData initialized by a bool value

VCF::VariantData::VariantData const short &  val  )  [inline]
 

creates a VariantData initialized by a short value

VCF::VariantData::VariantData const ushort val  )  [inline]
 

creates a VariantData initialized by a short value

VCF::VariantData::VariantData const String val  )  [inline]
 

creates a VariantData initialized by a String value

VCF::VariantData::VariantData const char *  val  )  [inline]
 

VCF::VariantData::VariantData const WideChar val  )  [inline]
 

VCF::VariantData::VariantData const Enum val  )  [inline]
 

creates a VariantData initialized by a Enum value

VCF::VariantData::VariantData Enum val  )  [inline]
 

creates a VariantData initialized by a Enum value

VCF::VariantData::VariantData Enum val  )  [inline]
 

creates a VariantData initialized by a Enum* value

VCF::VariantData::VariantData Object val  )  [inline]
 

creates a VariantData initialized by a Object* value

VCF::VariantData::VariantData Object val  )  [inline]
 

creates a VariantData initialized by a Object& value

VCF::VariantData::VariantData const Object val  )  [inline]
 

creates a VariantData initialized by a const Object& value

VCF::VariantData::VariantData Interface val  )  [inline]
 

creates a VariantData initialized by a Interface* value

VCF::VariantData::VariantData const VCF::int64 val  )  [inline]
 

creates a Variant initialized by a int64 value

VCF::VariantData::VariantData const VCF::uint64 val  )  [inline]
 

creates a Variant initialized by a uint64 value

VCF::VariantData::VariantData void *  val  )  [inline]
 

VCF::VariantData::VariantData const DateTime val  )  [inline]
 

creates a Variant initialized by a DateTime value

VCF::VariantData::VariantData const DateTimeSpan val  )  [inline]
 

creates a Variant initialized by a DateTimeSpan value

VCF::VariantData::VariantData const VariantData value  )  [inline]
 

copy constructor

VCF::VariantData::~VariantData  )  [inline]
 

destructor


Member Function Documentation

void VCF::VariantData::checkStringVal  )  [inline]
 

bool VCF::VariantData::convertToBool  )  const [protected]
 

char VCF::VariantData::convertToChar  )  const [protected]
 

double VCF::VariantData::convertToDbl  )  const [protected]
 

float VCF::VariantData::convertToFloat  )  const [protected]
 

int VCF::VariantData::convertToInt  )  const [protected]
 

int64 VCF::VariantData::convertToInt64  )  const [protected]
 

long VCF::VariantData::convertToLong  )  const [protected]
 

short VCF::VariantData::convertToShort  )  const [protected]
 

unsigned int VCF::VariantData::convertToUInt  )  const [protected]
 

uint64 VCF::VariantData::convertToUInt64  )  const [protected]
 

unsigned long VCF::VariantData::convertToULong  )  const [protected]
 

ushort VCF::VariantData::convertToUShort  )  const [protected]
 

void* VCF::VariantData::convertToVoidPtr  )  const [protected]
 

bool VCF::VariantData::isInteger  )  const [inline]
 

bool VCF::VariantData::isNull  )  const [inline]
 

Returns true or false depending on whether the variant is considered "null".

If the type value is equal to pdNull, then the variant is considered null and any values it may or may not contain should be ignored.

bool VCF::VariantData::isReal  )  const [inline]
 

static VariantData VCF::VariantData::null  )  [inline, static]
 

VCF::VariantData::operator bool  )  const [inline]
 

converts the VariantData to a bool

VCF::VariantData::operator char  )  const [inline]
 

converts the VariantData to an char

VCF::VariantData::operator double  )  const [inline]
 

converts the VariantData to an double

VCF::VariantData::operator Enum &  )  const [inline]
 

converts the VariantData to an Enum reference

VCF::VariantData::operator Enum *  )  const [inline]
 

converts the VariantData to an Enum pointer

VCF::VariantData::operator float  )  const [inline]
 

converts the VariantData to an float

VCF::VariantData::operator int  )  const [inline]
 

converts the VariantData to an int

VCF::VariantData::operator Interface *  )  const [inline]
 

converts the VariantData to an Interface pointer

VCF::VariantData::operator long  )  const [inline]
 

converts the VariantData to an long

VCF::VariantData::operator Object &  )  const [inline]
 

converts the VariantData to an Object reference

VCF::VariantData::operator Object *  )  const [inline]
 

converts the VariantData to an Object pointer

VCF::VariantData::operator short  )  const [inline]
 

converts the VariantData to an short

VCF::VariantData::operator String  )  const [inline]
 

converts the VariantData to an String

VCF::VariantData::operator unsigned int  )  const [inline]
 

converts the VariantData to an unsigned int

VCF::VariantData::operator unsigned long  )  const [inline]
 

converts the VariantData to an unsigned long

VCF::VariantData::operator ushort  )  const [inline]
 

converts the VariantData to an unsigned short

VCF::VariantData::operator VCF::DateTime  )  const [inline]
 

converts the Variant to a DateTime

VCF::VariantData::operator VCF::DateTimeSpan  )  const [inline]
 

converts the Variant to a DateTimeSpan

VCF::VariantData::operator VCF::int64  )  const [inline]
 

converts the Variant to a int64

VCF::VariantData::operator VCF::uint64  )  const [inline]
 

converts the Variant to an uint64

VCF::VariantData::operator void *  )  const [inline]
 

bool VCF::VariantData::operator!= const VariantData v  )  const [inline]
 

comparison operator

VariantData& VCF::VariantData::operator= const DateTimeSpan newValue  )  [inline]
 

Assigns a DateTimeSpan value to the Variant.

VariantData& VCF::VariantData::operator= const DateTime newValue  )  [inline]
 

Assigns a DateTime value to the Variant.

VariantData& VCF::VariantData::operator= void *  newValue  )  [inline]
 

VariantData& VCF::VariantData::operator= const uint64 newValue  )  [inline]
 

Assigns an uint64 value to the Variant.

VariantData& VCF::VariantData::operator= const int64 newValue  )  [inline]
 

Assigns a int64 value to the Variant.