summaryrefslogtreecommitdiff
path: root/libs/libjson/src/JSONWorker.h
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2015-06-16 08:07:27 +0000
committerGeorge Hazan <george.hazan@gmail.com>2015-06-16 08:07:27 +0000
commit0757c5684dc44f76308199954eca7ced4e9189b3 (patch)
tree237432394d4c057b217b083248572feadc9d336a /libs/libjson/src/JSONWorker.h
parentb4683d6856632c4fac0ad54b0b1e692661a41bca (diff)
libson separated from mir_core and moved to libs\
git-svn-id: http://svn.miranda-ng.org/main/trunk@14187 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'libs/libjson/src/JSONWorker.h')
-rw-r--r--libs/libjson/src/JSONWorker.h45
1 files changed, 45 insertions, 0 deletions
diff --git a/libs/libjson/src/JSONWorker.h b/libs/libjson/src/JSONWorker.h
new file mode 100644
index 0000000000..88c61f6b2d
--- /dev/null
+++ b/libs/libjson/src/JSONWorker.h
@@ -0,0 +1,45 @@
+#ifndef JSON_WORKER_H
+#define JSON_WORKER_H
+
+class LIBJSON_EXPORT JSONWorker
+{
+public:
+ static JSONNode parse(const json_string & json);
+ #ifdef JSON_VALIDATE
+ static JSONNode validate(const json_string & json);
+ #endif
+ #if defined JSON_DEBUG || defined JSON_SAFE
+ static json_char * RemoveWhiteSpace(const json_string & value_t, json_char & last);
+ #else
+ static json_char * RemoveWhiteSpace(const json_string & value_t);
+ #endif
+ static json_string RemoveWhiteSpaceAndComments(const json_string & value_t);
+
+ static void DoArray(const internalJSONNode * parent, const json_string & value_t);
+ static void DoNode(const internalJSONNode * parent, const json_string & value_t);
+
+ #ifdef JSON_LESS_MEMORY
+ #define NAME_ENCODED this, true
+ #define STRING_ENCODED this, false
+ static json_string FixString(const json_string & value_t, const internalJSONNode * flag, bool which);
+ #else
+ #define NAME_ENCODED _name_encoded
+ #define STRING_ENCODED _string_encoded
+ static json_string FixString(const json_string & value_t, bool & flag);
+ #endif
+ static json_string UnfixString(const json_string & value_t, bool flag);
+JSON_PRIVATE
+ static json_char Hex(const json_char * & pos);
+ static json_uchar UTF8(const json_char * & pos);
+ static json_char* UTF8_2(const json_char * & pos);
+ static json_string toUTF8(json_uchar p);
+ #ifdef JSON_UNICODE
+ static json_string UTF(const json_char * & pos);
+ static json_string toSurrogatePair(json_uchar pos);
+ #endif
+ static void SpecialChar(const json_char * & pos, json_string & res);
+ static size_t FindNextRelevant(json_char ch, const json_string & value_t, const size_t pos);
+ static void NewNode(const internalJSONNode * parent, const json_string & name, const json_string & value, bool array);
+};
+
+#endif