1/* 2 * $Id: json_object_private.h,v 1.4 2006/01/26 02:16:28 mclark Exp $ 3 * 4 * Copyright (c) 2004, 2005 Metaparadigm Pte. Ltd. 5 * Michael Clark <michael@metaparadigm.com> 6 * 7 * This library is free software; you can redistribute it and/or modify 8 * it under the terms of the MIT license. See COPYING for details. 9 * 10 */ 11 12#ifndef _json_object_private_h_ 13#define _json_object_private_h_ 14 15#ifdef __cplusplus 16extern "C" { 17#endif 18 19typedef void (json_object_private_delete_fn)(struct json_object *o); 20 21struct json_object 22{ 23 enum json_type o_type; 24 json_object_private_delete_fn *_delete; 25 json_object_to_json_string_fn *_to_json_string; 26 int _ref_count; 27 struct printbuf *_pb; 28 union data { 29 json_bool c_boolean; 30 double c_double; 31 int64_t c_int64; 32 struct lh_table *c_object; 33 struct array_list *c_array; 34 struct { 35 char *str; 36 int len; 37 } c_string; 38 } o; 39 json_object_delete_fn *_user_delete; 40 void *_userdata; 41}; 42 43#ifdef __cplusplus 44} 45#endif 46 47#endif 48