/usr/include/json-glib-1.0/json-glib/json-gobject.h is in libjson-glib-dev 0.14.2-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 | /* json-gobject.h - JSON GObject integration
*
* This file is part of JSON-GLib
* Copyright (C) 2007 OpenedHand Ltd.
* Copyright (C) 2009 Intel Corp.
*
* 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:
* Emmanuele Bassi <ebassi@linux.intel.com>
*/
#ifndef __JSON_GOBJECT_H__
#define __JSON_GOBJECT_H__
#include <json-glib/json-types.h>
#include <glib-object.h>
G_BEGIN_DECLS
#define JSON_TYPE_SERIALIZABLE (json_serializable_get_type ())
#define JSON_SERIALIZABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), JSON_TYPE_SERIALIZABLE, JsonSerializable))
#define JSON_IS_SERIALIZABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), JSON_TYPE_SERIALIZABLE))
#define JSON_SERIALIZABLE_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), JSON_TYPE_SERIALIZABLE, JsonSerializableIface))
typedef struct _JsonSerializable JsonSerializable; /* dummy */
typedef struct _JsonSerializableIface JsonSerializableIface;
/**
* JsonSerializableIface:
* @serialize_property: virtual function for serializing a #GObject property
* into a #JsonNode
* @deserialize_property: virtual function for deserializing a #JsonNode
* into a #GObject property
* @find_property: virtual function for finding a property definition using
* its name
* @list_properties: virtual function for listing the installed property
* definitions
* @set_property: virtual function for setting a property
* @get_property: virtual function for getting a property
*
* Interface that allows serializing and deserializing #GObject<!-- -->s
* with properties storing complex data types. The json_serialize_gobject()
* function will check if the passed #GObject implements this interface,
* so it can also be used to override the default property serialization
* sequence.
*/
struct _JsonSerializableIface
{
/*< private >*/
GTypeInterface g_iface;
/*< public >*/
JsonNode *(* serialize_property) (JsonSerializable *serializable,
const gchar *property_name,
const GValue *value,
GParamSpec *pspec);
gboolean (* deserialize_property) (JsonSerializable *serializable,
const gchar *property_name,
GValue *value,
GParamSpec *pspec,
JsonNode *property_node);
GParamSpec * (* find_property) (JsonSerializable *serializable,
const char *name);
GParamSpec **(* list_properties) (JsonSerializable *serializable,
guint *n_pspecs);
void (* set_property) (JsonSerializable *serializable,
GParamSpec *pspec,
const GValue *value);
void (* get_property) (JsonSerializable *serializable,
GParamSpec *pspec,
GValue *value);
};
GType json_serializable_get_type (void) G_GNUC_CONST;
JsonNode *json_serializable_serialize_property (JsonSerializable *serializable,
const gchar *property_name,
const GValue *value,
GParamSpec *pspec);
gboolean json_serializable_deserialize_property (JsonSerializable *serializable,
const gchar *property_name,
GValue *value,
GParamSpec *pspec,
JsonNode *property_node);
GParamSpec * json_serializable_find_property (JsonSerializable *serializable,
const char *name);
GParamSpec ** json_serializable_list_properties (JsonSerializable *serializable,
guint *n_pspecs);
void json_serializable_set_property (JsonSerializable *serializable,
GParamSpec *pspec,
const GValue *value);
void json_serializable_get_property (JsonSerializable *serializable,
GParamSpec *pspec,
GValue *value);
JsonNode *json_serializable_default_serialize_property (JsonSerializable *serializable,
const gchar *property_name,
const GValue *value,
GParamSpec *pspec);
gboolean json_serializable_default_deserialize_property (JsonSerializable *serializable,
const gchar *property_name,
GValue *value,
GParamSpec *pspec,
JsonNode *property_node);
/**
* JsonBoxedSerializeFunc:
* @boxed: a #GBoxed
*
* Serializes the passed #GBoxed and stores it inside a #JsonNode
*
* Return value: the newly created #JsonNode
*
* Since: 0.10
*/
typedef JsonNode *(* JsonBoxedSerializeFunc) (gconstpointer boxed);
/**
* JsonBoxedDeserializeFunc:
* @node: a #JsonNode
*
* Deserializes the contents of the passed #JsonNode into a #GBoxed
*
* Return value: the newly created boxed type
*
* Since: 0.10
*/
typedef gpointer (* JsonBoxedDeserializeFunc) (JsonNode *node);
void json_boxed_register_serialize_func (GType gboxed_type,
JsonNodeType node_type,
JsonBoxedSerializeFunc serialize_func);
void json_boxed_register_deserialize_func (GType gboxed_type,
JsonNodeType node_type,
JsonBoxedDeserializeFunc deserialize_func);
gboolean json_boxed_can_serialize (GType gboxed_type,
JsonNodeType *node_type);
gboolean json_boxed_can_deserialize (GType gboxed_type,
JsonNodeType node_type);
JsonNode *json_boxed_serialize (GType gboxed_type,
gconstpointer boxed);
gpointer json_boxed_deserialize (GType gboxed_type,
JsonNode *node);
JsonNode *json_gobject_serialize (GObject *gobject);
GObject * json_gobject_deserialize (GType gtype,
JsonNode *node);
GObject * json_gobject_from_data (GType gtype,
const gchar *data,
gssize length,
GError **error);
gchar * json_gobject_to_data (GObject *gobject,
gsize *length);
#ifndef JSON_DISABLE_DEPRECATED
GObject * json_construct_gobject (GType gtype,
const gchar *data,
gsize length,
GError **error) G_GNUC_DEPRECATED;
gchar * json_serialize_gobject (GObject *gobject,
gsize *length) G_GNUC_MALLOC G_GNUC_DEPRECATED;
#endif /* JSON_DISABLE_DEPRECATED */
G_END_DECLS
#endif /* __JSON_GOBJECT_H__ */
|