blob: 5f66efcd339893bee47085023750c0b6a31c904f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
#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
#define json_uchar 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
#define json_uchar BYTE
#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
|