diff options
author | George Hazan <george.hazan@gmail.com> | 2012-05-22 11:58:35 +0000 |
---|---|---|
committer | George Hazan <george.hazan@gmail.com> | 2012-05-22 11:58:35 +0000 |
commit | 37f2cac0981177aef291a3411c64c0494187cfbc (patch) | |
tree | 1ae9cbf1f0edb61e993f54599a8fa345dbb83f26 /plugins/json/Source/JSONWorker.h | |
parent | ad95ff6459f880b92dd2d00aba08adb22f487fbd (diff) |
JSON plugin
git-svn-id: http://svn.miranda-ng.org/main/trunk@128 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/json/Source/JSONWorker.h')
-rw-r--r-- | plugins/json/Source/JSONWorker.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/plugins/json/Source/JSONWorker.h b/plugins/json/Source/JSONWorker.h new file mode 100644 index 0000000000..373660743c --- /dev/null +++ b/plugins/json/Source/JSONWorker.h @@ -0,0 +1,46 @@ +#ifndef JSON_WORKER_H +#define JSON_WORKER_H + +#include "JSONNode.h" + +class 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 unsigned json_char UTF8(const json_char * & pos); + static json_char* UTF8_2(const json_char * & pos); + static json_string toUTF8(unsigned json_char p); + #ifdef JSON_UNICODE + static json_string UTF(const json_char * & pos); + static json_string toSurrogatePair(unsigned json_char 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 |