DBusConnection Struct Reference
D-Bus secret internal implementation details » DBusConnection implementation details

Implementation details of DBusConnection. More...

## Data Fields

DBusAtomic | refcount
| Reference count.
DBusRMutex * | mutex
| Lock on the entire DBusConnection.
DBusCMutex * | dispatch_mutex
| Protects dispatch_acquired.
DBusCondVar * | dispatch_cond
| Notify when dispatch_acquired is available.
DBusCMutex * | io_path_mutex
| Protects io_path_acquired.
DBusCondVar * | io_path_cond
| Notify when io_path_acquired is available.
DBusList * | outgoing_messages
| Queue of messages we need to send, send the end of the list first.
DBusList * | incoming_messages
| Queue of messages we have received, end of the list received most recently.
DBusList * | expired_messages
| Messages that will be released when we next unlock.
DBusMessage * | message_borrowed
| Filled in if the first incoming message has been borrowed; dispatch_acquired will be set by the borrower.
int | n_outgoing
| Length of outgoing queue.
int | n_incoming
| Length of incoming queue.
DBusCounter * | outgoing_counter
| Counts size of outgoing messages.
DBusTransport * | transport
| Object that sends/receives messages over network.
DBusWatchList * | watches
| Stores active watches.
DBusTimeoutList * | timeouts
| Stores active timeouts.
DBusList * | filter_list
| List of filters.
DBusRMutex * | slot_mutex
| Lock on slot_list so overall connection lock need not be taken.
DBusDataSlotList | slot_list
| Data stored by allocated integer ID.
DBusHashTable * | pending_replies
| Hash of message serials to DBusPendingCall.
dbus_uint32_t | client_serial
| Client serial.
DBusList * | disconnect_message_link
| Preallocated list node for queueing the disconnection message.
DBusWakeupMainFunction | wakeup_main_function
| Function to wake up the mainloop.
void * | wakeup_main_data
| Application data for wakeup_main_function.
DBusFreeFunction | free_wakeup_main_data
| free wakeup_main_data
DBusDispatchStatusFunction | dispatch_status_function
| Function on dispatch status changes.
void * | dispatch_status_data
| Application data for dispatch_status_function.
DBusFreeFunction | free_dispatch_status_data
| free dispatch_status_data
DBusDispatchStatus | last_dispatch_status
| The last dispatch status we reported to the application.
DBusObjectTree * | objects
| Object path handlers registered with this connection.
char * | server_guid
| GUID of server if we are in shared_connections, NULL if server GUID is unknown or connection is private.
dbus_bool_t | dispatch_acquired
| Someone has dispatch path (can drain incoming queue).
dbus_bool_t | io_path_acquired
| Someone has transport io path (can use the transport to read/write messages).
unsigned int | shareable: 1
| TRUE if libdbus owns a reference to the connection and can return it from dbus_connection_open() more than once
unsigned int | exit_on_disconnect: 1
| If TRUE, exit after handling disconnect signal.
unsigned int | builtin_filters_enabled: 1
| If TRUE, handle org.freedesktop.DBus.Peer messages automatically, whether they have a bus name or not.
unsigned int | route_peer_messages: 1
| If TRUE, if org.freedesktop.DBus.Peer messages have a bus name, don't handle them automatically.
unsigned int | disconnected_message_arrived: 1
| We popped or are dispatching the disconnected message.
unsigned int | disconnected_message_processed: 1
| We did our default handling of the disconnected message, such as closing the connection.
unsigned int | have_connection_lock: 1
| Used to check locking.

## Detailed Description

Implementation details of DBusConnection.

All fields are private.

Definition at line 258 of file dbus-connection.c.

## Field Documentation

## builtin_filters_enabled

unsigned int DBusConnection::builtin_filters_enabled

If TRUE, handle org.freedesktop.DBus.Peer messages automatically, whether they have a bus name or not.

Definition at line 321 of file dbus-connection.c.

