DBusServer implementation details
[D-Bus secret internal implementation details]

Implementation details of DBusServer. More...

Typedefs

typedef dbus_bool_t(*) DBusWatchAddFunction (DBusWatchList *list, DBusWatch *watch)
 Function to be called in protected_change_watch() with refcount held.
typedef void(*) DBusWatchRemoveFunction (DBusWatchList *list, DBusWatch *watch)
 Function to be called in protected_change_watch() with refcount held.
typedef void(*) DBusWatchToggleFunction (DBusWatchList *list, DBusWatch *watch, dbus_bool_t enabled)
 Function to be called in protected_change_watch() with refcount held.
typedef dbus_bool_t(*) DBusTimeoutAddFunction (DBusTimeoutList *list, DBusTimeout *timeout)
 Function to be called in protected_change_timeout() with refcount held.
typedef void(*) DBusTimeoutRemoveFunction (DBusTimeoutList *list, DBusTimeout *timeout)
 Function to be called in protected_change_timeout() with refcount held.
typedef void(*) DBusTimeoutToggleFunction (DBusTimeoutList *list, DBusTimeout *timeout, dbus_bool_t enabled)
 Function to be called in protected_change_timeout() with refcount held.

Functions

dbus_bool_t _dbus_server_init_base (DBusServer *server, const DBusServerVTable *vtable, const DBusString *address)
 Initializes the members of the DBusServer base class.
void _dbus_server_finalize_base (DBusServer *server)
 Finalizes the members of the DBusServer base class.
dbus_bool_t _dbus_server_add_watch (DBusServer *server, DBusWatch *watch)
 Adds a watch for this server, chaining out to application-provided watch handlers.
void _dbus_server_remove_watch (DBusServer *server, DBusWatch *watch)
 Removes a watch previously added with _dbus_server_remove_watch().
void _dbus_server_toggle_watch (DBusServer *server, DBusWatch *watch, dbus_bool_t enabled)
 Toggles a watch and notifies app via server's DBusWatchToggledFunction if available.
dbus_bool_t _dbus_server_add_timeout (DBusServer *server, DBusTimeout *timeout)
 Adds a timeout for this server, chaining out to application-provided timeout handlers.
void _dbus_server_remove_timeout (DBusServer *server, DBusTimeout *timeout)
 Removes a timeout previously added with _dbus_server_add_timeout().
void _dbus_server_toggle_timeout (DBusServer *server, DBusTimeout *timeout, dbus_bool_t enabled)
 Toggles a timeout and notifies app via server's DBusTimeoutToggledFunction if available.
void _dbus_server_ref_unlocked (DBusServer *server)
 Like dbus_server_ref() but does not acquire the lock (must already be held).
void _dbus_server_unref_unlocked (DBusServer *server)
 Like dbus_server_unref() but does not acquire the lock (must already be held).

Detailed Description

Implementation details of DBusServer.


Function Documentation

dbus_bool_t _dbus_server_add_timeout ( DBusServer server,
DBusTimeout timeout 
)

Adds a timeout for this server, chaining out to application-provided timeout handlers.

The timeout should be repeatedly handled with dbus_timeout_handle() at its given interval until it is removed.

Parameters:
server the server.
timeout the timeout to add.

Definition at line 381 of file dbus-server.c.

References _dbus_timeout_list_add_timeout(), FALSE, and NULL.

dbus_bool_t _dbus_server_add_watch ( DBusServer server,
DBusWatch watch 
)

Adds a watch for this server, chaining out to application-provided watch handlers.

Parameters:
server the server.
watch the watch to add.

Definition at line 263 of file dbus-server.c.

References _dbus_watch_list_add_watch(), FALSE, and NULL.

Referenced by _dbus_server_new_for_socket().

void _dbus_server_finalize_base ( DBusServer server  ) 

Finalizes the members of the DBusServer base class.

Chained up to by subclass finalizers.

Parameters:
server the server.

Definition at line 168 of file dbus-server.c.

