diff options
| author | Marcel Holtmann <marcel@holtmann.org> | 2008-05-08 22:19:14 +0000 | 
|---|---|---|
| committer | Marcel Holtmann <marcel@holtmann.org> | 2008-05-08 22:19:14 +0000 | 
| commit | 15ea15b3a752f0487bc50d0ea04925f1b9d33dcb (patch) | |
| tree | 1ec75fe77a089c0678bdbc24d7ad2bd85a6fa1c9 /gdbus/gdbus.h | |
| parent | e7d668ac9e813bc9922ee7d771848bd8822d5d1f (diff) | |
Move D-Bus object and interface helpers into libgdbus
Diffstat (limited to 'gdbus/gdbus.h')
| -rw-r--r-- | gdbus/gdbus.h | 82 | 
1 files changed, 82 insertions, 0 deletions
| diff --git a/gdbus/gdbus.h b/gdbus/gdbus.h index d1902a52..d8382306 100644 --- a/gdbus/gdbus.h +++ b/gdbus/gdbus.h @@ -40,6 +40,88 @@ gboolean g_dbus_set_disconnect_function(DBusConnection *connection,  				GDBusDisconnectFunction function,  				void *user_data, DBusFreeFunction destroy); +#define DBUS_TYPE_STRING_ARRAY_AS_STRING (DBUS_TYPE_ARRAY_AS_STRING DBUS_TYPE_STRING_AS_STRING) +#define DBUS_TYPE_BYTE_ARRAY_AS_STRING   (DBUS_TYPE_ARRAY_AS_STRING DBUS_TYPE_BYTE_AS_STRING) + +DBusHandlerResult dbus_connection_send_and_unref(DBusConnection *connection, +							DBusMessage *message); + +dbus_bool_t dbus_connection_create_object_path(DBusConnection *connection, +					const char *path, void *user_data, +					DBusObjectPathUnregisterFunction function); + +dbus_bool_t dbus_connection_destroy_object_path(DBusConnection *connection, +							const char *path); + +dbus_bool_t dbus_connection_get_object_user_data(DBusConnection *connection, +							const char *path, +							void **data_p); + +typedef struct DBusMethodVTable DBusMethodVTable; + +struct DBusMethodVTable { +	const char *name; +	DBusObjectPathMessageFunction message_function; +	const char *signature; +	const char *reply; +}; + +typedef struct DBusSignalVTable DBusSignalVTable; + +struct DBusSignalVTable { +	const char *name; +	const char *signature; +}; + +typedef struct DBusPropertyVTable DBusPropertyVTable; + +struct DBusPropertyVTable { +	const char *name; +}; + +dbus_bool_t dbus_connection_register_interface(DBusConnection *connection, +					const char *path, const char *name, +					DBusMethodVTable *methods, +					DBusSignalVTable *signals, +					DBusPropertyVTable *properties); + +dbus_bool_t dbus_connection_unregister_interface(DBusConnection *connection, +					const char *path, const char *name); +void dbus_message_iter_append_variant(DBusMessageIter *iter, int type, void *val); +void dbus_message_iter_append_dict_entry(DBusMessageIter *dict, +					const char *key, int type, void *val); +void dbus_message_iter_append_dict_valist(DBusMessageIter *iter, +					const char *first_key, +					va_list var_args); +void dbus_message_iter_append_dict(DBusMessageIter *iter, +					const char *first_key, ...); +dbus_bool_t dbus_connection_emit_signal(DBusConnection *conn, const char *path, +					const char *interface, const char *name, +					int first, ...); + +dbus_bool_t dbus_connection_emit_signal_valist(DBusConnection *conn, +						const char *path, +						const char *interface, +						const char *name, +						int first, +						va_list var_args); +dbus_bool_t dbus_connection_emit_property_changed(DBusConnection *conn, +						const char *path, +						const char *interface, +						const char *name, +						int type, void *value); + +static inline DBusHandlerResult send_message_and_unref(DBusConnection *conn, +							DBusMessage *msg) +{ +	if (msg) { +		dbus_connection_send(conn, msg, NULL); +		dbus_message_unref(msg); +	} + +	return DBUS_HANDLER_RESULT_HANDLED; +} +  typedef void (*name_cb_t)(const char *name, void *user_data);  guint name_listener_add(DBusConnection *connection, const char *name, | 