Referenced by _dbus_connection_new_for_transport(), dbus_connection_dispatch(), and dbus_connection_set_builtin_filters_enabled().

## client_serial

dbus_uint32_t DBusConnection::client_serial

Client serial.

Increments each time a message is sent

Definition at line 293 of file dbus-connection.c.

Referenced by _dbus_connection_get_next_client_serial(), and _dbus_connection_new_for_transport().

## disconnect_message_link

DBusList* DBusConnection::disconnect_message_link

Preallocated list node for queueing the disconnection message.

Definition at line 294 of file dbus-connection.c.

Referenced by _dbus_connection_block_pending_call(), and _dbus_connection_new_for_transport().

## disconnected_message_arrived

unsigned int DBusConnection::disconnected_message_arrived

We popped or are dispatching the disconnected message.

if the disconnect_message_link is NULL then we queued it, but this flag is whether it got to the head of the queue.

Definition at line 325 of file dbus-connection.c.

Referenced by _dbus_connection_new_for_transport().

## disconnected_message_processed

unsigned int DBusConnection::disconnected_message_processed

We did our default handling of the disconnected message, such as closing the connection.

Definition at line 329 of file dbus-connection.c.

Referenced by _dbus_connection_new_for_transport().

## dispatch_acquired

dbus_bool_t DBusConnection::dispatch_acquired

Someone has dispatch path (can drain incoming queue).

Definition at line 314 of file dbus-connection.c.

Referenced by dbus_connection_return_message(), and dbus_connection_steal_borrowed_message().

## dispatch_cond

DBusCondVar* DBusConnection::dispatch_cond

Notify when dispatch_acquired is available.

Definition at line 265 of file dbus-connection.c.

Referenced by _dbus_connection_new_for_transport().

## dispatch_mutex

DBusCMutex* DBusConnection::dispatch_mutex

Protects dispatch_acquired.

Definition at line 264 of file dbus-connection.c.

Referenced by _dbus_connection_new_for_transport().

## dispatch_status_data

void* DBusConnection::dispatch_status_data

Application data for dispatch_status_function.

Definition at line 301 of file dbus-connection.c.

Referenced by dbus_connection_set_dispatch_status_function().

## dispatch_status_function

DBusDispatchStatusFunction DBusConnection::dispatch_status_function

Function on dispatch status changes.

Definition at line 300 of file dbus-connection.c.

Referenced by dbus_connection_set_dispatch_status_function().

## exit_on_disconnect

unsigned int DBusConnection::exit_on_disconnect

If TRUE, exit after handling disconnect signal.

Definition at line 319 of file dbus-connection.c.

Referenced by _dbus_connection_new_for_transport(), and dbus_connection_set_exit_on_disconnect().

## expired_messages

DBusList* DBusConnection::expired_messages

Messages that will be released when we next unlock.

Definition at line 271 of file dbus-connection.c.

Referenced by _dbus_connection_message_sent_unlocked(), _dbus_connection_unlock(), and dbus_connection_dispatch().

## filter_list

DBusList* DBusConnection::filter_list

List of filters.

Definition at line 286 of file dbus-connection.c.

Referenced by _dbus_connection_new_for_transport(), dbus_connection_add_filter(), dbus_connection_dispatch(), and dbus_connection_remove_filter().

## free_dispatch_status_data

DBusFreeFunction DBusConnection::free_dispatch_status_data

free dispatch_status_data

Definition at line 302 of file dbus-connection.c.

Referenced by dbus_connection_set_dispatch_status_function().

## free_wakeup_main_data

DBusFreeFunction DBusConnection::free_wakeup_main_data

free wakeup_main_data

Definition at line 298 of file dbus-connection.c.

Referenced by dbus_connection_set_wakeup_main_function().

## have_connection_lock

unsigned int DBusConnection::have_connection_lock

Used to check locking.

Definition at line 334 of file dbus-connection.c.

## incoming_messages