References _dbus_assert, _dbus_data_slot_list_free(), _dbus_mutex_free_at_location(), _dbus_string_free(), _dbus_timeout_list_free(), _dbus_watch_list_free(), DBusServer::address, DBusServer::auth_mechanisms, dbus_free(), dbus_free_string_array(), dbus_server_set_new_connection_function(), DBusServer::disconnected, DBusServer::guid_hex, DBusServer::have_server_lock, DBusServer::mutex, NULL, DBusServer::slot_list, DBusServer::timeouts, and DBusServer::watches.

Referenced by _dbus_server_new_for_socket().

dbus_bool_t _dbus_server_init_base ( DBusServer server,
const DBusServerVTable vtable,
const DBusString address 
)

Initializes the members of the DBusServer base class.

Chained up to by subclass constructors.

Parameters:
server the server.
vtable the vtable for the subclass.
address the server's address
Returns:
TRUE on success.

Definition at line 96 of file dbus-server.c.

References _dbus_data_slot_list_init(), _dbus_generate_uuid(), _dbus_mutex_free_at_location(), _dbus_mutex_new_at_location(), _dbus_string_free(), _dbus_string_init(), _dbus_timeout_list_free(), _dbus_timeout_list_new(), _dbus_uuid_encode(), _dbus_watch_list_free(), _dbus_watch_list_new(), DBusServer::address, dbus_free(), FALSE, DBusServer::guid, DBusServer::guid_hex, DBusServer::mutex, NULL, DBusServer::refcount, DBusServer::slot_list, DBusServer::timeouts, TRUE, DBusAtomic::value, DBusServer::vtable, and DBusServer::watches.

Referenced by _dbus_server_new_for_socket().

void _dbus_server_ref_unlocked ( DBusServer server  ) 

Like dbus_server_ref() but does not acquire the lock (must already be held).

Parameters:
server the server.

Definition at line 432 of file dbus-server.c.

References _dbus_assert, _dbus_atomic_inc(), NULL, DBusServer::refcount, and DBusAtomic::value.

Referenced by dbus_server_disconnect().

void _dbus_server_remove_timeout ( DBusServer server,
DBusTimeout timeout 
)

Removes a timeout previously added with _dbus_server_add_timeout().

Parameters:
server the server.
timeout the timeout to remove.

Definition at line 396 of file dbus-server.c.

References _dbus_timeout_list_remove_timeout(), FALSE, and NULL.

void _dbus_server_remove_watch ( DBusServer server,
DBusWatch watch 
)

Removes a watch previously added with _dbus_server_remove_watch().

Parameters:
server the server.
watch the watch to remove.

Definition at line 279 of file dbus-server.c.

References _dbus_watch_list_remove_watch(), FALSE, and NULL.

void _dbus_server_toggle_timeout ( DBusServer server,
DBusTimeout timeout,
dbus_bool_t  enabled 
)

Toggles a timeout and notifies app via server's DBusTimeoutToggledFunction if available.

It's an error to call this function on a timeout that was not previously added.

Parameters:
server the server.
timeout the timeout to toggle.
enabled whether to enable or disable

Definition at line 415 of file dbus-server.c.

References _dbus_timeout_list_toggle_timeout(), and NULL.

void _dbus_server_toggle_watch ( DBusServer server,
DBusWatch watch,
dbus_bool_t  enabled 
)

Toggles a watch and notifies app via server's DBusWatchToggledFunction if available.

It's an error to call this function on a watch that was not previously added.

Parameters:
server the server.
watch the watch to toggle.
enabled whether to enable or disable

Definition at line 299 of file dbus-server.c.

References _dbus_assert, _dbus_watch_list_toggle_watch(), and NULL.

void _dbus_server_unref_unlocked ( DBusServer server  ) 

Like dbus_server_unref() but does not acquire the lock (must already be held).

Parameters:
server the server.

Definition at line 454 of file dbus-server.c.

References _dbus_assert, _dbus_atomic_dec(), DBusServer::disconnected, DBusServerVTable::finalize, NULL, DBusServer::refcount, DBusAtomic::value, and DBusServer::vtable.


Generated on Fri Sep 21 18:12:15 2007 for D-Bus by  doxygen 1.5.1