Main Page   Modules   Data Structures   File List   Data Fields   Related Pages  

DBusTimeout implementation details
[D-BUS internal implementation details]

implementation details for DBusTimeout More...

Data Structures

struct  DBusTimeout
struct  DBusTimeoutList
 DBusTimeoutList implementation details. More...


Typedefs

typedef DBusTimeoutList DBusTimeoutList
 Opaque data type representing a list of timeouts and a set of DBusAddTimeoutFunction/DBusRemoveTimeoutFunction.


Functions

DBusTimeout_dbus_timeout_new (int interval, DBusTimeoutHandler handler, void *data, DBusFreeFunction free_data_function)
 Creates a new DBusTimeout, enabled by default.

void _dbus_timeout_ref (DBusTimeout *timeout)
 Increments the reference count of a DBusTimeout object.

void _dbus_timeout_unref (DBusTimeout *timeout)
 Decrements the reference count of a DBusTimeout object and finalizes the object if the count reaches zero.

void _dbus_timeout_set_interval (DBusTimeout *timeout, int interval)
 Changes the timeout interval.

void _dbus_timeout_set_enabled (DBusTimeout *timeout, dbus_bool_t enabled)
 Changes the timeout's enabled-ness.

DBusTimeoutList_dbus_timeout_list_new (void)
 Creates a new timeout list.

void _dbus_timeout_list_free (DBusTimeoutList *timeout_list)
 Frees a DBusTimeoutList.

dbus_bool_t _dbus_timeout_list_set_functions (DBusTimeoutList *timeout_list, DBusAddTimeoutFunction add_function, DBusRemoveTimeoutFunction remove_function, DBusTimeoutToggledFunction toggled_function, void *data, DBusFreeFunction free_data_function)
 Sets the timeout functions.

dbus_bool_t _dbus_timeout_list_add_timeout (DBusTimeoutList *timeout_list, DBusTimeout *timeout)
 Adds a new timeout to the timeout list, invoking the application DBusAddTimeoutFunction if appropriate.

void _dbus_timeout_list_remove_timeout (DBusTimeoutList *timeout_list, DBusTimeout *timeout)
 Removes a timeout from the timeout list, invoking the application's DBusRemoveTimeoutFunction if appropriate.

void _dbus_timeout_list_toggle_timeout (DBusTimeoutList *timeout_list, DBusTimeout *timeout, dbus_bool_t enabled)
 Sets a timeout to the given enabled state, invoking the application's DBusTimeoutToggledFunction if appropriate.


Detailed Description

implementation details for DBusTimeout


Typedef Documentation

DBusTimeoutList
 

Opaque data type representing a list of timeouts and a set of DBusAddTimeoutFunction/DBusRemoveTimeoutFunction.

Automatically handles removing/re-adding timeouts when the DBusAddTimeoutFunction is updated or changed. Holds a reference count to each timeout.

Definition at line 31 of file dbus-timeout.h.


Function Documentation

dbus_bool_t _dbus_timeout_list_add_timeout DBusTimeoutList   timeout_list,
DBusTimeout   timeout
 

Adds a new timeout to the timeout list, invoking the application DBusAddTimeoutFunction if appropriate.

Parameters:
timeout_list the timeout list.
timeout the timeout to add.
Returns:
TRUE on success, FALSE If no memory.

Definition at line 303 of file dbus-timeout.c.

References _dbus_list_append(), _dbus_list_remove_last(), _dbus_timeout_ref(), _dbus_timeout_unref(), DBusTimeoutList::add_timeout_function, FALSE, NULL, DBusTimeoutList::timeout_data, DBusTimeoutList::timeouts, and TRUE.

Referenced by _dbus_connection_add_timeout(), and _dbus_server_add_timeout().

void _dbus_timeout_list_free DBusTimeoutList   timeout_list
 

Frees a DBusTimeoutList.

Parameters:
timeout_list the timeout list.

Definition at line 204 of file dbus-timeout.c.

References _dbus_list_clear(), _dbus_list_foreach(), _dbus_timeout_list_set_functions(), dbus_free(), and DBusTimeoutList::timeouts.

Referenced by _dbus_connection_new_for_transport(), _dbus_server_finalize_base(), and _dbus_server_init_base().

DBusTimeoutList* _dbus_timeout_list_new void   
 

Creates a new timeout list.

Returns NULL if insufficient memory exists.

Returns:
the new timeout list, or NULL on failure.

Definition at line 187 of file dbus-timeout.c.

References dbus_new0, and NULL.

Referenced by _dbus_connection_new_for_transport(), and _dbus_server_init_base().

void _dbus_timeout_list_remove_timeout DBusTimeoutList   timeout_list,
DBusTimeout   timeout
 

