COSMOS core  1.0.2 (beta)
Comprehensive Open-architecture Solution for Mission Operations Systems
jsonvalue.h
Go to the documentation of this file.
1 #ifndef JSONVALUE_H
2 #define JSONVALUE_H
3 #include "support/configCosmos.h"
4 #include "math/vector.h"
5 using namespace Cosmos::Math::Vectors;
6 using namespace Cosmos::Math::Quaternions;
7 
8 class JSONObject;
9 class JSONValue;
10 typedef struct vector<JSONValue> JSONArray;
11 
12 
13 class JSONValue {
14 public:
15  enum class JsonValueType : uint8_t {
16  NULL_VALUE = 0,
17  STRING = 1,
18  NUMBER = 2,
19  JSON_OBJECT = 3,
20  JSON_ARRAY = 4,
21  BOOL_TRUE = 5,
22  BOOL_FALSE = 6,
23  };
24  JSONValue();
25  JSONValue(uint8_t val);
26  JSONValue(int8_t val);
27  JSONValue(char val);
28  JSONValue(bool val);
29  JSONValue(uint16_t val);
30  JSONValue(int16_t val);
31  JSONValue(uint32_t val);
32  JSONValue(int32_t val);
33  JSONValue(uint64_t val);
34  JSONValue(int64_t val);
35 
36  JSONValue(float val);
37  JSONValue(double val);
38 
39  JSONValue(string val);
40  JSONValue(Vector val);
41  JSONValue(Quaternion val);
42 
43  JSONValue(JSONObject val);
44  JSONValue(JSONArray val);
45 
46  void set_null();
47  void set(string val);
48  void set(float val);
49  void set(double val);
50  void set(uint64_t val);
51  void set(uint32_t val);
52  void set(uint16_t val);
53  void set(uint8_t val);
54  void set(int64_t val);
55  void set(int32_t val);
56  void set(int16_t val);
57  void set(int8_t val);
58 
59  void set(Vector val);
60  void set(Quaternion val);
61 
62  void set(char val);
63  void set(JSONObject val);
64  void set(JSONArray val);
65  void set(bool val);
66 
67  bool isNull();
68  bool isString();
69  bool isNumber();
70  bool isObject();
71  bool isArray();
72  bool isBool();
73 
74  string to_json_string();
75 private:
78 };
79 
80 #endif // JSONVALUE_H
Definition: jsonvalue.h:13
Definition: vector.cpp:1578
struct vector< JSONValue > JSONArray
Definition: jsonvalue.h:10
Definition: vector.cpp:2097
string value_as_string
Definition: jsonvalue.h:76
JsonValueType type
Definition: jsonvalue.h:77
Headers and definitions common to all COSMOS.
Definition: jsonobject.h:5
Vector Class.
Definition: vector.h:672
JsonValueType
Definition: jsonvalue.h:15