mirror of
https://github.com/json-c/json-c.git
synced 2026-03-13 18:19:06 +08:00
Add includes and split off json_types.h to help ensure that headers can be included in any order.
This commit is contained in:
@@ -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*/
|
||||||
|
|||||||
78
json_types.h
Normal file
78
json_types.h
Normal file
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user