Blame json_object_private.h

Packit ea8578
/*
Packit ea8578
 * $Id: json_object_private.h,v 1.4 2006/01/26 02:16:28 mclark Exp $
Packit ea8578
 *
Packit ea8578
 * Copyright (c) 2004, 2005 Metaparadigm Pte. Ltd.
Packit ea8578
 * Michael Clark <michael@metaparadigm.com>
Packit ea8578
 *
Packit ea8578
 * This library is free software; you can redistribute it and/or modify
Packit ea8578
 * it under the terms of the MIT license. See COPYING for details.
Packit ea8578
 *
Packit ea8578
 */
Packit ea8578
Packit ea8578
/**
Packit ea8578
 * @file
Packit ea8578
 * @brief Do not use, json-c internal, may be changed or removed at any time.
Packit ea8578
 */
Packit ea8578
#ifndef _json_object_private_h_
Packit ea8578
#define _json_object_private_h_
Packit ea8578
Packit ea8578
#ifdef __cplusplus
Packit ea8578
extern "C" {
Packit ea8578
#endif
Packit ea8578
Packit ea8578
#define LEN_DIRECT_STRING_DATA 32 /**< how many bytes are directly stored in json_object for strings? */
Packit ea8578
Packit ea8578
typedef void (json_object_private_delete_fn)(struct json_object *o);
Packit ea8578
Packit ea8578
struct json_object
Packit ea8578
{
Packit ea8578
  enum json_type o_type;
Packit ea8578
  json_object_private_delete_fn *_delete;
Packit ea8578
  json_object_to_json_string_fn *_to_json_string;
Packit ea8578
  int _ref_count;
Packit ea8578
  struct printbuf *_pb;
Packit ea8578
  union data {
Packit ea8578
    json_bool c_boolean;
Packit ea8578
    double c_double;
Packit ea8578
    int64_t c_int64;
Packit ea8578
    struct lh_table *c_object;
Packit ea8578
    struct array_list *c_array;
Packit ea8578
    struct {
Packit ea8578
	union {
Packit ea8578
		/* optimize: if we have small strings, we can store them
Packit ea8578
		 * directly. This saves considerable CPU cycles AND memory.
Packit ea8578
		 */
Packit ea8578
		char *ptr;
Packit ea8578
		char data[LEN_DIRECT_STRING_DATA];
Packit ea8578
	} str;
Packit ea8578
        int len;
Packit ea8578
    } c_string;
Packit ea8578
  } o;
Packit ea8578
  json_object_delete_fn *_user_delete;
Packit ea8578
  void *_userdata;
Packit ea8578
};
Packit ea8578
Packit ea8578
void _json_c_set_last_err(const char *err_fmt, ...);
Packit ea8578
Packit ea8578
extern const char *json_number_chars;
Packit ea8578
extern const char *json_hex_chars;
Packit ea8578
Packit ea8578
#ifdef __cplusplus
Packit ea8578
}
Packit ea8578
#endif
Packit ea8578
Packit ea8578
#endif