DBusPendingCall implementation details
[D-Bus internal implementation details]

DBusPendingCall private implementation details. More...

Data Structures

struct  DBusPendingCall

Defines

#define CONNECTION_LOCK(connection)   _dbus_connection_lock(connection)
 Internals of DBusPendingCall.
#define CONNECTION_UNLOCK(connection)   _dbus_connection_unlock(connection)

Functions

DBusPendingCall_dbus_pending_call_new_unlocked (DBusConnection *connection, int timeout_milliseconds, DBusTimeoutHandler timeout_handler)
 Creates a new pending reply object.
void _dbus_pending_call_set_reply_unlocked (DBusPendingCall *pending, DBusMessage *message)
 Sets the reply of a pending call with the given message, or if the message is NULL, by timing out the pending call.
void _dbus_pending_call_complete (DBusPendingCall *pending)
 Calls notifier function for the pending call and sets the call to completed.
void _dbus_pending_call_queue_timeout_error_unlocked (DBusPendingCall *pending, DBusConnection *connection)
dbus_bool_t _dbus_pending_call_is_timeout_added_unlocked (DBusPendingCall *pending)
 Checks to see if a timeout has been added.
void _dbus_pending_call_set_timeout_added_unlocked (DBusPendingCall *pending, dbus_bool_t is_added)
 Sets wether the timeout has been added.
DBusTimeout_dbus_pending_call_get_timeout_unlocked (DBusPendingCall *pending)
 Retrives the timeout.
dbus_uint32_t _dbus_pending_call_get_reply_serial_unlocked (DBusPendingCall *pending)
 Gets the reply's serial number.
void _dbus_pending_call_set_reply_serial_unlocked (DBusPendingCall *pending, dbus_uint32_t serial)
 Sets the reply's serial number.
DBusConnection_dbus_pending_call_get_connection_and_lock (DBusPendingCall *pending)
 Gets the connection associated with this pending call.
DBusConnection_dbus_pending_call_get_connection_unlocked (DBusPendingCall *pending)
 Gets the connection associated with this pending call.
dbus_bool_t _dbus_pending_call_set_timeout_error_unlocked (DBusPendingCall *pending, DBusMessage *message, dbus_uint32_t serial)
 Sets the reply message associated with the pending call to a timeout error.

Detailed Description

DBusPendingCall private implementation details.

The guts of DBusPendingCall and its methods.


Define Documentation

#define CONNECTION_LOCK ( connection   )     _dbus_connection_lock(connection)

Internals of DBusPendingCall.

Opaque object representing a reply message that we're waiting for.

Definition at line 47 of file dbus-pending-call.c.

Referenced by _dbus_connection_block_pending_call(), _dbus_connection_close_internal(), _dbus_connection_handle_watch(), _dbus_connection_lock(), _dbus_connection_new_for_transport(), _dbus_connection_remove_pending_call(), _dbus_pending_call_get_connection_and_lock(), _dbus_pending_call_set_data_unlocked(), dbus_connection_add_filter(), dbus_connection_borrow_message(), dbus_connection_close(), dbus_connection_dispatch(), dbus_connection_flush(), dbus_connection_get_data(), dbus_connection_get_dispatch_status(), dbus_connection_get_is_authenticated(), dbus_connection_get_is_connected(), dbus_connection_get_max_message_size(), dbus_connection_get_max_received_size(), dbus_connection_get_object_path_data(), dbus_connection_get_outgoing_size(), dbus_connection_get_unix_fd(), dbus_connection_get_unix_process_id(), dbus_connection_get_unix_user(), dbus_connection_has_messages_to_send(), dbus_connection_list_registered(), dbus_connection_pop_message(), dbus_connection_preallocate_send(), dbus_connection_ref(), dbus_connection_register_fallback(), dbus_connection_register_object_path(), dbus_connection_remove_filter(), dbus_connection_return_message(), dbus_connection_send(), dbus_connection_send_preallocated(), dbus_connection_send_with_reply(), dbus_connection_set_data(), dbus_connection_set_dispatch_status_function(), dbus_connection_set_exit_on_disconnect(), dbus_connection_set_max_message_size(), dbus_connection_set_max_received_size(), dbus_connection_set_timeout_functions(), dbus_connection_set_unix_user_function(), dbus_connection_set_wakeup_main_function(), dbus_connection_set_watch_functions(), dbus_connection_steal_borrowed_message(), dbus_connection_unref(), dbus_connection_unregister_object_path(), dbus_pending_call_get_completed(), dbus_pending_call_get_data(), dbus_pending_call_ref(), dbus_pending_call_set_data(), dbus_pending_call_set_notify(), dbus_pending_call_steal_reply(), and dbus_pending_call_unref().


Function Documentation

void _dbus_pending_call_complete ( DBusPendingCall pending  ) 

Calls notifier function for the pending call and sets the call to completed.

Parameters:
pending the pending call

Definition at line 176 of file dbus-pending-call.c.

References _dbus_assert, DBusPendingCall::completed, dbus_pending_call_get_data(), DBusPendingCall::function, and TRUE.

DBusConnection* _dbus_pending_call_get_connection_and_lock ( DBusPendingCall pending  ) 

Gets the connection associated with this pending call.

