diff options
author | Luca Bruno <lethalman88@gmail.com> | 2010-06-09 21:31:06 +0200 |
---|---|---|
committer | Emmanuele Bassi <ebassi@linux.intel.com> | 2010-06-16 12:00:24 +0100 |
commit | 08f3073eeb0f7e2e0973abd23ba4ec978ad302d7 (patch) | |
tree | f8cb9170c11b60cf858fb24e4b70b414375f7a05 /json-glib/json-builder.h | |
parent | 3f8c8f99126dc1a70d847eded13afd4b64395250 (diff) | |
download | json-glib-08f3073eeb0f7e2e0973abd23ba4ec978ad302d7.tar.gz |
builder: Add convenience API for building JSON trees.
https://bugzilla.gnome.org/show_bug.cgi?id=621141
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
Diffstat (limited to 'json-glib/json-builder.h')
-rw-r--r-- | json-glib/json-builder.h | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/json-glib/json-builder.h b/json-glib/json-builder.h new file mode 100644 index 0000000..33b16ab --- /dev/null +++ b/json-glib/json-builder.h @@ -0,0 +1,100 @@ +/* json-builder.h: JSON tree builder + * + * This file is part of JSON-GLib + * Copyright (C) 2010 Luca Bruno <lethalman88@gmail.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + * + * Author: + * Luca Bruno <lethalman88@gmail.com> + */ + +#if !defined(__JSON_GLIB_INSIDE__) && !defined(JSON_COMPILATION) +#error "Only <json-glib/json-glib.h> can be included directly." +#endif + +#ifndef __JSON_BUILDER_H__ +#define __JSON_BUILDER_H__ + +#include <json-glib/json-types.h> + +G_BEGIN_DECLS + +#define JSON_TYPE_BUILDER (json_builder_get_type ()) +#define JSON_BUILDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSON_TYPE_BUILDER, JsonBuilder)) +#define JSON_IS_BUILDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSON_TYPE_BUILDER)) +#define JSON_BUILDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), JSON_TYPE_BUILDER, JsonBuilderClass)) +#define JSON_IS_BUILDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), JSON_TYPE_BUILDER)) +#define JSON_BUILDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), JSON_TYPE_BUILDER, JsonBuilderClass)) + +typedef struct _JsonBuilder JsonBuilder; +typedef struct _JsonBuilderPrivate JsonBuilderPrivate; +typedef struct _JsonBuilderClass JsonBuilderClass; + +/** + * JsonBuilder: + * + * JSON tree builder. + */ +struct _JsonBuilder +{ + /*< private >*/ + GObject parent_instance; + + JsonBuilderPrivate *priv; +}; + +/** + * JsonBuilderClass: + * + * #JsonBuilder class + */ +struct _JsonBuilderClass +{ + /*< private >*/ + GObjectClass parent_class; + + /* padding, for future expansion */ + void (* _json_reserved1) (void); + void (* _json_reserved2) (void); +}; + +GType json_builder_get_type (void) G_GNUC_CONST; + +JsonBuilder *json_builder_new (void); +JsonNode *json_builder_get_root (JsonBuilder *builder); +void json_builder_reset (JsonBuilder *builder); + +JsonBuilder *json_builder_begin_array (JsonBuilder *builder); +JsonBuilder *json_builder_end_array (JsonBuilder *builder); +JsonBuilder *json_builder_begin_object (JsonBuilder *builder); +JsonBuilder *json_builder_end_object (JsonBuilder *builder); + +JsonBuilder *json_builder_set_member_name (JsonBuilder *builder, + const gchar *member_name); +JsonBuilder *json_builder_add_value (JsonBuilder *builder, + JsonNode *node); +JsonBuilder *json_builder_add_int_value (JsonBuilder *builder, + gint64 value); +JsonBuilder *json_builder_add_double_value (JsonBuilder *builder, + gdouble value); +JsonBuilder *json_builder_add_boolean_value (JsonBuilder *builder, + gboolean value); +JsonBuilder *json_builder_add_string_value (JsonBuilder *builder, + const gchar *value); +JsonBuilder *json_builder_add_null_value (JsonBuilder *builder); + +G_END_DECLS + +#endif /* __JSON_BUILDER_H__ */ |