Jamoma API  0.6.0.a19
JSONWorker.h
1 #ifndef JSON_WORKER_H
2 #define JSON_WORKER_H
3 
4 #include "JSONNode.h"
5 #include "JSONSharedString.h"
6 
7 class JSONWorker {
8 public:
9  static json_string RemoveWhiteSpaceAndComments(const json_string & value_t, bool escapeQuotes) json_nothrow json_read_priority;
10  static json_char * RemoveWhiteSpaceAndCommentsC(const json_string & value_t, bool escapeQuotes) json_nothrow json_read_priority;
11 
12  #ifdef JSON_READ_PRIORITY
13  static JSONNode parse(const json_string & json) json_throws(std::invalid_argument) json_read_priority;
14  static JSONNode parse_unformatted(const json_string & json) json_throws(std::invalid_argument) json_read_priority;
15 
16  static JSONNode _parse_unformatted(const json_char * json, const json_char * const end) json_throws(std::invalid_argument) json_read_priority;
17 
18  static json_char * RemoveWhiteSpace(const json_string & value_t, size_t & len, bool escapeQuotes) json_nothrow json_read_priority;
19 
20  static void DoArray(const internalJSONNode * parent, const json_string & value_t) json_nothrow json_read_priority;
21  static void DoNode(const internalJSONNode * parent, const json_string & value_t) json_nothrow json_read_priority;
22 
23  #ifdef JSON_LESS_MEMORY
24  #define NAME_ENCODED this, true
25  #define STRING_ENCODED this, false
26  static json_string FixString(const json_string & value_t, const internalJSONNode * flag, bool which) json_nothrow json_read_priority;
27  #else
28  #define NAME_ENCODED _name_encoded
29  #define STRING_ENCODED _string_encoded
30  static json_string FixString(const json_string & value_t, bool & flag) json_nothrow json_read_priority;
31  #endif
32  #endif
33 
34  #if defined(JSON_READ_PRIORITY) || defined(JSON_STREAM)
35  #if (JSON_READ_PRIORITY == HIGH) && (!(defined(JSON_LESS_MEMORY)))
36  template<json_char ch>
37  static size_t FindNextRelevant(const json_string & value_t, const size_t pos) json_nothrow json_read_priority;
38  #else
39  static size_t FindNextRelevant(json_char ch, const json_string & value_t, const size_t pos) json_nothrow json_read_priority;
40  #endif
41  #endif
42  static void UnfixString(const json_string & value_t, bool flag, json_string & res) json_nothrow;
43 JSON_PRIVATE
44  #ifdef JSON_READ_PRIORITY
45  static json_char Hex(const json_char * & pos) json_nothrow;
46  static json_uchar UTF8(const json_char * & pos, const json_char * const end) json_nothrow;
47  #endif
48  #ifdef JSON_ESCAPE_WRITES
49  static json_string toUTF8(json_uchar p) json_nothrow;
50  #endif
51  #ifdef JSON_UNICODE
52  static void UTF(const json_char * & pos, json_string & result, const json_char * const end) json_nothrow;
53  #ifdef JSON_ESCAPE_WRITES
54  static json_string toSurrogatePair(json_uchar pos) json_nothrow;
55  #endif
56  #endif
57  #ifdef JSON_READ_PRIORITY
58  static void SpecialChar(const json_char * & pos, const json_char * const end, json_string & res) json_nothrow;
59  static void NewNode(const internalJSONNode * parent, const json_string & name, const json_string & value, bool array) json_nothrow;
60  #endif
61 private:
62  JSONWorker(void);
63 };
64 
65 #endif
STL namespace.