Mass++ Common Libraries v2.7.5
 All Classes Namespaces Files Functions Variables Enumerations Macros
Variant.h
Go to the documentation of this file.
1 
12 #ifndef __KOME_OBJECTS_VARIANT_H__
13 #define __KOME_OBJECTS_VARIANT_H__
14 
15 
16 #include <map>
17 
18 
19 namespace kome {
20  namespace objects {
21 
26  class DATA_OBJECTS_CLASS Variant {
27  public:
32  Variant();
33 
39  Variant( const Variant& v );
40 
45  virtual ~Variant();
46 
47  public:
54  Variant& operator=( const Variant& other );
55 
56  public:
58  typedef enum {
59  UNKNOWN,
60  BOOL,
61  INTEGER,
62  DOUBLE,
63  STRING,
64  ARRAY,
65  PAIR,
66  SAMPLE_SET,
67  SAMPLE,
68  SAMPLE_GETTER,
69  SPECTRUM,
70  DATA_SET,
71  DATA_GROUP_NODE,
72  CHROMATOGRAM,
73  XY_DATA,
74  PEAKS,
75  PEAKS_2D,
76  DRAWING_DATA,
77  GRAPHICS,
78  FONT,
79  PROGRESS,
80  MOUSE_EVT,
81  KEY_EVT,
82  DATA_MAP,
83  SIZE_EVT,
84  MOVE_EVT,
85  WINDOW,
86  SETTING_VALUES,
87  SCRIPT,
88  FILE_READER,
89  OTHER
90  } DataType;
91 
94 
96  union PrimitiveType {
97  bool boolVal;
98  int intVal;
99  double dblVal;
100  void* pt;
101  } prim;
102 
103  protected:
105  void* arr;
106 
107  public:
113  void setString( const char* s );
114 
120  char* getString();
121 
128  Variant* createArray( const unsigned int size );
129 
135  Variant* getArray();
136 
143  Variant* getElement( const unsigned int index );
144 
150  unsigned int getArraySize();
151 
152  protected:
157  void deleteArray();
158 
159  };
160  }
161 }
162 
163 #endif // __KOME_OBJECTS_VARIANT_H__
class that treats data of various types
Definition: Variant.h:26