| @@ -298,6 +298,7 @@ set(JSON_C_PUBLIC_HEADERS | |||||
| ${PROJECT_SOURCE_DIR}/json_object_iterator.h | ${PROJECT_SOURCE_DIR}/json_object_iterator.h | ||||
| ${PROJECT_SOURCE_DIR}/json_pointer.h | ${PROJECT_SOURCE_DIR}/json_pointer.h | ||||
| ${PROJECT_SOURCE_DIR}/json_tokener.h | ${PROJECT_SOURCE_DIR}/json_tokener.h | ||||
| ${PROJECT_SOURCE_DIR}/json_types.h | |||||
| ${PROJECT_SOURCE_DIR}/json_util.h | ${PROJECT_SOURCE_DIR}/json_util.h | ||||
| ${PROJECT_SOURCE_DIR}/json_visit.h | ${PROJECT_SOURCE_DIR}/json_visit.h | ||||
| ${PROJECT_SOURCE_DIR}/linkhash.h | ${PROJECT_SOURCE_DIR}/linkhash.h | ||||
| @@ -22,6 +22,8 @@ | |||||
| extern "C" { | extern "C" { | ||||
| #endif | #endif | ||||
| #include <stddef.h> | |||||
| #define ARRAY_LIST_DEFAULT_SIZE 32 | #define ARRAY_LIST_DEFAULT_SIZE 32 | ||||
| typedef void(array_list_free_fn)(void *data); | typedef void(array_list_free_fn)(void *data); | ||||
| @@ -33,16 +33,10 @@ | |||||
| #define JSON_C_CONST_FUNCTION(func) func | #define JSON_C_CONST_FUNCTION(func) func | ||||
| #endif | #endif | ||||
| #ifndef JSON_EXPORT | |||||
| #if defined(_MSC_VER) | |||||
| #define JSON_EXPORT __declspec(dllexport) | |||||
| #else | |||||
| #define JSON_EXPORT extern | |||||
| #endif | |||||
| #endif | |||||
| #include "json_inttypes.h" | #include "json_inttypes.h" | ||||
| #include "json_types.h" | |||||
| #include "printbuf.h" | #include "printbuf.h" | ||||
| #include <stddef.h> | #include <stddef.h> | ||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||
| @@ -136,50 +130,6 @@ extern "C" { | |||||
| */ | */ | ||||
| #define JSON_C_OPTION_THREAD (1) | #define JSON_C_OPTION_THREAD (1) | ||||
| /** | |||||
| * A structure to use with json_object_object_foreachC() loops. | |||||
| * Contains key, val and entry members. | |||||
| */ | |||||
| struct json_object_iter | |||||
| { | |||||
| char *key; | |||||
| struct json_object *val; | |||||
| struct lh_entry *entry; | |||||
| }; | |||||
| typedef struct json_object_iter json_object_iter; | |||||
| typedef int json_bool; | |||||
| /** | |||||
| * @brief The core type for all type of JSON objects handled by json-c | |||||
| */ | |||||
| typedef struct json_object json_object; | |||||
| /** | |||||
| * Type of custom user delete functions. See json_object_set_serializer. | |||||
| */ | |||||
| typedef void(json_object_delete_fn)(struct json_object *jso, void *userdata); | |||||
| /** | |||||
| * Type of a custom serialization function. See json_object_set_serializer. | |||||
| */ | |||||
| typedef int(json_object_to_json_string_fn)(struct json_object *jso, struct printbuf *pb, int level, | |||||
| int flags); | |||||
| /* supported object types */ | |||||
| typedef enum json_type | |||||
| { | |||||
| /* If you change this, be sure to update json_type_to_name() too */ | |||||
| json_type_null, | |||||
| json_type_boolean, | |||||
| json_type_double, | |||||
| json_type_int, | |||||
| json_type_object, | |||||
| json_type_array, | |||||
| json_type_string | |||||
| } json_type; | |||||
| /* reference counting functions */ | /* reference counting functions */ | ||||
| /** | /** | ||||
| @@ -23,16 +23,9 @@ | |||||
| #ifndef JSON_OBJECT_ITERATOR_H | #ifndef JSON_OBJECT_ITERATOR_H | ||||
| #define JSON_OBJECT_ITERATOR_H | #define JSON_OBJECT_ITERATOR_H | ||||
| #include "json_types.h" | |||||
| #include <stddef.h> | #include <stddef.h> | ||||
| #ifndef JSON_EXPORT | |||||
| #if defined(_MSC_VER) | |||||
| #define JSON_EXPORT __declspec(dllexport) | |||||
| #else | |||||
| #define JSON_EXPORT extern | |||||
| #endif | |||||
| #endif | |||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||
| extern "C" { | extern "C" { | ||||
| #endif | #endif | ||||
| @@ -23,6 +23,10 @@ extern "C" { | |||||
| /**< how many bytes are directly stored in json_object for strings? */ | /**< how many bytes are directly stored in json_object for strings? */ | ||||
| #define LEN_DIRECT_STRING_DATA 32 | #define LEN_DIRECT_STRING_DATA 32 | ||||
| struct json_object; | |||||
| #include "json_inttypes.h" | |||||
| #include "json_types.h" | |||||
| typedef void(json_object_private_delete_fn)(struct json_object *o); | typedef void(json_object_private_delete_fn)(struct json_object *o); | ||||
| /* json object int type, support extension*/ | /* json object int type, support extension*/ | ||||
| @@ -0,0 +1,78 @@ | |||||
| /* | |||||
| * Copyright (c) 2020 Eric Hawicz | |||||
| * | |||||
| * This library is free software; you can redistribute it and/or modify | |||||
| * it under the terms of the MIT license. See COPYING for details. | |||||
| */ | |||||
| #ifndef _json_types_h_ | |||||
| #define _json_types_h_ | |||||
| /** | |||||
| * @file | |||||
| * @brief Basic types used in a few places in json-c, but you should include "json_object.h" instead. | |||||
| */ | |||||
| #ifdef __cplusplus | |||||
| extern "C" { | |||||
| #endif | |||||
| #ifndef JSON_EXPORT | |||||
| #if defined(_MSC_VER) | |||||
| #define JSON_EXPORT __declspec(dllexport) | |||||
| #else | |||||
| #define JSON_EXPORT extern | |||||
| #endif | |||||
| #endif | |||||
| struct printbuf; | |||||
| /** | |||||
| * A structure to use with json_object_object_foreachC() loops. | |||||
| * Contains key, val and entry members. | |||||
| */ | |||||
| struct json_object_iter | |||||
| { | |||||
| char *key; | |||||
| struct json_object *val; | |||||
| struct lh_entry *entry; | |||||
| }; | |||||
| typedef struct json_object_iter json_object_iter; | |||||
| typedef int json_bool; | |||||
| /** | |||||
| * @brief The core type for all type of JSON objects handled by json-c | |||||
| */ | |||||
| typedef struct json_object json_object; | |||||
| /** | |||||
| * Type of custom user delete functions. See json_object_set_serializer. | |||||
| */ | |||||
| typedef void(json_object_delete_fn)(struct json_object *jso, void *userdata); | |||||
| /** | |||||
| * Type of a custom serialization function. See json_object_set_serializer. | |||||
| */ | |||||
| typedef int(json_object_to_json_string_fn)(struct json_object *jso, struct printbuf *pb, int level, | |||||
| int flags); | |||||
| /* supported object types */ | |||||
| typedef enum json_type | |||||
| { | |||||
| /* If you change this, be sure to update json_type_to_name() too */ | |||||
| json_type_null, | |||||
| json_type_boolean, | |||||
| json_type_double, | |||||
| json_type_int, | |||||
| json_type_object, | |||||
| json_type_array, | |||||
| json_type_string | |||||
| } json_type; | |||||
| #ifdef __cplusplus | |||||
| } | |||||
| #endif | |||||
| #endif | |||||
| @@ -6,6 +6,8 @@ | |||||
| * @brief Do not use, json-c internal, may be changed or removed at any time. | * @brief Do not use, json-c internal, may be changed or removed at any time. | ||||
| */ | */ | ||||
| #include "json_types.h" | |||||
| /* Used by tests to get consistent output */ | /* Used by tests to get consistent output */ | ||||
| JSON_EXPORT int _json_c_strerror_enable; | JSON_EXPORT int _json_c_strerror_enable; | ||||
| @@ -8,6 +8,8 @@ | |||||
| #include "snprintf_compat.h" | #include "snprintf_compat.h" | ||||
| #include <malloc.h> | |||||
| #if !defined(HAVE_VASPRINTF) | #if !defined(HAVE_VASPRINTF) | ||||
| /* CAW: compliant version of vasprintf */ | /* CAW: compliant version of vasprintf */ | ||||
| static int vasprintf(char **buf, const char *fmt, va_list ap) | static int vasprintf(char **buf, const char *fmt, va_list ap) | ||||