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

implementation details for DBusTimeout More...

Data Structures

struct  DBusTimeout
 Internals of DBusTimeout. More...
struct  DBusTimeoutList
 DBusTimeoutList implementation details. More...

Typedefs

typedef struct DBusTimeoutList DBusTimeoutList
 Opaque data type representing a list of timeouts and a set of DBusAddTimeoutFunction/DBusRemoveTimeoutFunction.
typedef dbus_bool_t(* DBusTimeoutHandler )(void *data)
 function to run when the timeout is handled

Functions

DBusTimeout_dbus_timeout_new (int interval, DBusTimeoutHandler handler, void *data, DBusFreeFunction free_data_function)
 Creates a new DBusTimeout, enabled by default.
DBusTimeout_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

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 38 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.

Referenced by _dbus_connection_add_timeout_unlocked(), and _dbus_server_add_timeout().

void _dbus_timeout_list_free ( DBusTimeoutList timeout_list  ) 

Frees a DBusTimeoutList.

Parameters:
timeout_list the timeout list.

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.

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.

Referenced by _dbus_connection_remove_timeout_unlocked(), 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
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

Referenced by _dbus_connection_toggle_timeout_unlocked(), 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,

Referenced by _dbus_pending_call_new_unlocked().

DBusTimeout * _dbus_timeout_ref ( DBusTimeout timeout  ) 

Increments the reference count of a DBusTimeout object.

Parameters:
timeout the timeout object.
Returns:
the timeout object.
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_unlocked() 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.
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_unlocked() etc.) to notify the application of this change.

Parameters:
timeout the timeout
interval the new interval
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.

Generated on 1 Sep 2011 for D-Bus by  doxygen 1.6.1