GFBGraphConnectable

GFBGraphConnectable — Connectable interface for nodes

Synopsis

#include <gfbgraph/gfbgraph.h>

struct              GFBGraphConnectableInterface;
GHashTable *        gfbgraph_connectable_get_connection_post_params
                                                        (GFBGraphConnectable *self,
                                                         GType node_type);
GList *             gfbgraph_connectable_parse_connected_data
                                                        (GFBGraphConnectable *self,
                                                         const gchar *payload,
                                                         GError **error);
gboolean            gfbgraph_connectable_is_connectable_to
                                                        (GFBGraphConnectable *self,
                                                         GType node_type);
const gchar *       gfbgraph_connectable_get_connection_path
                                                        (GFBGraphConnectable *self,
                                                         GType node_type);
GList *             gfbgraph_connectable_default_parse_connected_data
                                                        (GFBGraphConnectable *self,
                                                         const gchar *payload,
                                                         GError **error);

Description

GFBGraphConnectable interface allow the connection between nodes. You can see the posible (not necesary implemented) connections in the section "Connections" in any node object in the Facebook Graph API documentation

Details

struct GFBGraphConnectableInterface

struct GFBGraphConnectableInterface {
        GTypeInterface parent;

        GHashTable *connections;

        GHashTable   *(*get_connection_post_params) (GFBGraphConnectable *self, GType node_type);
        GList        *(*parse_connected_data) (GFBGraphConnectable *self, const gchar *payload, GError **error);
};

gfbgraph_connectable_get_connection_post_params ()

GHashTable *        gfbgraph_connectable_get_connection_post_params
                                                        (GFBGraphConnectable *self,
                                                         GType node_type);

Get the params to be inserted in a request to the Facebook Graph API in order to append the node self to a node of type node_type.

self :

a GFBGraphConnectable.

node_type :

a GType, required a GFBGRAPH_TYPE_NODE or children.

Returns :

A string based GHashTable with the params and his values or NULL. [transfer full]

gfbgraph_connectable_parse_connected_data ()

GList *             gfbgraph_connectable_parse_connected_data
                                                        (GFBGraphConnectable *self,
                                                         const gchar *payload,
                                                         GError **error);

Parse the response contained in payload when a gfbgraph_node_get_connection_nodes() was executed.

self :

a GFBGraphConnectable.

payload :

a const gchar with the response string from the Facebook Graph API.

error :

a GError. [allow-none]

Returns :

a newly-allocated GList of GFBGraphNode created from the payload or NULL. [element-type GFBGraphNode][transfer full]

gfbgraph_connectable_is_connectable_to ()

gboolean            gfbgraph_connectable_is_connectable_to
                                                        (GFBGraphConnectable *self,
                                                         GType node_type);

Check if self object, normally a GFBGraphNode implementing the GFBGraphConnectable interface, has the possibility to be connected to another node of type node_type.

self :

a GFBGraphConnectable.

node_type :

a GType, required a GFBGRAPH_TYPE_NODE or children.

Returns :

TRUE in case that the self object can be connected to a node of type node_type, FALSE otherwise.

gfbgraph_connectable_get_connection_path ()

const gchar *       gfbgraph_connectable_get_connection_path
                                                        (GFBGraphConnectable *self,
                                                         GType node_type);

Get the Facebook Graph API function path to retrieve the nodes connected with node_type managed by the GFBGraphConnectable object.

self :

a GFBGraphConnectable.

node_type :

a GType, required a GFBGRAPH_TYPE_NODE or children.

Returns :

a const gchar with the function path or NULL. [transfer none]

gfbgraph_connectable_default_parse_connected_data ()

GList *             gfbgraph_connectable_default_parse_connected_data
                                                        (GFBGraphConnectable *self,
                                                         const gchar *payload,
                                                         GError **error);

In most cases, GFBGraphConnectable implementers can use this function in order to parse the response when a gfbgraph_node_get_connection_nodes() is executed and the gfbgraph_connectable_parse_connected_data() was called.

Normally, Facebook Graph API returns the connections in the same way, using JSON objects, with a root object called "data".

self :

a GFBGraphConnectable.

payload :

a const gchar with the response string from the Facebook Graph API.

error :

a GError or NULL. [allow-none]

Returns :

a newly-allocated GList of GFBGraphNode with the same GType as self. [element-type GFBGraphNode][transfer full]