All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines
Brief description of class still missing. More...
#include <Variant.h>
Public Member Functions | |
bool | isValid () const |
void | operator= (const Variant &o) |
std::string | toString () const |
Variant () | |
Variant (std::string &s) | |
Variant (const char *s) | |
Variant (int v) | |
Variant (long v) | |
Variant (const void *p) | |
Variant (double v) | |
Variant (const Variant &o) | |
~Variant () |
Brief description of class still missing.
Full description of class still missing
GpCoreTools::Variant::Variant | ( | ) | [inline] |
{ _type=Unknown; _data=0; }
GpCoreTools::Variant::Variant | ( | std::string & | s | ) | [inline] |
{
_type=String;
_data=new std::string(s);
}
GpCoreTools::Variant::Variant | ( | const char * | s | ) | [inline] |
{
_type=String;
_data=new std::string(s);
}
GpCoreTools::Variant::Variant | ( | int | v | ) | [inline] |
{
_type=Int;
_data=new int(v);
}
GpCoreTools::Variant::Variant | ( | long | v | ) | [inline] |
{
_type=Long;
_data=new long(v);
}
GpCoreTools::Variant::Variant | ( | const void * | p | ) | [inline] |
{ _type=Long; _data=new long((long)p); }
GpCoreTools::Variant::Variant | ( | double | v | ) | [inline] |
{
_type=Double;
_data=new double(v);
}
GpCoreTools::Variant::Variant | ( | const Variant & | o | ) |
{ assignInternal(o); }
{ clearInternal(); }
bool GpCoreTools::Variant::isValid | ( | ) | const [inline] |
{return _data;}
void GpCoreTools::Variant::operator= | ( | const Variant & | o | ) |
{ clearInternal(); assignInternal(o); }
std::string GpCoreTools::Variant::toString | ( | ) | const |
References str.
Referenced by GpCoreTools::TraceStamp::toString(), and GpCoreTools::TraceInfo::toString().
{ switch(_type) { case String: return *reinterpret_cast<std::string *>(_data); case Int: { char str[16]; sprintf(str, "%i", *reinterpret_cast<int *>(_data)); return str; } case Long: { char str[32]; sprintf(str, "%li", *reinterpret_cast<long *>(_data)); return str; } case Double:{ char str[512]; // Maximum double around 1.8e+308 sprintf(str, "%.20lf", *reinterpret_cast<double *>(_data)); return str; } case Unknown: break; } return ""; }