yajl_common.h

Common routines and macros used by other YAJL APIs.

Author

Lloyd Hilaiel

Defines

EPICS_YAJL_VERSION

YAJL API history in brief

This macro was not defined in the YAJL 1.0.12 version that was bundled with EPICS Base 3.15.0.1

  • Changes argument type for yajl_integer() from int to long long

  • Changes argument type for yajl_string() and yajl_map_key() from unsigned to size_t

  • Replacement of struct yajl_parser_config with yajl_config()

  • Replacement of yajl_parse_complete() with yajl_complete_parse()

This version adds support for JSON5 parsing and generation. The upstream YAJL repository is no longer being maintained and the original author no longer responds to messages, so while this code has been offered for merging into the upstream it is unlikely that will ever happen. The version number here is thus an EPICS-specific construct.

HAS_JSON5

A macro to make it easy to conditionally compile code that supports older releases.

YAJL_MAX_DEPTH

A limit used by the generator API, YAJL_MAX_DEPTH is the maximum depth to which arrays and maps may be nested.

YAJL_API

Marks a yajl routine for export from the DLL/shared library.

Typedefs

typedef void *(*yajl_malloc_func)(void *ctx, size_t sz)

Pointer to a malloc() function, supporting client overriding memory allocation routines

typedef void (*yajl_free_func)(void *ctx, void *ptr)

Pointer to a free() function, supporting client overriding memory allocation routines

typedef void *(*yajl_realloc_func)(void *ctx, void *ptr, size_t sz)

Pointer to a realloc() function which can resize an allocation.

struct yajl_alloc_funcs
#include <yajl_common.h>

A structure which can be passed to yajl_*_alloc() routines to allow the client to specify memory allocation functions to be used.

Public Members

yajl_malloc_func malloc

Pointer to a function that can allocate uninitialized memory.

yajl_realloc_func realloc

Pointer to a function that can resize memory allocations.

yajl_free_func free

Pointer to a function that can free memory allocated using the above realloc or malloc functions.

void *ctx

A context pointer that will be passed to above allocation routines.