DBusList* DBusConnection::incoming_messages

Queue of messages we have received, end of the list received most recently.

Definition at line 270 of file dbus-connection.c.

Referenced by _dbus_connection_queue_received_message_link(), _dbus_connection_queue_synthesized_message_link(), dbus_connection_borrow_message(), and dbus_connection_steal_borrowed_message().

## io_path_acquired

dbus_bool_t DBusConnection::io_path_acquired

Someone has transport io path (can use the transport to read/write messages).

Definition at line 315 of file dbus-connection.c.

## io_path_cond

DBusCondVar* DBusConnection::io_path_cond

Notify when io_path_acquired is available.

Definition at line 267 of file dbus-connection.c.

Referenced by _dbus_connection_new_for_transport().

## io_path_mutex

DBusCMutex* DBusConnection::io_path_mutex

Protects io_path_acquired.

Definition at line 266 of file dbus-connection.c.

Referenced by _dbus_connection_new_for_transport().

## last_dispatch_status

DBusDispatchStatus DBusConnection::last_dispatch_status

The last dispatch status we reported to the application.

Definition at line 304 of file dbus-connection.c.

Referenced by _dbus_connection_new_for_transport().

## message_borrowed

DBusMessage* DBusConnection::message_borrowed

Filled in if the first incoming message has been borrowed; dispatch_acquired will be set by the borrower.

Definition at line 273 of file dbus-connection.c.

Referenced by dbus_connection_borrow_message(), dbus_connection_return_message(), and dbus_connection_steal_borrowed_message().

## mutex

DBusRMutex* DBusConnection::mutex

Lock on the entire DBusConnection.

Definition at line 262 of file dbus-connection.c.

Referenced by _dbus_connection_new_for_transport(), and _dbus_connection_unlock().

## n_incoming

int DBusConnection::n_incoming

Length of incoming queue.

Definition at line 278 of file dbus-connection.c.

Referenced by _dbus_connection_queue_received_message_link(), _dbus_connection_queue_synthesized_message_link(), and dbus_connection_steal_borrowed_message().

## n_outgoing

int DBusConnection::n_outgoing

Length of outgoing queue.

Definition at line 277 of file dbus-connection.c.

Referenced by _dbus_connection_do_iteration_unlocked(), and _dbus_connection_message_sent_unlocked().

## objects

DBusObjectTree* DBusConnection::objects

Object path handlers registered with this connection.

Definition at line 306 of file dbus-connection.c.

Referenced by _dbus_connection_new_for_transport(), dbus_connection_dispatch(), dbus_connection_get_object_path_data(), dbus_connection_list_registered(), and dbus_connection_unregister_object_path().

## outgoing_counter

DBusCounter* DBusConnection::outgoing_counter

Counts size of outgoing messages.

Definition at line 280 of file dbus-connection.c.

Referenced by _dbus_connection_message_sent_unlocked(), _dbus_connection_new_for_transport(), dbus_connection_get_outgoing_size(), and dbus_connection_get_outgoing_unix_fds().

## outgoing_messages

DBusList* DBusConnection::outgoing_messages

Queue of messages we need to send, send the end of the list first.

Definition at line 269 of file dbus-connection.c.

Referenced by _dbus_connection_get_message_to_send(), _dbus_connection_has_messages_to_send_unlocked(), and _dbus_connection_message_sent_unlocked().

## pending_replies

DBusHashTable* DBusConnection::pending_replies

Hash of message serials to DBusPendingCall.

Definition at line 291 of file dbus-connection.c.

Referenced by _dbus_connection_new_for_transport(), _dbus_connection_queue_received_message_link(), and dbus_connection_dispatch().

## refcount

DBusAtomic DBusConnection::refcount

Reference count.

Definition at line 260 of file dbus-connection.c.

Referenced by _dbus_connection_close_if_only_one_ref(), _dbus_connection_new_for_transport(), _dbus_connection_ref_unlocked(), _dbus_connection_unref_unlocked(), dbus_connection_ref(), and dbus_connection_unref().