Removes a timeout from the timeout list, invoking the application's DBusRemoveTimeoutFunction if appropriate.

Parameters:
timeout_list the timeout list.
timeout the timeout to remove.

Definition at line 333 of file dbus-timeout.c.

References _dbus_assert_not_reached, _dbus_list_remove(), _dbus_timeout_unref(), NULL, DBusTimeoutList::remove_timeout_function, DBusTimeoutList::timeout_data, and DBusTimeoutList::timeouts.

Referenced by _dbus_connection_remove_timeout(), and _dbus_server_remove_timeout().

dbus_bool_t _dbus_timeout_list_set_functions DBusTimeoutList   timeout_list,
DBusAddTimeoutFunction    add_function,
DBusRemoveTimeoutFunction    remove_function,
DBusTimeoutToggledFunction    toggled_function,
void *    data,
DBusFreeFunction    free_data_function
 

Sets the timeout functions.

This function is the "backend" for dbus_connection_set_timeout_functions().

Parameters:
timeout_list the timeout list
add_function the add timeout function.
remove_function the remove timeout function.
toggled_function toggle notify function, or NULL
data the data for those functions.
free_data_function the function to free the data.
Returns:
FALSE if no memory

Definition at line 232 of file dbus-timeout.c.

References _dbus_list_foreach(), _dbus_list_get_first_link(), _dbus_list_get_next_link, DBusTimeoutList::add_timeout_function, DBusList::data, FALSE, NULL, DBusTimeoutList::remove_timeout_function, DBusTimeoutList::timeout_data, DBusTimeoutList::timeout_free_data_function, DBusTimeoutList::timeout_toggled_function, DBusTimeoutList::timeouts, and TRUE.

Referenced by _dbus_timeout_list_free(), dbus_connection_set_timeout_functions(), and dbus_server_set_timeout_functions().

void _dbus_timeout_list_toggle_timeout DBusTimeoutList   timeout_list,
DBusTimeout   timeout,
dbus_bool_t    enabled
 

Sets a timeout to the given enabled state, invoking the application's DBusTimeoutToggledFunction if appropriate.

Parameters:
timeout_list the timeout list.
timeout the timeout to toggle.
enabled TRUE to enable

Definition at line 355 of file dbus-timeout.c.

References NULL, DBusTimeoutList::timeout_data, and DBusTimeoutList::timeout_toggled_function.

Referenced by _dbus_connection_toggle_timeout(), and _dbus_server_toggle_timeout().

DBusTimeout* _dbus_timeout_new int    interval,
DBusTimeoutHandler    handler,
void *    data,
DBusFreeFunction    free_data_function
 

Creates a new DBusTimeout, enabled by default.

Parameters:
interval the timeout interval in milliseconds.
handler function to call when the timeout occurs.
data data to pass to the handler
free_data_function function to be called to free the data.
Returns:
the new DBusTimeout object,

Definition at line 59 of file dbus-timeout.c.

References dbus_new0, NULL, and TRUE.

Referenced by dbus_connection_send_with_reply().

void _dbus_timeout_ref DBusTimeout   timeout
 

Increments the reference count of a DBusTimeout object.

Parameters:
timeout the timeout object.

Definition at line 88 of file dbus-timeout.c.

Referenced by _dbus_timeout_list_add_timeout().

void _dbus_timeout_set_enabled DBusTimeout   timeout,
dbus_bool_t    enabled
 

Changes the timeout's enabled-ness.

Note that you should use _dbus_connection_toggle_timeout() etc. instead, if the timeout is passed out to an application main loop. i.e. you can't use this function in the D-BUS library, it's only used in the message bus daemon implementation.

Parameters:
timeout the timeout
enabled TRUE if timeout should be enabled.

Definition at line 146 of file dbus-timeout.c.

References FALSE.

void _dbus_timeout_set_interval DBusTimeout   timeout,
int    interval
 

Changes the timeout interval.

Note that you have to disable and re-enable the timeout using the timeout toggle function (_dbus_connection_toggle_timeout() etc.) to notify the application of this change.

Parameters:
timeout the timeout
interval the new interval

Definition at line 127 of file dbus-timeout.c.

References _dbus_assert.

void _dbus_timeout_unref DBusTimeout   timeout
 

Decrements the reference count of a DBusTimeout object and finalizes the object if the count reaches zero.

Parameters:
timeout the timeout object.

Definition at line 100 of file dbus-timeout.c.

References _dbus_assert, dbus_free(), and dbus_timeout_set_data().

Referenced by _dbus_timeout_list_add_timeout(), _dbus_timeout_list_remove_timeout(), and dbus_connection_send_with_reply().


Generated on Wed Oct 22 14:05:09 2003 for D-BUS by doxygen1.3-rc3