@@ -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) | ||||