libpurple/protocols/facebook/json.h

changeset 42187
fc241db9162d
parent 42186
637ba5491231
child 42188
04c0398f1046
--- a/libpurple/protocols/facebook/json.h	Wed Mar 29 23:21:45 2023 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,471 +0,0 @@
-/* purple
- *
- * Purple is the legal property of its developers, whose names are too numerous
- * to list here.  Please refer to the COPYRIGHT file distributed with this
- * source distribution.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111-1301  USA
- */
-
-#ifndef PURPLE_FACEBOOK_JSON_H
-#define PURPLE_FACEBOOK_JSON_H
-
-#include <glib.h>
-#include <json-glib/json-glib.h>
-
-#define FB_TYPE_JSON_VALUES  fb_json_values_get_type()
-
-/**
- * FB_JSON_ERROR:
- *
- * The #GQuark of the domain of JSON errors.
- */
-#define FB_JSON_ERROR  fb_json_error_quark()
-
-/**
- * FbJsonError:
- * @FB_JSON_ERROR_SUCCESS: There is no error.
- * @FB_JSON_ERROR_AMBIGUOUS: The node has ambiguous matches.
- * @FB_JSON_ERROR_GENERAL: General failure.
- * @FB_JSON_ERROR_NOMATCH: The node does not match anything.
- * @FB_JSON_ERROR_NULL: The node is of type NULL.
- * @FB_JSON_ERROR_TYPE: The node has an unexpected type.
- *
- * The error codes for the #FB_JSON_ERROR domain.
- */
-typedef enum
-{
-	FB_JSON_ERROR_SUCCESS = 0,
-	FB_JSON_ERROR_AMBIGUOUS,
-	FB_JSON_ERROR_GENERAL,
-	FB_JSON_ERROR_NOMATCH,
-	FB_JSON_ERROR_NULL,
-	FB_JSON_ERROR_TYPE
-} FbJsonError;
-
-/**
- * FbJsonType:
- * @FB_JSON_TYPE_NULL: An unknown value.
- * @FB_JSON_TYPE_BOOL: A boolean (#TRUE or #FALSE).
- * @FB_JSON_TYPE_DBL: A floating point number.
- * @FB_JSON_TYPE_INT: A signed integer.
- * @FB_JSON_TYPE_STR: A string.
- *
- * The JSON data types.
- */
-typedef enum
-{
-	FB_JSON_TYPE_NULL = 0,
-	FB_JSON_TYPE_BOOL = G_TYPE_BOOLEAN,
-	FB_JSON_TYPE_DBL = G_TYPE_DOUBLE,
-	FB_JSON_TYPE_INT = G_TYPE_INT64,
-	FB_JSON_TYPE_STR = G_TYPE_STRING
-} FbJsonType;
-
-G_DECLARE_FINAL_TYPE(FbJsonValues, fb_json_values, FB, JSON_VALUES,
-		GObject)
-
-/**
- * fb_json_error_quark:
- *
- * Gets the #GQuark of the domain of JSON errors.
- *
- * Returns: The #GQuark of the domain.
- */
-GQuark
-fb_json_error_quark(void);
-
-/**
- * fb_json_bldr_new:
- * @type: The starting #JsonNodeType.
- *
- * Creates a new #JsonBuilder. The starting #JsonNodeType is likely to
- * be #JSON_NODE_OBJECT. The returned #JsonBuilder should be freed with
- * #g_object_unref() when no longer needed. Optionally, instead of
- * freeing, the returned #JsonBuilder can be closed with
- * #fb_json_bldr_close().
- *
- * Returns: (transfer full): The new #JsonBuilder.
- */
-JsonBuilder *
-fb_json_bldr_new(JsonNodeType type);
-
-/**
- * fb_json_bldr_close:
- * @bldr: The #JsonBuilder.
- * @type: The ending #JsonNodeType.
- * @size: The return local for the size of the returned string.
- *
- * Closes the #JsonBuilder by returning a string representing the
- * #JsonBuilder. The ending #JsonNodeType is likely to be
- * #JSON_NODE_OBJECT. This calls #g_object_unref(). The returned
- * string should be freed with #g_free() when no longer needed.
- *
- * Returns: The string representation of the #JsonBuilder.
- */
-gchar *
-fb_json_bldr_close(JsonBuilder *bldr, JsonNodeType type, gsize *size);
-
-/**
- * fb_json_bldr_arr_begin:
- * @bldr: The #JsonBuilder.
- * @name: The member name or #NULL.
- *
- * Begins an array member in the #JsonBuilder.
- */
-void
-fb_json_bldr_arr_begin(JsonBuilder *bldr, const gchar *name);
-
-/**
- * fb_json_bldr_arr_end:
- * @bldr: The #JsonBuilder.
- *
- * Ends an array member in the #JsonBuilder.
- */
-void
-fb_json_bldr_arr_end(JsonBuilder *bldr);
-
-/**
- * fb_json_bldr_obj_begin:
- * @bldr: The #JsonBuilder.
- * @name: The member name or #NULL.
- *
- * Begins an object member in the #JsonBuilder.
- */
-void
-fb_json_bldr_obj_begin(JsonBuilder *bldr, const gchar *name);
-
-/**
- * fb_json_bldr_obj_end:
- * @bldr: The #JsonBuilder.
- *
- * Ends an array member in the #JsonBuilder.
- */
-void
-fb_json_bldr_obj_end(JsonBuilder *bldr);
-
-/**
- * fb_json_bldr_add_bool:
- * @bldr: The #JsonBuilder.
- * @name: The member name or #NULL.
- * @value: The value.
- *
- * Adds a boolean member to the #JsonBuilder.
- */
-void
-fb_json_bldr_add_bool(JsonBuilder *bldr, const gchar *name, gboolean value);
-
-/**
- * fb_json_bldr_add_dbl:
- * @bldr: The #JsonBuilder.
- * @name: The member name or #NULL.
- * @value: The value.
- *
- * Adds a floating point member to the #JsonBuilder.
- */
-void
-fb_json_bldr_add_dbl(JsonBuilder *bldr, const gchar *name, gdouble value);
-
-/**
- * fb_json_bldr_add_int:
- * @bldr: The #JsonBuilder.
- * @name: The member name or #NULL.
- * @value: The value.
- *
- * Adds an integer member to the #JsonBuilder.
- */
-void
-fb_json_bldr_add_int(JsonBuilder *bldr, const gchar *name, gint64 value);
-
-/**
- * fb_json_bldr_add_str:
- * @bldr: The #JsonBuilder.
- * @name: The member name or #NULL.
- * @value: The value.
- *
- * Adds a string member to the #JsonBuilder.
- */
-void
-fb_json_bldr_add_str(JsonBuilder *bldr, const gchar *name, const gchar *value);
-
-/**
- * fb_json_bldr_add_strf:
- * @bldr: The #JsonBuilder.
- * @name: The member name or #NULL.
- * @format: The format string literal.
- * @...: The arguments for @format.
- *
- * Adds a formatted string member to the #JsonBuilder.
- */
-void
-fb_json_bldr_add_strf(JsonBuilder *bldr, const gchar *name,
-                      const gchar *format, ...)
-                      G_GNUC_PRINTF(3, 4);
-
-/**
- * fb_json_node_new:
- * @data: The string JSON.
- * @size: The size of @json or -1 if null-terminated.
- * @error: The return location for the #GError or #NULL.
- *
- * Creates a new #JsonNode. The returned #JsonBuilder should be freed
- * wuth #json_node_free() when no longer needed.
- *
- * Returns: The new #JsonNode.
- */
-JsonNode *
-fb_json_node_new(const gchar *data, gssize size, GError **error);
-
-/**
- * fb_json_node_get:
- * @root: The root #JsonNode.
- * @expr: The #JsonPath expression.
- * @error: The return location for the #GError or #NULL.
- *
- * Gets a new #JsonNode value from a parent #JsonNode with a #JsonPath
- * expression. The returned #JsonNode should be freed with
- * #json_node_free() when no longer needed.
- *
- * Returns: The new #JsonNode.
- */
-JsonNode *
-fb_json_node_get(JsonNode *root, const gchar *expr, GError **error);
-
-/**
- * fb_json_node_get_nth:
- * @root: The root #JsonNode.
- * @n: The index number.
- *
- * Gets a #JsonNode value from a parent #JsonNode by index. The
- * returned #JsonNode should not be freed.
- *
- * Return: The #JsonNode.
- */
-JsonNode *
-fb_json_node_get_nth(JsonNode *root, guint n);
-
-/**
- * fb_json_node_get_arr:
- * @root: The root #JsonNode.
- * @expr: The #JsonPath expression.
- * @error: The return location for the #GError or #NULL.
- *
- * Gets a new #JsonArray value from a parent #JsonNode with a #JsonPath
- * expression. The returned #JsonArray should be freed with
- * #json_array_unref() when no longer needed.
- *
- * Returns: The new #JsonArray.
- */
-JsonArray *
-fb_json_node_get_arr(JsonNode *root, const gchar *expr, GError **error);
-
-/**
- * fb_json_node_get_bool:
- * @root: The root #JsonNode.
- * @expr: The #JsonPath expression.
- * @error: The return location for the #GError or #NULL.
- *
- * Gets a boolean value from a parent #JsonNode with a #JsonPath
- * expression.
- *
- * Returns: The boolean value.
- */
-gboolean
-fb_json_node_get_bool(JsonNode *root, const gchar *expr, GError **error);
-
-/**
- * fb_json_node_get_dbl:
- * @root: The root #JsonNode.
- * @expr: The #JsonPath expression.
- * @error: The return location for the #GError or #NULL.
- *
- * Gets a floating point value from a parent #JsonNode with a #JsonPath
- * expression.
- *
- * Returns: The floating point value.
- */
-gdouble
-fb_json_node_get_dbl(JsonNode *root, const gchar *expr, GError **error);
-
-/**
- * fb_json_node_get_int:
- * @root: The root #JsonNode.
- * @expr: The #JsonPath expression.
- * @error: The return location for the #GError or #NULL.
- *
- * Gets an integer value from a parent #JsonNode with a #JsonPath
- * expression.
- *
- * Returns: The integer value.
- */
-gint64
-fb_json_node_get_int(JsonNode *root, const gchar *expr, GError **error);
-
-/**
- * fb_json_node_get_str:
- * @root: The root #JsonNode.
- * @expr: The #JsonPath expression.
- * @error: The return location for the #GError or #NULL.
- *
- * Gets an string value from a parent #JsonNode with a #JsonPath
- * expression. The returned string should be freed with #g_free()
- * when no longer needed.
- *
- * Returns: The string value.
- */
-gchar *
-fb_json_node_get_str(JsonNode *root, const gchar *expr, GError **error);
-
-/**
- * fb_json_values_new:
- * @root: The root #JsonNode.
- *
- * Creates a new #FbJsonValues. The returned #FbJsonValues should be
- * freed with #g_object_unref when no longer needed.
- *
- * Returns: The new #FbJsonValues.
- */
-FbJsonValues *
-fb_json_values_new(JsonNode *root);
-
-/**
- * fb_json_values_add:
- * @values: The #FbJsonValues.
- * @type: The #FbJsonType.
- * @required: #TRUE if the node is required, otherwise #FALSE.
- * @expr: The #JsonPath expression.
- *
- * Adds a new #FbJsonValue to the #FbJsonValues.
- */
-void
-fb_json_values_add(FbJsonValues *values, FbJsonType type, gboolean required,
-                   const gchar *expr);
-
-/**
- * fb_json_values_get_root:
- * @values: The #FbJsonValues.
- *
- * Gets the current working root #JsonNode. This is either the current
- * array #JsonNode or the root #JsonNode. The returned #JsonNode should
- * not be freed.
- */
-JsonNode *
-fb_json_values_get_root(FbJsonValues *values);
-
-/**
- * fb_json_values_set_array:
- * @values: The #FbJsonValues.
- * @required: #TRUE if the node is required, otherwise #FALSE.
- * @expr: The #JsonPath expression.
- *
- * Sets the #JsonPath for an array to base all #FbJsonValue's off.
- */
-void
-fb_json_values_set_array(FbJsonValues *values, gboolean required,
-                         const gchar *expr);
-
-/**
- * fb_json_values_update:
- * @values: The #FbJsonValues.
- * @error: The return location for the #GError or #NULL.
- *
- * Updates the current working root. This should be called after all of
- * the #FbJsonValue's have been added with #fb_json_values_add(). If an
- * array was set with #fb_json_values_set_array(), then this should be
- * called in a while loop, until #FALSE is returned.
- *
- * Returns: #TRUE if the values were updated, otherwise #FALSE.
- */
-gboolean
-fb_json_values_update(FbJsonValues *values, GError **error);
-
-/**
- * fb_json_values_next:
- * @values: The #FbJsonValues.
- *
- * Gets the next #GValue from the #FbJsonValues. Before calling this
- * function, #fb_json_values_update() must be called.
- *
- * Returns: The #GValue.
- */
-const GValue *
-fb_json_values_next(FbJsonValues *values);
-
-/**
- * fb_json_values_next_bool:
- * @values: The #FbJsonValues.
- * @defval: The default value.
- *
- * Gets the next boolean value from the #FbJsonValues. Before calling
- * this function, #fb_json_values_update() must be called.
- *
- * Returns: The boolean value.
- */
-gboolean
-fb_json_values_next_bool(FbJsonValues *values, gboolean defval);
-
-/**
- * fb_json_values_next_dbl:
- * @values: The #FbJsonValues.
- * @defval: The default value.
- *
- * Gets the next floating point value from the #FbJsonValues. Before
- * calling this function, #fb_json_values_update() must be called.
- *
- * Returns: The floating point value.
- */
-gdouble
-fb_json_values_next_dbl(FbJsonValues *values, gdouble defval);
-
-/**
- * fb_json_values_next_int:
- * @values: The #FbJsonValues.
- * @defval: The default value.
- *
- * Gets the next integer value from the #FbJsonValues. Before calling
- * this function, #fb_json_values_update() must be called.
- *
- * Returns: The integer value.
- */
-gint64
-fb_json_values_next_int(FbJsonValues *values, gint64 defval);
-
-/**
- * fb_json_values_next_str:
- * @values: The #FbJsonValues.
- * @defval: The default value.
- *
- * Gets the next string value from the #FbJsonValues. Before calling
- * this function, #fb_json_values_update() must be called.
- *
- * Returns: The string value.
- */
-const gchar *
-fb_json_values_next_str(FbJsonValues *values, const gchar *defval);
-
-/**
- * fb_json_values_next_str_dup:
- * @values: The #FbJsonValues.
- * @defval: The default value.
- *
- * Gets the next duplicate string value from the #FbJsonValues. Before
- * calling this function, #fb_json_values_update() must be called.
- *
- * Returns: The duplicate string value.
- */
-gchar *
-fb_json_values_next_str_dup(FbJsonValues *values, const gchar *defval);
-
-#endif /* PURPLE_FACEBOOK_JSON_H */

mercurial