summaryrefslogtreecommitdiff
path: root/plugins/json/Source/JSONDefs.h
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/json/Source/JSONDefs.h')
-rw-r--r--plugins/json/Source/JSONDefs.h81
1 files changed, 81 insertions, 0 deletions
diff --git a/plugins/json/Source/JSONDefs.h b/plugins/json/Source/JSONDefs.h
new file mode 100644
index 0000000000..3cc6a3be35
--- /dev/null
+++ b/plugins/json/Source/JSONDefs.h
@@ -0,0 +1,81 @@
+#ifndef JSONDEFS_H
+#define JSONDEFS_H
+
+/*
+ Defines all of the types of functions and various other definitions
+ that are used in C applications, this is very useful if dynamically loading
+ the library instead of linking.
+*/
+
+#include "../JSONOptions.h"
+
+#define JSON_NULL '\0'
+#define JSON_STRING '\1'
+#define JSON_NUMBER '\2'
+#define JSON_BOOL '\3'
+#define JSON_ARRAY '\4'
+#define JSON_NODE '\5'
+
+#ifdef __cplusplus
+ #include <string>
+#endif
+
+#ifdef JSON_UNICODE
+ #ifdef JSON_ISO_STRICT
+ #error, You can not use unicode under ISO Strict C++
+ #endif
+ #define json_char wchar_t
+ #ifdef __cplusplus
+ #include <cwchar> //need wide characters
+ typedef std::wstring json_string;
+ #else
+ #include <wchar.h> //need wide characters
+ #endif
+ #define JSON_TEXT(s) L ## s
+ #define json_strlen wcslen
+ #define json_strcmp wcscmp
+#else
+ #define json_char char
+ #ifdef __cplusplus
+ typedef std::string json_string;
+ #endif
+ #define JSON_TEXT(s) s
+ #define json_strlen strlen
+ #define json_strcmp strcmp
+#endif
+
+#ifdef JSON_LESS_MEMORY
+ #define BITS(x) :x //tells the compiler how many bits to use for a field
+ typedef float json_number;
+#else
+ #define BITS(x)
+ typedef double json_number;
+#endif
+
+#if defined JSON_DEBUG || defined JSON_SAFE
+ #ifdef JSON_LIBRARY
+ typedef void (*json_error_callback_t)(const json_char *);
+ #else
+ typedef void (*json_error_callback_t)(const json_string &);
+ #endif
+#endif
+
+#ifdef JSON_INDEX_TYPE
+ typedef JSON_INDEX_TYPE json_index_t;
+#else
+ typedef unsigned int json_index_t;
+#endif
+
+typedef void (*json_mutex_callback_t)(void *);
+typedef void (*json_free_t)(void *);
+#ifndef JSON_LIBRARY
+ typedef void * (*json_malloc_t)(size_t);
+ typedef void * (*json_realloc_t)(void *, size_t);
+#else
+ #define JSONNODE void //so that JSONNODE* is void*
+ typedef JSONNODE** JSONNODE_ITERATOR;
+ typedef void * (*json_malloc_t)(unsigned long);
+ typedef void * (*json_realloc_t)(void *, unsigned long);
+#endif
+
+#endif //JSONDEFS_H