X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dbus%2Fdbus-connection.h;h=c8c66a39901a7e48ac0a9873bc1b02eb2c5b607a;hb=1e9b185b0c274ef0d684b1e43418388225321e72;hp=12ad0682fb1b9f386531d8f87320b779eff5ef1a;hpb=8d38a2e2c5dc95de992c4d856ec1b0c0948bca3e;p=platform%2Fupstream%2Fdbus.git diff --git a/dbus/dbus-connection.h b/dbus/dbus-connection.h index 12ad068..c8c66a3 100644 --- a/dbus/dbus-connection.h +++ b/dbus/dbus-connection.h @@ -3,7 +3,7 @@ * * Copyright (C) 2002, 2003 Red Hat Inc. * - * Licensed under the Academic Free License version 1.2 + * Licensed under the Academic Free License version 2.0 * * 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 @@ -30,12 +30,12 @@ #include #include #include +#include DBUS_BEGIN_DECLS; typedef struct DBusWatch DBusWatch; typedef struct DBusTimeout DBusTimeout; -typedef struct DBusMessageHandler DBusMessageHandler; typedef struct DBusPreallocatedSend DBusPreallocatedSend; typedef struct DBusPendingCall DBusPendingCall; typedef struct DBusConnection DBusConnection; @@ -59,13 +59,6 @@ typedef enum DBUS_DISPATCH_NEED_MEMORY /**< More memory is needed to continue. */ } DBusDispatchStatus; -typedef enum -{ - DBUS_HANDLER_RESULT_HANDLED, /**< Message has had its effect */ - DBUS_HANDLER_RESULT_NOT_YET_HANDLED, /**< Message has not had any effect */ - DBUS_HANDLER_RESULT_NEED_MEMORY /**< Need more memory to return another result */ -} DBusHandlerResult; - typedef dbus_bool_t (* DBusAddWatchFunction) (DBusWatch *watch, void *data); typedef void (* DBusWatchToggledFunction) (DBusWatch *watch, @@ -89,13 +82,20 @@ typedef dbus_bool_t (* DBusAllowUnixUserFunction) (DBusConnection *connection, typedef void (* DBusPendingCallNotifyFunction) (DBusPendingCall *pending, void *user_data); + +typedef DBusHandlerResult (* DBusHandleMessageFunction) (DBusConnection *connection, + DBusMessage *message, + void *user_data); + DBusConnection* dbus_connection_open (const char *address, DBusError *error); -void dbus_connection_ref (DBusConnection *connection); +DBusConnection* dbus_connection_ref (DBusConnection *connection); void dbus_connection_unref (DBusConnection *connection); void dbus_connection_disconnect (DBusConnection *connection); dbus_bool_t dbus_connection_get_is_connected (DBusConnection *connection); dbus_bool_t dbus_connection_get_is_authenticated (DBusConnection *connection); +void dbus_connection_set_exit_on_disconnect (DBusConnection *connection, + dbus_bool_t exit_on_disconnect); void dbus_connection_flush (DBusConnection *connection); DBusMessage* dbus_connection_borrow_message (DBusConnection *connection); void dbus_connection_return_message (DBusConnection *connection, @@ -138,6 +138,8 @@ void dbus_connection_set_dispatch_status_function (DBusConnection DBusFreeFunction free_data_function); dbus_bool_t dbus_connection_get_unix_user (DBusConnection *connection, unsigned long *uid); +dbus_bool_t dbus_connection_get_unix_process_id (DBusConnection *connection, + unsigned long *pid); void dbus_connection_set_unix_user_function (DBusConnection *connection, DBusAllowUnixUserFunction function, void *data, @@ -162,11 +164,16 @@ void dbus_timeout_set_data (DBusTimeout *timeout, dbus_bool_t dbus_timeout_handle (DBusTimeout *timeout); dbus_bool_t dbus_timeout_get_enabled (DBusTimeout *timeout); -/* Handlers */ -dbus_bool_t dbus_connection_add_filter (DBusConnection *connection, - DBusMessageHandler *handler); -void dbus_connection_remove_filter (DBusConnection *connection, - DBusMessageHandler *handler); +/* Filters */ + +dbus_bool_t dbus_connection_add_filter (DBusConnection *connection, + DBusHandleMessageFunction function, + void *user_data, + DBusFreeFunction free_data_function); +void dbus_connection_remove_filter (DBusConnection *connection, + DBusHandleMessageFunction function, + void *user_data); + /* Other */ dbus_bool_t dbus_connection_allocate_data_slot (dbus_int32_t *slot_p); @@ -200,30 +207,43 @@ void dbus_connection_send_preallocated (DBusConnection /* Object tree functionality */ typedef void (* DBusObjectPathUnregisterFunction) (DBusConnection *connection, - const char **path, void *user_data); typedef DBusHandlerResult (* DBusObjectPathMessageFunction) (DBusConnection *connection, DBusMessage *message, void *user_data); +/** + * Virtual table that must be implemented to handle a portion of the + * object path hierarchy. + */ struct DBusObjectPathVTable { - DBusObjectPathUnregisterFunction unregister_function; - DBusObjectPathMessageFunction message_function; + DBusObjectPathUnregisterFunction unregister_function; /**< Function to unregister this handler */ + DBusObjectPathMessageFunction message_function; /**< Function to handle messages */ - void (* dbus_internal_pad1) (void *); - void (* dbus_internal_pad2) (void *); - void (* dbus_internal_pad3) (void *); - void (* dbus_internal_pad4) (void *); + void (* dbus_internal_pad1) (void *); /**< Reserved for future expansion */ + void (* dbus_internal_pad2) (void *); /**< Reserved for future expansion */ + void (* dbus_internal_pad3) (void *); /**< Reserved for future expansion */ + void (* dbus_internal_pad4) (void *); /**< Reserved for future expansion */ }; dbus_bool_t dbus_connection_register_object_path (DBusConnection *connection, - const char **path, + const char *path, const DBusObjectPathVTable *vtable, void *user_data); -void dbus_connection_unregister_object_path (DBusConnection *connection, - const char **path); +dbus_bool_t dbus_connection_register_fallback (DBusConnection *connection, + const char *path, + const DBusObjectPathVTable *vtable, + void *user_data); +dbus_bool_t dbus_connection_unregister_object_path (DBusConnection *connection, + const char *path); + +dbus_bool_t dbus_connection_list_registered (DBusConnection *connection, + const char *parent_path, + char ***child_entries); +dbus_bool_t dbus_connection_get_unix_fd (DBusConnection *connection, + int *fd); DBUS_END_DECLS;