Parameters:
pending the pending_call
Returns:
the connection associated with the pending call

Definition at line 288 of file dbus-pending-call.c.

References _dbus_assert, DBusPendingCall::connection, CONNECTION_LOCK, and NULL.

Referenced by _dbus_connection_block_pending_call().

DBusConnection* _dbus_pending_call_get_connection_unlocked ( DBusPendingCall pending  ) 

Gets the connection associated with this pending call.

Parameters:
pending the pending_call
Returns:
the connection associated with the pending call

Definition at line 303 of file dbus-pending-call.c.

References _dbus_assert, DBusPendingCall::connection, and NULL.

dbus_uint32_t _dbus_pending_call_get_reply_serial_unlocked ( DBusPendingCall pending  ) 

Gets the reply's serial number.

Parameters:
pending the pending_call
Returns:
a serial number for the reply or 0

Definition at line 258 of file dbus-pending-call.c.

References _dbus_assert, NULL, and DBusPendingCall::reply_serial.

Referenced by _dbus_connection_block_pending_call().

DBusTimeout* _dbus_pending_call_get_timeout_unlocked ( DBusPendingCall pending  ) 

Retrives the timeout.

Parameters:
pending the pending_call
Returns:
a timeout object

Definition at line 244 of file dbus-pending-call.c.

References _dbus_assert, NULL, and DBusPendingCall::timeout.

Referenced by _dbus_connection_block_pending_call(), and _dbus_connection_queue_received_message_link().

dbus_bool_t _dbus_pending_call_is_timeout_added_unlocked ( DBusPendingCall pending  ) 

Checks to see if a timeout has been added.

Parameters:
pending the pending_call
Returns:
TRUE if there is a timeout or FALSE if not

Definition at line 213 of file dbus-pending-call.c.

References _dbus_assert, NULL, and DBusPendingCall::timeout_added.

Referenced by _dbus_connection_queue_received_message_link().

DBusPendingCall* _dbus_pending_call_new_unlocked ( DBusConnection connection,
int  timeout_milliseconds,
DBusTimeoutHandler  timeout_handler 
)

Creates a new pending reply object.

Parameters:
connection connection where reply will arrive
timeout_milliseconds length of timeout, -1 for default
timeout_handler timeout handler, takes pending call as data
Returns:
a new DBusPendingCall or NULL if no memory.

Definition at line 81 of file dbus-pending-call.c.

References _dbus_assert, _dbus_connection_ref_unlocked(), _dbus_data_slot_list_init(), _dbus_timeout_new(), DBusPendingCall::connection, dbus_free(), dbus_new0, dbus_pending_call_allocate_data_slot(), dbus_pending_call_free_data_slot(), NULL, DBusPendingCall::refcount, DBusPendingCall::slot_list, DBusPendingCall::timeout, and DBusAtomic::value.

Referenced by dbus_connection_send_with_reply().

void _dbus_pending_call_set_reply_serial_unlocked ( DBusPendingCall pending,
dbus_uint32_t  serial 
)

Sets the reply's serial number.

Parameters:
pending the pending_call
serial the serial number

Definition at line 272 of file dbus-pending-call.c.

References _dbus_assert, NULL, and DBusPendingCall::reply_serial.

Referenced by _dbus_pending_call_set_timeout_error_unlocked().

void _dbus_pending_call_set_reply_unlocked ( DBusPendingCall pending,
DBusMessage message 
)

Sets the reply of a pending call with the given message, or if the message is NULL, by timing out the pending call.

Parameters:
pending the pending call
message the message to complete the call with, or NULL to time out the call

Definition at line 144 of file dbus-pending-call.c.

References _dbus_assert, _dbus_list_clear(), DBusList::data, dbus_message_get_reply_serial(), dbus_message_get_type(), dbus_message_ref(), DBUS_MESSAGE_TYPE_ERROR, DBUS_MESSAGE_TYPE_METHOD_RETURN, NULL, DBusPendingCall::reply, DBusPendingCall::reply_serial, and DBusPendingCall::timeout_link.

void _dbus_pending_call_set_timeout_added_unlocked ( DBusPendingCall pending,
dbus_bool_t  is_added 
)

Sets wether the timeout has been added.

Parameters:
pending the pending_call
is_added whether or not a timeout is added

Definition at line 228 of file dbus-pending-call.c.

References _dbus_assert, NULL, and DBusPendingCall::timeout_added.

Referenced by _dbus_connection_queue_received_message_link().

dbus_bool_t _dbus_pending_call_set_timeout_error_unlocked ( DBusPendingCall pending,
DBusMessage message,
dbus_uint32_t  serial 
)

Sets the reply message associated with the pending call to a timeout error.

Parameters:
pending the pending_call
message the message we are sending the error reply to
serial serial number for the reply
Returns:
FALSE on OOM

Definition at line 319 of file dbus-pending-call.c.

References _dbus_list_alloc_link(), _dbus_pending_call_set_reply_serial_unlocked(), DBUS_ERROR_NO_REPLY, dbus_message_new_error(), dbus_message_unref(), FALSE, NULL, DBusPendingCall::timeout_link, and TRUE.

Referenced by dbus_connection_send_with_reply().


Generated on Wed Jan 3 04:58:30 2007 for D-Bus by  doxygen 1.4.7