## route_peer_messages

unsigned int DBusConnection::route_peer_messages

If TRUE, if org.freedesktop.DBus.Peer messages have a bus name, don't handle them automatically.

Definition at line 323 of file dbus-connection.c.

Referenced by _dbus_connection_new_for_transport(), and dbus_connection_set_route_peer_messages().

## server_guid

char* DBusConnection::server_guid

GUID of server if we are in shared_connections, NULL if server GUID is unknown or connection is private.

Definition at line 308 of file dbus-connection.c.

## shareable

unsigned int DBusConnection::shareable

TRUE if libdbus owns a reference to the connection and can return it from dbus_connection_open() more than once

Definition at line 317 of file dbus-connection.c.

Referenced by _dbus_connection_new_for_transport(), dbus_connection_close(), and dbus_connection_unref().

## slot_list

DBusDataSlotList DBusConnection::slot_list

Data stored by allocated integer ID.

Definition at line 289 of file dbus-connection.c.

Referenced by _dbus_connection_new_for_transport(), dbus_connection_get_data(), and dbus_connection_set_data().

## slot_mutex

DBusRMutex* DBusConnection::slot_mutex

Lock on slot_list so overall connection lock need not be taken.

Definition at line 288 of file dbus-connection.c.

Referenced by _dbus_connection_new_for_transport().

## timeouts

DBusTimeoutList* DBusConnection::timeouts

Stores active timeouts.

Definition at line 284 of file dbus-connection.c.

Referenced by _dbus_connection_new_for_transport(), and dbus_connection_set_timeout_functions().

## transport

DBusTransport* DBusConnection::transport

Object that sends/receives messages over network.

Definition at line 282 of file dbus-connection.c.

Referenced by _dbus_connection_do_iteration_unlocked(), _dbus_connection_get_pending_fds_count(), _dbus_connection_handle_watch(), _dbus_connection_new_for_transport(), _dbus_connection_queue_received_message_link(), _dbus_connection_set_pending_fds_function(), dbus_connection_can_send_type(), dbus_connection_get_adt_audit_session_data(), dbus_connection_get_is_anonymous(), dbus_connection_get_is_authenticated(), dbus_connection_get_max_message_size(), dbus_connection_get_max_message_unix_fds(), dbus_connection_get_max_received_size(), dbus_connection_get_max_received_unix_fds(), dbus_connection_get_server_id(), dbus_connection_get_socket(), dbus_connection_get_unix_fd(), dbus_connection_get_unix_process_id(), dbus_connection_get_unix_user(), dbus_connection_get_windows_user(), dbus_connection_send(), dbus_connection_send_preallocated(), dbus_connection_send_with_reply(), dbus_connection_send_with_reply_and_block(), dbus_connection_set_allow_anonymous(), dbus_connection_set_max_message_size(), dbus_connection_set_max_message_unix_fds(), dbus_connection_set_max_received_size(), dbus_connection_set_max_received_unix_fds(), dbus_connection_set_unix_user_function(), dbus_connection_set_windows_user_function(), and dbus_connection_unref().

## wakeup_main_data

void* DBusConnection::wakeup_main_data

Application data for wakeup_main_function.

Definition at line 297 of file dbus-connection.c.

Referenced by dbus_connection_set_wakeup_main_function().

## wakeup_main_function

DBusWakeupMainFunction DBusConnection::wakeup_main_function

Function to wake up the mainloop.

Definition at line 296 of file dbus-connection.c.

Referenced by dbus_connection_set_wakeup_main_function().

## watches

DBusWatchList* DBusConnection::watches

Stores active watches.

Definition at line 283 of file dbus-connection.c.

Referenced by _dbus_connection_new_for_transport(), and dbus_connection_set_watch_functions().

The documentation for this struct was generated from the following file:

- dbus-connection.c