All Classes Functions Variables Typedefs Friends Pages
IPrimitive.h
1 //------------------------------------------------------------------------------
2 //
3 // Copyright (c) 2012 Glympse Inc. All rights reserved.
4 //
5 //------------------------------------------------------------------------------
6 
7 #ifndef IPRIMITIVE_H__GLYMPSE__
8 #define IPRIMITIVE_H__GLYMPSE__
9 
10 namespace Glympse
11 {
12 
13 /*C*/struct IPrimitive;
14 typedef O< IPrimitive > GPrimitive;
15 
30 /*O*public**/ struct IPrimitive : public IComparable
31 {
36  public: virtual int32 type() = 0;
37 
38  public: virtual bool isArray() = 0;
39 
40  public: virtual bool isObject() = 0;
41 
42  public: virtual bool isDouble() = 0;
43 
44  public: virtual bool isLong() = 0;
45 
46  public: virtual bool isBool() = 0;
47 
48  public: virtual bool isString() = 0;
49 
50  public: virtual bool isNull() = 0;
51 
52  public: virtual int32 size() = 0;
53 
54  public: virtual GPrimitive clone() = 0;
55 
64  public: virtual bool merge(const GPrimitive& from, bool overrideTarget) = 0;
65 
70  public: virtual double getDouble() = 0;
71 
72  public: virtual int64 getLong() = 0;
73 
74  public: virtual bool getBool() = 0;
75 
76  public: virtual GString getString() = 0;
77 
82  public: virtual GPrimitive get(const GString& key) = 0;
83 
84  public: virtual double getDouble(const GString& key) = 0;
85 
86  public: virtual int64 getLong(const GString& key) = 0;
87 
88  public: virtual bool getBool(const GString& key) = 0;
89 
90  public: virtual GString getString(const GString& key) = 0;
91 
92  public: virtual GEnumeration<GString>::ptr getKeys() = 0;
93 
94  public: virtual bool hasKey(const GString& key) = 0;
95 
100  public: virtual GArray<GPrimitive>::ptr getArray() = 0;
101 
102  public: virtual GPrimitive get(int32 index) = 0;
103 
104  public: virtual double getDouble(int32 index) = 0;
105 
106  public: virtual int64 getLong(int32 index) = 0;
107 
108  public: virtual bool getBool(int32 index) = 0;
109 
110  public: virtual GString getString(int32 index) = 0;
111 
116  public: virtual void set(double value) = 0;
117 
118  public: virtual void set(int64 value) = 0;
119 
120  public: virtual void set(bool value) = 0;
121 
122  public: virtual void set(const GString& value) = 0;
123 
124  public: virtual void setNull() = 0;
125 
126  public: virtual void setArray() = 0;
127 
128  public: virtual void setObject() = 0;
129 
134  public: virtual void put(const GString& key, const GPrimitive& value) = 0;
135 
136  public: virtual void put(const GString& key, double value) = 0;
137 
138  public: virtual void put(const GString& key, int64 value) = 0;
139 
140  public: virtual void put(const GString& key, bool value) = 0;
141 
142  public: virtual void put(const GString& key, const GString& value) = 0;
143 
144  public: virtual void putNull(const GString& key) = 0;
145 
146  public: virtual void remove(const GString& key) = 0;
147 
152  public: virtual void put(const GPrimitive& value) = 0;
153 
154  public: virtual void put(double value) = 0;
155 
156  public: virtual void put(int64 value) = 0;
157 
158  public: virtual void put(bool value) = 0;
159 
160  public: virtual void put(const GString& value) = 0;
161 
162  public: virtual void insert(int32 index, const GPrimitive& value) = 0;
163 
164  public: virtual void put(int32 index, const GPrimitive& value) = 0;
165 
166  public: virtual void put(int32 index, double value) = 0;
167 
168  public: virtual void put(int32 index, int64 value) = 0;
169 
170  public: virtual void put(int32 index, bool value) = 0;
171 
172  public: virtual void put(int32 index, const GString& value) = 0;
173 
174  public: virtual void putNull(int32 index) = 0;
175 
176  public: virtual void remove(int32 index) = 0;
177 
178  public: virtual void remove(const GPrimitive& value) = 0;
179 
180 };
181 
182 }
183 
184 #endif // !IPRIMITIVE_H__GLYMPSE__