00001 /* 00002 * $Id: json_object_private.h,v 1.4 2006/01/26 02:16:28 mclark Exp $ 00003 * 00004 * Copyright (c) 2004, 2005 Metaparadigm Pte. Ltd. 00005 * Michael Clark <michael@metaparadigm.com> 00006 * 00007 * This library is free software; you can redistribute it and/or modify 00008 * it under the terms of the MIT license. See COPYING for details. 00009 * 00010 */ 00011 00012 #ifndef _json_object_private_h_ 00013 #define _json_object_private_h_ 00014 00015 #include "json_object.h" 00016 00017 typedef void (json_object_delete_fn)(struct json_object *o); 00018 typedef int (json_object_to_json_string_fn)(struct json_object *o, 00019 struct printbuf *pb); 00020 00021 struct json_object 00022 { 00023 enum json_type o_type; 00024 json_object_delete_fn *_delete; 00025 json_object_to_json_string_fn *_to_json_string; 00026 int _ref_count; 00027 struct printbuf *_pb; 00028 union data { 00029 boolean c_boolean; 00030 double c_double; 00031 int c_int; 00032 struct lh_table *c_object; 00033 struct array_list *c_array; 00034 char *c_string; 00035 } o; 00036 }; 00037 00038 /* CAW: added for ANSI C iteration correctness */ 00039 struct json_object_iter 00040 { 00041 char *key; 00042 struct json_object *val; 00043 struct lh_entry *entry; 00044 }; 00045 00046 #endif