<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>DBusConnection implementation details</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.2.15 --> <center> <a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="modules.html">Modules</a> <a class="qindex" href="annotated.html">Data Structures</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Data Fields</a> <a class="qindex" href="pages.html">Related Pages</a> </center> <hr><h1>DBusConnection implementation details<br> <small> [<a class="el" href="group__DBusInternals.html">D-BUS internal implementation details</a>]</small> </h1>Implementation details of <a class="el" href="structDBusConnection.html">DBusConnection</a>. <a href="#_details">More...</a><table border=0 cellpadding=0 cellspacing=0> <tr><td colspan=2><br><h2>Data Structures</h2></td></tr> <tr><td nowrap align=right valign=top>struct </td><td valign=bottom><a class="el" href="structDBusConnection.html">DBusConnection</a></td></tr> <tr><td> </td><td><font size=-1><em>Implementation details of DBusConnection.</em> <a href="structDBusConnection.html#_details">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>struct </td><td valign=bottom><a class="el" href="structDBusMessageFilter.html">DBusMessageFilter</a></td></tr> <tr><td> </td><td><font size=-1><em>Internal struct representing a message filter function.</em> <a href="structDBusMessageFilter.html#_details">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>struct </td><td valign=bottom><a class="el" href="structDBusPreallocatedSend.html">DBusPreallocatedSend</a></td></tr> <tr><td> </td><td><font size=-1><em>Internals of DBusPreallocatedSend.</em> <a href="structDBusPreallocatedSend.html#_details">More...</a><em></em></font><br><br></td></tr> <tr><td colspan=2><br><h2>Typedefs</h2></td></tr> <tr><td nowrap align=right valign=top><a name="a0" doxytag="DBusConnectionInternals::DBusMessageFilter"></a> typedef DBusMessageFilter </td><td valign=bottom><a class="el" href="group__DBusConnectionInternals.html#a0">DBusMessageFilter</a></td></tr> <tr><td> </td><td><font size=-1><em>Internal struct representing a message filter function.</em></font><br><br></td></tr> <tr><td colspan=2><br><h2>Functions</h2></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="group__DBusConnectionInternals.html#a8">_dbus_connection_lock</a> (<a class="el" href="structDBusConnection.html">DBusConnection</a> *connection)</td></tr> <tr><td> </td><td><font size=-1><em>Acquires the connection lock.</em> <a href="#a8">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="group__DBusConnectionInternals.html#a9">_dbus_connection_unlock</a> (<a class="el" href="structDBusConnection.html">DBusConnection</a> *connection)</td></tr> <tr><td> </td><td><font size=-1><em>Releases the connection lock.</em> <a href="#a9">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> </td><td valign=bottom><a class="el" href="group__DBusConnectionInternals.html#a11">_dbus_connection_queue_received_message</a> (<a class="el" href="structDBusConnection.html">DBusConnection</a> *connection, <a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr> <tr><td> </td><td><font size=-1><em>Adds a message to the incoming message queue, returning <a class="el" href="group__DBusMacros.html#a3">FALSE</a> if there's insufficient memory to queue the message.</em> <a href="#a11">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="group__DBusConnectionInternals.html#a12">_dbus_connection_queue_received_message_link</a> (<a class="el" href="structDBusConnection.html">DBusConnection</a> *connection, <a class="el" href="structDBusList.html">DBusList</a> *link)</td></tr> <tr><td> </td><td><font size=-1><em>Adds a message-containing list link to the incoming message queue, taking ownership of the link and the message's current refcount.</em> <a href="#a12">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> </td><td valign=bottom><a class="el" href="group__DBusConnectionInternals.html#a14">_dbus_connection_have_messages_to_send</a> (<a class="el" href="structDBusConnection.html">DBusConnection</a> *connection)</td></tr> <tr><td> </td><td><font size=-1><em>Checks whether there are messages in the outgoing message queue.</em> <a href="#a14">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td><td valign=bottom><a class="el" href="group__DBusConnectionInternals.html#a15">_dbus_connection_get_message_to_send</a> (<a class="el" href="structDBusConnection.html">DBusConnection</a> *connection)</td></tr> <tr><td> </td><td><font size=-1><em>Gets the next outgoing message.</em> <a href="#a15">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="group__DBusConnectionInternals.html#a16">_dbus_connection_message_sent</a> (<a class="el" href="structDBusConnection.html">DBusConnection</a> *connection, <a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr> <tr><td> </td><td><font size=-1><em>Notifies the connection that a message has been sent, so the message can be removed from the outgoing queue.</em> <a href="#a16">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> </td><td valign=bottom><a class="el" href="group__DBusConnectionInternals.html#a17">_dbus_connection_add_watch</a> (<a class="el" href="structDBusConnection.html">DBusConnection</a> *connection, <a class="el" href="structDBusWatch.html">DBusWatch</a> *watch)</td></tr> <tr><td> </td><td><font size=-1><em>Adds a watch using the connection's DBusAddWatchFunction if available.</em> <a href="#a17">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="group__DBusConnectionInternals.html#a18">_dbus_connection_remove_watch</a> (<a class="el" href="structDBusConnection.html">DBusConnection</a> *connection, <a class="el" href="structDBusWatch.html">DBusWatch</a> *watch)</td></tr> <tr><td> </td><td><font size=-1><em>Removes a watch using the connection's DBusRemoveWatchFunction if available.</em> <a href="#a18">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="group__DBusConnectionInternals.html#a19">_dbus_connection_toggle_watch</a> (<a class="el" href="structDBusConnection.html">DBusConnection</a> *connection, <a class="el" href="structDBusWatch.html">DBusWatch</a> *watch, <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> enabled)</td></tr> <tr><td> </td><td><font size=-1><em>Toggles a watch and notifies app via connection's DBusWatchToggledFunction if available.</em> <a href="#a19">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> </td><td valign=bottom><a class="el" href="group__DBusConnectionInternals.html#a20">_dbus_connection_add_timeout</a> (<a class="el" href="structDBusConnection.html">DBusConnection</a> *connection, <a class="el" href="structDBusTimeout.html">DBusTimeout</a> *timeout)</td></tr> <tr><td> </td><td><font size=-1><em>Adds a timeout using the connection's DBusAddTimeoutFunction if available.</em> <a href="#a20">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="group__DBusConnectionInternals.html#a21">_dbus_connection_remove_timeout</a> (<a class="el" href="structDBusConnection.html">DBusConnection</a> *connection, <a class="el" href="structDBusTimeout.html">DBusTimeout</a> *timeout)</td></tr> <tr><td> </td><td><font size=-1><em>Removes a timeout using the connection's DBusRemoveTimeoutFunction if available.</em> <a href="#a21">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="group__DBusConnectionInternals.html#a22">_dbus_connection_toggle_timeout</a> (<a class="el" href="structDBusConnection.html">DBusConnection</a> *connection, <a class="el" href="structDBusTimeout.html">DBusTimeout</a> *timeout, <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> enabled)</td></tr> <tr><td> </td><td><font size=-1><em>Toggles a timeout and notifies app via connection's DBusTimeoutToggledFunction if available.</em> <a href="#a22">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="group__DBusConnectionInternals.html#a26">_dbus_connection_remove_pending_call</a> (<a class="el" href="structDBusConnection.html">DBusConnection</a> *connection, <a class="el" href="structDBusPendingCall.html">DBusPendingCall</a> *pending)</td></tr> <tr><td> </td><td><font size=-1><em>Removes a pending call from the connection, such that the pending reply will be ignored.</em> <a href="#a26">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="group__DBusConnectionInternals.html#a27">_dbus_pending_call_complete_and_unlock</a> (<a class="el" href="structDBusPendingCall.html">DBusPendingCall</a> *pending, <a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr> <tr><td> </td><td><font size=-1><em>Completes a pending call with the given message, or if the message is <a class="el" href="group__DBusMacros.html#a4">NULL</a>, by timing out the pending call.</em> <a href="#a27">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="group__DBusConnectionInternals.html#a30">_dbus_connection_do_iteration</a> (<a class="el" href="structDBusConnection.html">DBusConnection</a> *connection, unsigned int flags, int timeout_milliseconds)</td></tr> <tr><td> </td><td><font size=-1><em>Queues incoming messages and sends outgoing messages for this connection, optionally blocking in the process.</em> <a href="#a30">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td><td valign=bottom><a class="el" href="group__DBusConnectionInternals.html#a31">_dbus_connection_new_for_transport</a> (<a class="el" href="structDBusTransport.html">DBusTransport</a> *transport)</td></tr> <tr><td> </td><td><font size=-1><em>Creates a new connection for the given transport.</em> <a href="#a31">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td><td valign=bottom><a class="el" href="group__DBusConnectionInternals.html#a32">_dbus_connection_ref_unlocked</a> (<a class="el" href="structDBusConnection.html">DBusConnection</a> *connection)</td></tr> <tr><td> </td><td><font size=-1><em>Increments the reference count of a <a class="el" href="structDBusConnection.html">DBusConnection</a>.</em> <a href="#a32">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="group__DBusConnectionInternals.html#a33">_dbus_connection_unref_unlocked</a> (<a class="el" href="structDBusConnection.html">DBusConnection</a> *connection)</td></tr> <tr><td> </td><td><font size=-1><em>Decrements the reference count of a <a class="el" href="structDBusConnection.html">DBusConnection</a>.</em> <a href="#a33">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> </td><td valign=bottom><a class="el" href="group__DBusConnectionInternals.html#a35">_dbus_connection_handle_watch</a> (<a class="el" href="structDBusWatch.html">DBusWatch</a> *watch, unsigned int condition, void *data)</td></tr> <tr><td> </td><td><font size=-1><em>A callback for use with dbus_watch_new() to create a <a class="el" href="structDBusWatch.html">DBusWatch</a>.</em> <a href="#a35">More...</a><em></em></font><br><br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> Implementation details of <a class="el" href="structDBusConnection.html">DBusConnection</a>. <p> <p> <hr><h2>Function Documentation</h2> <a name="a20" doxytag="dbus-connection-internal.h::_dbus_connection_add_timeout"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_connection_add_timeout </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td> <td class="mdname" nowrap> <em>connection</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="structDBusTimeout.html">DBusTimeout</a> * </td> <td class="mdname" nowrap> <em>timeout</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Adds a timeout using the connection's DBusAddTimeoutFunction if available. <p> Otherwise records the timeout to be added when said function is available. Also re-adds the timeout if the DBusAddTimeoutFunction changes. May fail due to lack of memory. The timeout will fire repeatedly until removed.<dl compact><dt><b> Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>connection</em> </td><td> the connection. </td></tr> <tr><td valign=top><em>timeout</em> </td><td> the timeout to add. </td></tr> </table> </dl><dl compact><dt><b> Returns: </b><dd> <a class="el" href="group__DBusMacros.html#a2">TRUE</a> on success. </dl> <p> Definition at line <a class="el" href="dbus-connection_8c-source.html#l00530">530</a> of file <a class="el" href="dbus-connection_8c-source.html">dbus-connection.c</a>. <p> References <a class="el" href="dbus-connection_8c-source.html#l00187">DBusConnection::timeouts</a>. </td> </tr> </table> <a name="a17" doxytag="dbus-connection-internal.h::_dbus_connection_add_watch"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_connection_add_watch </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td> <td class="mdname" nowrap> <em>connection</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="structDBusWatch.html">DBusWatch</a> * </td> <td class="mdname" nowrap> <em>watch</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Adds a watch using the connection's DBusAddWatchFunction if available. <p> Otherwise records the watch to be added when said function is available. Also re-adds the watch if the DBusAddWatchFunction changes. May fail due to lack of memory.<dl compact><dt><b> Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>connection</em> </td><td> the connection. </td></tr> <tr><td valign=top><em>watch</em> </td><td> the watch to add. </td></tr> </table> </dl><dl compact><dt><b> Returns: </b><dd> <a class="el" href="group__DBusMacros.html#a2">TRUE</a> on success. </dl> <p> Definition at line <a class="el" href="dbus-connection_8c-source.html#l00472">472</a> of file <a class="el" href="dbus-connection_8c-source.html">dbus-connection.c</a>. <p> References <a class="el" href="dbus-connection_8c-source.html#l00186">DBusConnection::watches</a>. </td> </tr> </table> <a name="a30" doxytag="dbus-connection-internal.h::_dbus_connection_do_iteration"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void _dbus_connection_do_iteration </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td> <td class="mdname" nowrap> <em>connection</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>unsigned int </td> <td class="mdname" nowrap> <em>flags</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>timeout_milliseconds</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Queues incoming messages and sends outgoing messages for this connection, optionally blocking in the process. <p> Each call to <a class="el" href="group__DBusConnectionInternals.html#a30">_dbus_connection_do_iteration</a>() will call select() or poll() one time and then read or write data if possible. <p> The purpose of this function is to be able to flush outgoing messages or queue up incoming messages without returning control to the application and causing reentrancy weirdness. <p> The flags parameter allows you to specify whether to read incoming messages, write outgoing messages, or both, and whether to block if no immediate action is possible. <p> The timeout_milliseconds parameter does nothing unless the iteration is blocking. <p> If there are no outgoing messages and DBUS_ITERATION_DO_READING wasn't specified, then it's impossible to block, even if you specify DBUS_ITERATION_BLOCK; in that case the function returns immediately.<dl compact><dt><b> Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>connection</em> </td><td> the connection. </td></tr> <tr><td valign=top><em>flags</em> </td><td> iteration flags. </td></tr> <tr><td valign=top><em>timeout_milliseconds</em> </td><td> maximum blocking time, or -1 for no limit. </td></tr> </table> </dl> <p> Definition at line <a class="el" href="dbus-connection_8c-source.html#l00785">785</a> of file <a class="el" href="dbus-connection_8c-source.html">dbus-connection.c</a>. <p> References <a class="el" href="dbus-connection_8c-source.html#l00180">DBusConnection::n_outgoing</a>, and <a class="el" href="dbus-connection_8c-source.html#l00185">DBusConnection::transport</a>. </td> </tr> </table> <a name="a15" doxytag="dbus-connection-internal.h::_dbus_connection_get_message_to_send"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> <a class="el" href="structDBusMessage.html">DBusMessage</a>* _dbus_connection_get_message_to_send </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td> <td class="mdname1" valign="top" nowrap> <em>connection</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Gets the next outgoing message. <p> The message remains in the queue, and the caller does not own a reference to it.<dl compact><dt><b> Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>connection</em> </td><td> the connection. </td></tr> </table> </dl><dl compact><dt><b> Returns: </b><dd> the message to be sent. </dl> <p> Definition at line <a class="el" href="dbus-connection_8c-source.html#l00408">408</a> of file <a class="el" href="dbus-connection_8c-source.html">dbus-connection.c</a>. <p> References <a class="el" href="dbus-connection_8c-source.html#l00174">DBusConnection::outgoing_messages</a>. </td> </tr> </table> <a name="a35" doxytag="dbus-connection-internal.h::_dbus_connection_handle_watch"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_connection_handle_watch </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="structDBusWatch.html">DBusWatch</a> * </td> <td class="mdname" nowrap> <em>watch</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>unsigned int </td> <td class="mdname" nowrap> <em>condition</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>void * </td> <td class="mdname" nowrap> <em>data</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> A callback for use with dbus_watch_new() to create a <a class="el" href="structDBusWatch.html">DBusWatch</a>. <p> <p> <dl compact><dt><b> <a class="el" href="todo.html#_todo000012">Todo: </a></b><dd> This is basically a hack - we could delete <a class="el" href="group__DBusTransport.html#a10">_dbus_transport_handle_watch</a>() and the virtual handle_watch in <a class="el" href="structDBusTransport.html">DBusTransport</a> if we got rid of it. The reason this is some work is threading, see the <a class="el" href="group__DBusConnectionInternals.html#a35">_dbus_connection_handle_watch</a>() implementation.</dl><dl compact><dt><b> Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>watch</em> </td><td> the watch. </td></tr> <tr><td valign=top><em>condition</em> </td><td> the current condition of the file descriptors being watched. </td></tr> <tr><td valign=top><em>data</em> </td><td> must be a pointer to a DBusConnection </td></tr> </table> </dl><dl compact><dt><b> Returns: </b><dd> <a class="el" href="group__DBusMacros.html#a3">FALSE</a> if the IO condition may not have been fully handled due to lack of memory </dl> <p> Definition at line <a class="el" href="dbus-connection_8c-source.html#l01044">1044</a> of file <a class="el" href="dbus-connection_8c-source.html">dbus-connection.c</a>. <p> References <a class="el" href="dbus-connection_8c-source.html#l00185">DBusConnection::transport</a>. </td> </tr> </table> <a name="a14" doxytag="dbus-connection-internal.h::_dbus_connection_have_messages_to_send"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_connection_have_messages_to_send </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td> <td class="mdname1" valign="top" nowrap> <em>connection</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Checks whether there are messages in the outgoing message queue. <p> <dl compact><dt><b> Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>connection</em> </td><td> the connection. </td></tr> </table> </dl><dl compact><dt><b> Returns: </b><dd> <a class="el" href="group__DBusMacros.html#a2">TRUE</a> if the outgoing queue is non-empty. </dl> <p> Definition at line <a class="el" href="dbus-connection_8c-source.html#l00395">395</a> of file <a class="el" href="dbus-connection_8c-source.html">dbus-connection.c</a>. <p> References <a class="el" href="dbus-connection_8c-source.html#l00174">DBusConnection::outgoing_messages</a>. </td> </tr> </table> <a name="a8" doxytag="dbus-connection-internal.h::_dbus_connection_lock"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void _dbus_connection_lock </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td> <td class="mdname1" valign="top" nowrap> <em>connection</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Acquires the connection lock. <p> <dl compact><dt><b> Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>connection</em> </td><td> the connection. </td></tr> </table> </dl> <p> Definition at line <a class="el" href="dbus-connection_8c-source.html#l00252">252</a> of file <a class="el" href="dbus-connection_8c-source.html">dbus-connection.c</a>. </td> </tr> </table> <a name="a16" doxytag="dbus-connection-internal.h::_dbus_connection_message_sent"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void _dbus_connection_message_sent </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td> <td class="mdname" nowrap> <em>connection</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td> <td class="mdname" nowrap> <em>message</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Notifies the connection that a message has been sent, so the message can be removed from the outgoing queue. <p> Called with the connection lock held.<dl compact><dt><b> Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>connection</em> </td><td> the connection. </td></tr> <tr><td valign=top><em>message</em> </td><td> the message that was sent. </td></tr> </table> </dl> <p> Definition at line <a class="el" href="dbus-connection_8c-source.html#l00422">422</a> of file <a class="el" href="dbus-connection_8c-source.html">dbus-connection.c</a>. <p> References <a class="el" href="dbus-list_8h-source.html#l00039">DBusList::data</a>, <a class="el" href="dbus-connection_8c-source.html#l00208">DBusConnection::link_cache</a>, <a class="el" href="dbus-connection_8c-source.html#l00180">DBusConnection::n_outgoing</a>, <a class="el" href="dbus-connection_8c-source.html#l00183">DBusConnection::outgoing_counter</a>, <a class="el" href="dbus-connection_8c-source.html#l00174">DBusConnection::outgoing_messages</a>, and <a class="el" href="dbus-connection_8c-source.html#l00185">DBusConnection::transport</a>. </td> </tr> </table> <a name="a31" doxytag="dbus-connection-internal.h::_dbus_connection_new_for_transport"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> <a class="el" href="structDBusConnection.html">DBusConnection</a>* _dbus_connection_new_for_transport </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="structDBusTransport.html">DBusTransport</a> * </td> <td class="mdname1" valign="top" nowrap> <em>transport</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Creates a new connection for the given transport. <p> A transport represents a message stream that uses some concrete mechanism, such as UNIX domain sockets. May return <a class="el" href="group__DBusMacros.html#a4">NULL</a> if insufficient memory exists to create the connection.<dl compact><dt><b> Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>transport</em> </td><td> the transport. </td></tr> </table> </dl><dl compact><dt><b> Returns: </b><dd> the new connection, or <a class="el" href="group__DBusMacros.html#a4">NULL</a> on failure. </dl> <p> Definition at line <a class="el" href="dbus-connection_8c-source.html#l00811">811</a> of file <a class="el" href="dbus-connection_8c-source.html">dbus-connection.c</a>. <p> References <a class="el" href="dbus-connection_8c-source.html#l00195">DBusConnection::client_serial</a>, <a class="el" href="dbus-connection_8c-source.html#l00196">DBusConnection::disconnect_message_link</a>, <a class="el" href="dbus-connection_8c-source.html#l00169">DBusConnection::dispatch_cond</a>, <a class="el" href="dbus-connection_8c-source.html#l00213">DBusConnection::exit_on_disconnect</a>, <a class="el" href="dbus-connection_8c-source.html#l00189">DBusConnection::filter_list</a>, <a class="el" href="dbus-connection_8c-source.html#l00172">DBusConnection::io_path_cond</a>, <a class="el" href="dbus-connection_8c-source.html#l00206">DBusConnection::last_dispatch_status</a>, <a class="el" href="dbus-connection_8c-source.html#l00178">DBusConnection::message_returned_cond</a>, <a class="el" href="dbus-connection_8c-source.html#l00166">DBusConnection::mutex</a>, <a class="el" href="dbus-connection_8c-source.html#l00211">DBusConnection::objects</a>, <a class="el" href="dbus-connection_8c-source.html#l00183">DBusConnection::outgoing_counter</a>, <a class="el" href="dbus-connection_8c-source.html#l00193">DBusConnection::pending_replies</a>, <a class="el" href="dbus-connection_8c-source.html#l00164">DBusConnection::refcount</a>, <a class="el" href="dbus-connection_8c-source.html#l00191">DBusConnection::slot_list</a>, <a class="el" href="dbus-connection_8c-source.html#l00187">DBusConnection::timeouts</a>, <a class="el" href="dbus-connection_8c-source.html#l00185">DBusConnection::transport</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00192">DBusAtomic::value</a>, and <a class="el" href="dbus-connection_8c-source.html#l00186">DBusConnection::watches</a>. </td> </tr> </table> <a name="a11" doxytag="dbus-connection-internal.h::_dbus_connection_queue_received_message"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_connection_queue_received_message </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td> <td class="mdname" nowrap> <em>connection</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td> <td class="mdname" nowrap> <em>message</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Adds a message to the incoming message queue, returning <a class="el" href="group__DBusMacros.html#a3">FALSE</a> if there's insufficient memory to queue the message. <p> Does not take over refcount of the message.<dl compact><dt><b> Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>connection</em> </td><td> the connection. </td></tr> <tr><td valign=top><em>message</em> </td><td> the message to queue. </td></tr> </table> </dl><dl compact><dt><b> Returns: </b><dd> <a class="el" href="group__DBusMacros.html#a2">TRUE</a> on success. </dl> <p> Definition at line <a class="el" href="dbus-connection_8c-source.html#l00294">294</a> of file <a class="el" href="dbus-connection_8c-source.html">dbus-connection.c</a>. </td> </tr> </table> <a name="a12" doxytag="dbus-connection-internal.h::_dbus_connection_queue_received_message_link"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void _dbus_connection_queue_received_message_link </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td> <td class="mdname" nowrap> <em>connection</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="structDBusList.html">DBusList</a> * </td> <td class="mdname" nowrap> <em>link</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Adds a message-containing list link to the incoming message queue, taking ownership of the link and the message's current refcount. <p> Cannot fail due to lack of memory.<dl compact><dt><b> Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>connection</em> </td><td> the connection. </td></tr> <tr><td valign=top><em>link</em> </td><td> the message link to queue. </td></tr> </table> </dl> <p> Definition at line <a class="el" href="dbus-connection_8c-source.html#l00319">319</a> of file <a class="el" href="dbus-connection_8c-source.html">dbus-connection.c</a>. <p> References <a class="el" href="dbus-list_8h-source.html#l00039">DBusList::data</a>, <a class="el" href="dbus-connection_8c-source.html#l00175">DBusConnection::incoming_messages</a>, <a class="el" href="dbus-connection_8c-source.html#l00181">DBusConnection::n_incoming</a>, <a class="el" href="dbus-connection_8c-source.html#l00193">DBusConnection::pending_replies</a>, <a class="el" href="dbus-connection-internal_8h-source.html#l00113">DBusPendingCall::timeout</a>, <a class="el" href="dbus-connection-internal_8h-source.html#l00120">DBusPendingCall::timeout_added</a>, and <a class="el" href="dbus-connection_8c-source.html#l00185">DBusConnection::transport</a>. </td> </tr> </table> <a name="a32" doxytag="dbus-connection-internal.h::_dbus_connection_ref_unlocked"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> <a class="el" href="structDBusConnection.html">DBusConnection</a>* _dbus_connection_ref_unlocked </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td> <td class="mdname1" valign="top" nowrap> <em>connection</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Increments the reference count of a <a class="el" href="structDBusConnection.html">DBusConnection</a>. <p> Requires that the caller already holds the connection lock.<dl compact><dt><b> Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>connection</em> </td><td> the connection. </td></tr> </table> </dl><dl compact><dt><b> Returns: </b><dd> the connection. </dl> <p> Definition at line <a class="el" href="dbus-connection_8c-source.html#l00972">972</a> of file <a class="el" href="dbus-connection_8c-source.html">dbus-connection.c</a>. <p> References <a class="el" href="dbus-connection_8c-source.html#l00164">DBusConnection::refcount</a>, and <a class="el" href="dbus-sysdeps_8h-source.html#l00192">DBusAtomic::value</a>. </td> </tr> </table> <a name="a26" doxytag="dbus-connection-internal.h::_dbus_connection_remove_pending_call"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void _dbus_connection_remove_pending_call </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td> <td class="mdname" nowrap> <em>connection</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="structDBusPendingCall.html">DBusPendingCall</a> * </td> <td class="mdname" nowrap> <em>pending</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Removes a pending call from the connection, such that the pending reply will be ignored. <p> May drop the last reference to the pending call.<dl compact><dt><b> Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>connection</em> </td><td> the connection </td></tr> <tr><td valign=top><em>pending</em> </td><td> the pending call </td></tr> </table> </dl> <p> Definition at line <a class="el" href="dbus-connection_8c-source.html#l00659">659</a> of file <a class="el" href="dbus-connection_8c-source.html">dbus-connection.c</a>. </td> </tr> </table> <a name="a21" doxytag="dbus-connection-internal.h::_dbus_connection_remove_timeout"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void _dbus_connection_remove_timeout </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td> <td class="mdname" nowrap> <em>connection</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="structDBusTimeout.html">DBusTimeout</a> * </td> <td class="mdname" nowrap> <em>timeout</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Removes a timeout using the connection's DBusRemoveTimeoutFunction if available. <p> It's an error to call this function on a timeout that was not previously added.<dl compact><dt><b> Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>connection</em> </td><td> the connection. </td></tr> <tr><td valign=top><em>timeout</em> </td><td> the timeout to remove. </td></tr> </table> </dl> <p> Definition at line <a class="el" href="dbus-connection_8c-source.html#l00549">549</a> of file <a class="el" href="dbus-connection_8c-source.html">dbus-connection.c</a>. <p> References <a class="el" href="dbus-connection_8c-source.html#l00187">DBusConnection::timeouts</a>. </td> </tr> </table> <a name="a18" doxytag="dbus-connection-internal.h::_dbus_connection_remove_watch"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void _dbus_connection_remove_watch </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td> <td class="mdname" nowrap> <em>connection</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="structDBusWatch.html">DBusWatch</a> * </td> <td class="mdname" nowrap> <em>watch</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Removes a watch using the connection's DBusRemoveWatchFunction if available. <p> It's an error to call this function on a watch that was not previously added.<dl compact><dt><b> Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>connection</em> </td><td> the connection. </td></tr> <tr><td valign=top><em>watch</em> </td><td> the watch to remove. </td></tr> </table> </dl> <p> Definition at line <a class="el" href="dbus-connection_8c-source.html#l00491">491</a> of file <a class="el" href="dbus-connection_8c-source.html">dbus-connection.c</a>. <p> References <a class="el" href="dbus-connection_8c-source.html#l00186">DBusConnection::watches</a>. </td> </tr> </table> <a name="a22" doxytag="dbus-connection-internal.h::_dbus_connection_toggle_timeout"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void _dbus_connection_toggle_timeout </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td> <td class="mdname" nowrap> <em>connection</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="structDBusTimeout.html">DBusTimeout</a> * </td> <td class="mdname" nowrap> <em>timeout</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> </td> <td class="mdname" nowrap> <em>enabled</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Toggles a timeout and notifies app via connection's DBusTimeoutToggledFunction if available. <p> It's an error to call this function on a timeout that was not previously added.<dl compact><dt><b> Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>connection</em> </td><td> the connection. </td></tr> <tr><td valign=top><em>timeout</em> </td><td> the timeout to toggle. </td></tr> <tr><td valign=top><em>enabled</em> </td><td> whether to enable or disable </td></tr> </table> </dl> <p> Definition at line <a class="el" href="dbus-connection_8c-source.html#l00576">576</a> of file <a class="el" href="dbus-connection_8c-source.html">dbus-connection.c</a>. <p> References <a class="el" href="dbus-connection_8c-source.html#l00187">DBusConnection::timeouts</a>. </td> </tr> </table> <a name="a19" doxytag="dbus-connection-internal.h::_dbus_connection_toggle_watch"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void _dbus_connection_toggle_watch </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td> <td class="mdname" nowrap> <em>connection</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="structDBusWatch.html">DBusWatch</a> * </td> <td class="mdname" nowrap> <em>watch</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> </td> <td class="mdname" nowrap> <em>enabled</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Toggles a watch and notifies app via connection's DBusWatchToggledFunction if available. <p> It's an error to call this function on a watch that was not previously added.<dl compact><dt><b> Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>connection</em> </td><td> the connection. </td></tr> <tr><td valign=top><em>watch</em> </td><td> the watch to toggle. </td></tr> <tr><td valign=top><em>enabled</em> </td><td> whether to enable or disable </td></tr> </table> </dl> <p> Definition at line <a class="el" href="dbus-connection_8c-source.html#l00509">509</a> of file <a class="el" href="dbus-connection_8c-source.html">dbus-connection.c</a>. <p> References <a class="el" href="dbus-connection_8c-source.html#l00186">DBusConnection::watches</a>. </td> </tr> </table> <a name="a9" doxytag="dbus-connection-internal.h::_dbus_connection_unlock"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void _dbus_connection_unlock </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td> <td class="mdname1" valign="top" nowrap> <em>connection</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Releases the connection lock. <p> <dl compact><dt><b> Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>connection</em> </td><td> the connection. </td></tr> </table> </dl> <p> Definition at line <a class="el" href="dbus-connection_8c-source.html#l00263">263</a> of file <a class="el" href="dbus-connection_8c-source.html">dbus-connection.c</a>. </td> </tr> </table> <a name="a33" doxytag="dbus-connection-internal.h::_dbus_connection_unref_unlocked"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void _dbus_connection_unref_unlocked </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td> <td class="mdname1" valign="top" nowrap> <em>connection</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Decrements the reference count of a <a class="el" href="structDBusConnection.html">DBusConnection</a>. <p> Requires that the caller already holds the connection lock.<dl compact><dt><b> Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>connection</em> </td><td> the connection. </td></tr> </table> </dl> <p> Definition at line <a class="el" href="dbus-connection_8c-source.html#l00991">991</a> of file <a class="el" href="dbus-connection_8c-source.html">dbus-connection.c</a>. <p> References <a class="el" href="dbus-connection_8c-source.html#l00164">DBusConnection::refcount</a>, and <a class="el" href="dbus-sysdeps_8h-source.html#l00192">DBusAtomic::value</a>. </td> </tr> </table> <a name="a27" doxytag="dbus-connection-internal.h::_dbus_pending_call_complete_and_unlock"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void _dbus_pending_call_complete_and_unlock </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="structDBusPendingCall.html">DBusPendingCall</a> * </td> <td class="mdname" nowrap> <em>pending</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td> <td class="mdname" nowrap> <em>message</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Completes a pending call with the given message, or if the message is <a class="el" href="group__DBusMacros.html#a4">NULL</a>, by timing out the pending call. <p> <dl compact><dt><b> Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>pending</em> </td><td> the pending call </td></tr> <tr><td valign=top><em>message</em> </td><td> the message to complete the call with, or <a class="el" href="group__DBusMacros.html#a4">NULL</a> to time out the call </td></tr> </table> </dl> <p> Definition at line <a class="el" href="dbus-connection_8c-source.html#l00675">675</a> of file <a class="el" href="dbus-connection_8c-source.html">dbus-connection.c</a>. <p> References <a class="el" href="dbus-connection-internal_8h-source.html#l00111">DBusPendingCall::connection</a>, <a class="el" href="dbus-list_8h-source.html#l00039">DBusList::data</a>, <a class="el" href="dbus-connection-internal_8h-source.html#l00112">DBusPendingCall::reply</a>, <a class="el" href="dbus-connection-internal_8h-source.html#l00117">DBusPendingCall::reply_serial</a>, and <a class="el" href="dbus-connection-internal_8h-source.html#l00115">DBusPendingCall::timeout_link</a>. </td> </tr> </table> <hr><address align="right"><small>Generated on Wed Jun 9 05:01:27 2004 for D-BUS by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border=0 width=110 height=53></a>1.2.15 </small></address> </body> </html>