00001 
#ifndef _VARIANT_H_
00002 
#define _VARIANT_H_
00003 
00004 
00005 
00006 
00007 
00008 
00009 
union VariantPointer
00010 {
00011         
double*                 pDouble;           
00012         
Segment*                pSegment;
00013         
Peak2i*                 pPeak;
00014         
FPeak2i*                pFPeak;
00015         
PeakGroup*              pPeakgroup;
00016 };
00017 
00018 
typedef union VariantPointer VariantPointer;
00019 
00020 
struct VariantArray
00021 {
00022         
unsigned isPointer : 1;
00023         VariantPointer array_value;
00024         
int            array_size;
00025         
int                        array_type;
00026 };
00027 
00028 
typedef struct VariantArray VariantArray;
00029 
00030 
00031 
union Variant
00032 {
00033         
00034         
int                                             value_i;
00035         
float                                   value_f;
00036         
char*                                   value_s;
00037         
double                                  value_d;
00038 
00039         
struct Map2D                    value_m;
00040 
00041         
struct Segment                  value_a;
00042                     
Peak2i                      value_p;
00043                    
FPeak2i                      value_k;
00044         
struct PeakGroup                value_g;
00045         
00046         
struct VariantArray             value_r;
00047         
struct SegmentHandler   value_h;
00048 };
00049 
00050 
typedef union Variant Variant;
00051 
00052 
00053 
00054 
#endif
00055