28 #ifndef _PURPLE_DBUS_BINDINGS_H_
29 #define _PURPLE_DBUS_BINDINGS_H_
31 #include <dbus/dbus.h>
32 #include <dbus/dbus-glib-lowlevel.h>
39 gint purple_dbus_pointer_to_id(gconstpointer node);
41 gint purple_dbus_pointer_to_id_error(gconstpointer ptr, DBusError *error);
42 gpointer purple_dbus_id_to_pointer_error(gint
id,
PurpleDBusType *type,
43 const char *
typename, DBusError *error);
45 #define NULLIFY(id) id = empty_to_null(id)
47 #define CHECK_ERROR(error) if (dbus_error_is_set(error)) return NULL;
49 #define PURPLE_DBUS_ID_TO_POINTER(ptr, id, type, error) \
51 ptr = (type*) purple_dbus_id_to_pointer_error \
52 (id, PURPLE_DBUS_TYPE(type), #type, error); \
57 #define PURPLE_DBUS_POINTER_TO_ID(id, ptr, error) \
59 id = purple_dbus_pointer_to_id_error(ptr,error); \
65 purple_dbus_message_get_args (DBusMessage *message,
70 purple_dbus_message_get_args_valist (DBusMessage *message,
76 purple_dbus_message_iter_get_args (DBusMessageIter *iter,
82 purple_dbus_message_iter_get_args_valist (DBusMessageIter *iter,
87 dbus_int32_t* purple_dbusify_GList(GList *list, gboolean free_memory,
89 dbus_int32_t* purple_dbusify_GSList(GSList *list, gboolean free_memory,
91 gpointer* purple_GList_to_array(GList *list, gboolean free_memory,
93 gpointer* purple_GSList_to_array(GSList *list, gboolean free_memory,
95 GHashTable *purple_dbus_iter_hash_table(DBusMessageIter *iter, DBusError *error);
97 const char* empty_to_null(
const char *str);
98 const char* null_to_empty(
const char *s);
102 const char *parameters;
103 DBusMessage* (*handler)(DBusMessage *request, DBusError *error);
108 DBusConnection *purple_dbus_get_connection(
void);
typedefG_BEGIN_DECLS struct _PurpleDBusType PurpleDBusType
Types of pointers are identified by the ADDRESS of a PurpleDbusType object.