Variant.h

00001 //
00002 // File: Variant.h
00003 // Created by: Daniele Castagna <Email>
00004 // Created on: Fri Jan  6 16:06:44 2006
00005 //
00006 
00007 #ifndef GENETIK_UTIL_VARIANT
00008 #define GENETIK_UTIL_VARIANT
00009 
00010 namespace genetiK
00011 {
00012 namespace util
00013 {
00014         
00015 class Variant
00016 {
00017 private:
00018         typedef enum VariantType{
00019                 UNDEFINED = -1,
00020                 INTEGER = 0,
00021                 BOOLEAN,
00022                 CHARACTER,
00023                 REAL,
00024                 USER_DATA,
00025                 TYPES_NUMBER
00026                 }VariantType;
00027 
00028 
00029 
00030         typedef union{
00031                 bool boolean;
00032                 int integer;
00033                 char character;
00034                 double real;
00035                 void* userData;
00036         }Data;
00037 
00038 
00039                 
00040         Data                                                            data;   
00041         VariantType                                                     type;
00042                 
00043 public:
00044         Variant();
00045         Variant(bool boolean);
00046         Variant(int integer);
00047         Variant(char character);
00048         Variant(double real);
00049         Variant(void* userData);
00050         virtual ~Variant();
00051 
00052         VariantType                                             getType() const;
00053 
00054         bool                                                    getBoolean() const;     
00055         int                                                     getInteger() const;
00056         char                                                    getCharacter() const;
00057         double                                                  getReal() const;
00058         void*                                                   getUserData() const;
00059 
00060 
00061 
00062         void                                                    setBoolean(bool boolean);       
00063         void                                                    setInteger(int integer);
00064         void                                                    setCharacter(char character);
00065         void                                                    setReal(double real);
00066         void                                                    setUserData(void* userData);
00067 
00068 };
00069 
00070 }
00071 }
00072 
00073 #endif

Generated on Thu Feb 23 12:20:45 2006 for GenetiK by  doxygen 1.4.6