| Current File : //usr/share/doc/dbus/api/group__DBusConnectionInternals.html |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>D-Bus: DBusConnection implementation details</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">D-Bus
 <span id="projectnumber">1.8.20</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main Page</span></a></li>
<li><a href="pages.html"><span>Related Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> |
<a href="#typedef-members">Typedefs</a> |
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">DBusConnection implementation details</div> </div>
<div class="ingroups"><a class="el" href="group__DBusInternals.html">D-Bus secret internal implementation details</a></div></div><!--header-->
<div class="contents">
<p>Implementation details of <a class="el" href="structDBusConnection.html" title="Implementation details of DBusConnection.">DBusConnection</a>.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structDBusMessageFilter.html">DBusMessageFilter</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Internal struct representing a message filter function. <a href="structDBusMessageFilter.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structDBusPreallocatedSend.html">DBusPreallocatedSend</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Internals of <a class="el" href="structDBusPreallocatedSend.html" title="Internals of DBusPreallocatedSend.">DBusPreallocatedSend</a>. <a href="structDBusPreallocatedSend.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structDBusConnection.html">DBusConnection</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Implementation details of <a class="el" href="structDBusConnection.html" title="Implementation details of DBusConnection.">DBusConnection</a>. <a href="structDBusConnection.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaec8158f55878d1a6459ebdc9950fa783"></a><!-- doxytag: member="DBusConnectionInternals::DBusMessageFilter" ref="gaec8158f55878d1a6459ebdc9950fa783" args="" -->
typedef struct <a class="el" href="structDBusMessageFilter.html">DBusMessageFilter</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusConnectionInternals.html#gaec8158f55878d1a6459ebdc9950fa783">DBusMessageFilter</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Internal struct representing a message filter function. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab3c673c1e36e293c5f2baa92418603a3"></a><!-- doxytag: member="DBusConnectionInternals::DBusWatchAddFunction" ref="gab3c673c1e36e293c5f2baa92418603a3" args=")(DBusWatchList *list, DBusWatch *watch)" -->
typedef <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>(* </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusConnectionInternals.html#gab3c673c1e36e293c5f2baa92418603a3">DBusWatchAddFunction</a> )(<a class="el" href="structDBusWatchList.html">DBusWatchList</a> *list, <a class="el" href="structDBusWatch.html">DBusWatch</a> *watch)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Function to be called in protected_change_watch() with refcount held. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga475a0e9a2f2b7a279ba07fa3352114d4"></a><!-- doxytag: member="DBusConnectionInternals::DBusWatchRemoveFunction" ref="ga475a0e9a2f2b7a279ba07fa3352114d4" args=")(DBusWatchList *list, DBusWatch *watch)" -->
typedef void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusConnectionInternals.html#ga475a0e9a2f2b7a279ba07fa3352114d4">DBusWatchRemoveFunction</a> )(<a class="el" href="structDBusWatchList.html">DBusWatchList</a> *list, <a class="el" href="structDBusWatch.html">DBusWatch</a> *watch)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Function to be called in protected_change_watch() with refcount held. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga851f0958d46980f5a39bcfb874a4cb78"></a><!-- doxytag: member="DBusConnectionInternals::DBusWatchToggleFunction" ref="ga851f0958d46980f5a39bcfb874a4cb78" args=")(DBusWatchList *list, DBusWatch *watch, dbus_bool_t enabled)" -->
typedef void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusConnectionInternals.html#ga851f0958d46980f5a39bcfb874a4cb78">DBusWatchToggleFunction</a> )(<a class="el" href="structDBusWatchList.html">DBusWatchList</a> *list, <a class="el" href="structDBusWatch.html">DBusWatch</a> *watch, <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> enabled)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Function to be called in protected_change_watch() with refcount held. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6ca28a0af7de84c51fdbafe8786d3446"></a><!-- doxytag: member="DBusConnectionInternals::DBusTimeoutAddFunction" ref="ga6ca28a0af7de84c51fdbafe8786d3446" args=")(DBusTimeoutList *list, DBusTimeout *timeout)" -->
typedef <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>(* </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusConnectionInternals.html#ga6ca28a0af7de84c51fdbafe8786d3446">DBusTimeoutAddFunction</a> )(<a class="el" href="structDBusTimeoutList.html">DBusTimeoutList</a> *list, <a class="el" href="structDBusTimeout.html">DBusTimeout</a> *timeout)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Function to be called in protected_change_timeout() with refcount held. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafe75d05f2abf712c7fe13691ef27754c"></a><!-- doxytag: member="DBusConnectionInternals::DBusTimeoutRemoveFunction" ref="gafe75d05f2abf712c7fe13691ef27754c" args=")(DBusTimeoutList *list, DBusTimeout *timeout)" -->
typedef void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusConnectionInternals.html#gafe75d05f2abf712c7fe13691ef27754c">DBusTimeoutRemoveFunction</a> )(<a class="el" href="structDBusTimeoutList.html">DBusTimeoutList</a> *list, <a class="el" href="structDBusTimeout.html">DBusTimeout</a> *timeout)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Function to be called in protected_change_timeout() with refcount held. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1b4c97e7ef6f2cb8704cf74acc03c727"></a><!-- doxytag: member="DBusConnectionInternals::DBusTimeoutToggleFunction" ref="ga1b4c97e7ef6f2cb8704cf74acc03c727" args=")(DBusTimeoutList *list, DBusTimeout *timeout, dbus_bool_t enabled)" -->
typedef void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusConnectionInternals.html#ga1b4c97e7ef6f2cb8704cf74acc03c727">DBusTimeoutToggleFunction</a> )(<a class="el" href="structDBusTimeoutList.html">DBusTimeoutList</a> *list, <a class="el" href="structDBusTimeout.html">DBusTimeout</a> *timeout, <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> enabled)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Function to be called in protected_change_timeout() with refcount held. <br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusConnectionInternals.html#ga4fe0c8f7b72dc89b9e1a3110db2f778e">_dbus_connection_lock</a> (<a class="el" href="structDBusConnection.html">DBusConnection</a> *connection)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Acquires the connection lock. <a href="#ga4fe0c8f7b72dc89b9e1a3110db2f778e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusConnectionInternals.html#ga3db10d48ec16e485d5a638aacebd4ad2">_dbus_connection_unlock</a> (<a class="el" href="structDBusConnection.html">DBusConnection</a> *connection)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Releases the connection lock. <a href="#ga3db10d48ec16e485d5a638aacebd4ad2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusConnectionInternals.html#gac1b92eba0aeee294dc28fcc260c9b749">_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 class="mdescLeft"> </td><td class="mdescRight">Adds a message-containing list link to the incoming message queue, taking ownership of the link and the message's current refcount. <a href="#gac1b92eba0aeee294dc28fcc260c9b749"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusConnectionInternals.html#gadb7a525dc6b566b575ee4f9b20028b04">_dbus_connection_queue_synthesized_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 class="mdescLeft"> </td><td class="mdescRight">Adds a link + message to the incoming message queue. <a href="#gadb7a525dc6b566b575ee4f9b20028b04"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusConnectionInternals.html#ga3d31a01751860b67f960dcaffb7bb4ef">_dbus_connection_has_messages_to_send_unlocked</a> (<a class="el" href="structDBusConnection.html">DBusConnection</a> *connection)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Checks whether there are messages in the outgoing message queue. <a href="#ga3d31a01751860b67f960dcaffb7bb4ef"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusConnectionInternals.html#ga2210bb5734c1a04d0d654b026f27d94e">dbus_connection_has_messages_to_send</a> (<a class="el" href="structDBusConnection.html">DBusConnection</a> *connection)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Checks whether there are messages in the outgoing message queue. <a href="#ga2210bb5734c1a04d0d654b026f27d94e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusConnectionInternals.html#ga3955cd53ac4f671a5bb54019887389a7">_dbus_connection_get_message_to_send</a> (<a class="el" href="structDBusConnection.html">DBusConnection</a> *connection)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the next outgoing message. <a href="#ga3955cd53ac4f671a5bb54019887389a7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusConnectionInternals.html#gab93fd3666217ee339c4d2e8d4d33e63c">_dbus_connection_message_sent_unlocked</a> (<a class="el" href="structDBusConnection.html">DBusConnection</a> *connection, <a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Notifies the connection that a message has been sent, so the message can be removed from the outgoing queue. <a href="#gab93fd3666217ee339c4d2e8d4d33e63c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusConnectionInternals.html#ga82adef36b4cd583bc1146eae5756c063">_dbus_connection_add_watch_unlocked</a> (<a class="el" href="structDBusConnection.html">DBusConnection</a> *connection, <a class="el" href="structDBusWatch.html">DBusWatch</a> *watch)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Adds a watch using the connection's DBusAddWatchFunction if available. <a href="#ga82adef36b4cd583bc1146eae5756c063"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusConnectionInternals.html#ga65fc02c0756d0c7caaa39cd60922c99b">_dbus_connection_remove_watch_unlocked</a> (<a class="el" href="structDBusConnection.html">DBusConnection</a> *connection, <a class="el" href="structDBusWatch.html">DBusWatch</a> *watch)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Removes a watch using the connection's DBusRemoveWatchFunction if available. <a href="#ga65fc02c0756d0c7caaa39cd60922c99b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusConnectionInternals.html#ga6c00e2eaf225b154760976af5688d250">_dbus_connection_toggle_watch_unlocked</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#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> enabled)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Toggles a watch and notifies app via connection's DBusWatchToggledFunction if available. <a href="#ga6c00e2eaf225b154760976af5688d250"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusConnectionInternals.html#ga69e87e3be94b8c681585ec870e39a64a">_dbus_connection_add_timeout_unlocked</a> (<a class="el" href="structDBusConnection.html">DBusConnection</a> *connection, <a class="el" href="structDBusTimeout.html">DBusTimeout</a> *timeout)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Adds a timeout using the connection's DBusAddTimeoutFunction if available. <a href="#ga69e87e3be94b8c681585ec870e39a64a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusConnectionInternals.html#gabaa6d26f6eca30782904af1ceb703bd1">_dbus_connection_remove_timeout_unlocked</a> (<a class="el" href="structDBusConnection.html">DBusConnection</a> *connection, <a class="el" href="structDBusTimeout.html">DBusTimeout</a> *timeout)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Removes a timeout using the connection's DBusRemoveTimeoutFunction if available. <a href="#gabaa6d26f6eca30782904af1ceb703bd1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusConnectionInternals.html#ga165dcfd8b995ff0edd19aebcf3e1a61a">_dbus_connection_toggle_timeout_unlocked</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#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> enabled)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Toggles a timeout and notifies app via connection's DBusTimeoutToggledFunction if available. <a href="#ga165dcfd8b995ff0edd19aebcf3e1a61a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusConnectionInternals.html#ga968196bee49659e75c54b53d7c85fa51">_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 class="mdescLeft"> </td><td class="mdescRight">Removes a pending call from the connection, such that the pending reply will be ignored. <a href="#ga968196bee49659e75c54b53d7c85fa51"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusConnectionInternals.html#ga283f0254537c4bf4453dbed6fad2e21e">_dbus_connection_do_iteration_unlocked</a> (<a class="el" href="structDBusConnection.html">DBusConnection</a> *connection, <a class="el" href="structDBusPendingCall.html">DBusPendingCall</a> *pending, unsigned int flags, int timeout_milliseconds)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Queues incoming messages and sends outgoing messages for this connection, optionally blocking in the process. <a href="#ga283f0254537c4bf4453dbed6fad2e21e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusConnectionInternals.html#ga2cdffe9215251b69cb39ff36b9f50e6c">_dbus_connection_new_for_transport</a> (<a class="el" href="structDBusTransport.html">DBusTransport</a> *transport)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a new connection for the given transport. <a href="#ga2cdffe9215251b69cb39ff36b9f50e6c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusConnectionInternals.html#ga7151f75b5d2308ec80cfe893aba72aa1">_dbus_connection_ref_unlocked</a> (<a class="el" href="structDBusConnection.html">DBusConnection</a> *connection)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Increments the reference count of a <a class="el" href="structDBusConnection.html" title="Implementation details of DBusConnection.">DBusConnection</a>. <a href="#ga7151f75b5d2308ec80cfe893aba72aa1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusConnectionInternals.html#ga9ffbd9aa4f07cb30d92887e956a9fd43">_dbus_connection_unref_unlocked</a> (<a class="el" href="structDBusConnection.html">DBusConnection</a> *connection)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Decrements the reference count of a <a class="el" href="structDBusConnection.html" title="Implementation details of DBusConnection.">DBusConnection</a>. <a href="#ga9ffbd9aa4f07cb30d92887e956a9fd43"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusConnectionInternals.html#ga12756797bd5c1918aa065f9c37ed7bba">_dbus_connection_handle_watch</a> (<a class="el" href="structDBusWatch.html">DBusWatch</a> *watch, unsigned int condition, void *data)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">A callback for use with dbus_watch_new() to create a <a class="el" href="structDBusWatch.html" title="Implementation of DBusWatch.">DBusWatch</a>. <a href="#ga12756797bd5c1918aa065f9c37ed7bba"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusConnectionInternals.html#gadc46f7abfe925f9860fc8c64aeb29ad2">_dbus_connection_close_possibly_shared</a> (<a class="el" href="structDBusConnection.html">DBusConnection</a> *connection)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Closes a shared OR private connection, while <a class="el" href="group__DBusConnection.html#ga2522ac5075dfe0a1535471f6e045e1ee" title="Closes a private connection, so no further data can be sent or received.">dbus_connection_close()</a> can only be used on private connections. <a href="#gadc46f7abfe925f9860fc8c64aeb29ad2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusConnectionInternals.html#ga2974eb1c261305fafc635e14fc575d03">_dbus_connection_send_and_unlock</a> (<a class="el" href="structDBusConnection.html">DBusConnection</a> *connection, <a class="el" href="structDBusMessage.html">DBusMessage</a> *message, <a class="el" href="group__DBusTypes.html#gaf513803b030613a669cc7ef199f90a8b">dbus_uint32_t</a> *client_serial)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Like <a class="el" href="group__DBusConnection.html#gae1cb64f4cf550949b23fd3a756b2f7d0" title="Adds a message to the outgoing message queue.">dbus_connection_send()</a>, but assumes the connection is already locked on function entry, and unlocks before returning. <a href="#ga2974eb1c261305fafc635e14fc575d03"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusConnectionInternals.html#ga9f9665902c763bd1ddf9d9bc57d7a7ba">_dbus_connection_close_if_only_one_ref</a> (<a class="el" href="structDBusConnection.html">DBusConnection</a> *connection)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Used internally to handle the semantics of <a class="el" href="group__DBusServer.html#gaa14d9109e04adccffd9a40460c28c53b" title="Sets a function to be used for handling new connections.">dbus_server_set_new_connection_function()</a>. <a href="#ga9f9665902c763bd1ddf9d9bc57d7a7ba"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusConnectionInternals.html#gad5e725e66dc16a411544e25675fb9fba">_dbus_connection_block_pending_call</a> (<a class="el" href="structDBusPendingCall.html">DBusPendingCall</a> *pending)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Blocks until a pending call times out or gets a reply. <a href="#gad5e725e66dc16a411544e25675fb9fba"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusConnectionInternals.html#gac6dba97d98f486b87468ae8076349a66">_dbus_connection_get_pending_fds_count</a> (<a class="el" href="structDBusConnection.html">DBusConnection</a> *connection)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Return how many file descriptors are pending in the loader. <a href="#gac6dba97d98f486b87468ae8076349a66"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusConnectionInternals.html#gac84ff2ad1060326f8c1f94a171fefa98">_dbus_connection_set_pending_fds_function</a> (<a class="el" href="structDBusConnection.html">DBusConnection</a> *connection, DBusPendingFdsChangeFunction callback, void *data)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Register a function to be called whenever the number of pending file descriptors in the loader change. <a href="#gac84ff2ad1060326f8c1f94a171fefa98"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<p>Implementation details of <a class="el" href="structDBusConnection.html" title="Implementation details of DBusConnection.">DBusConnection</a>. </p>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ga69e87e3be94b8c681585ec870e39a64a"></a><!-- doxytag: member="dbus-connection.c::_dbus_connection_add_timeout_unlocked" ref="ga69e87e3be94b8c681585ec870e39a64a" args="(DBusConnection *connection, DBusTimeout *timeout)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusConnectionInternals.html#ga69e87e3be94b8c681585ec870e39a64a">_dbus_connection_add_timeout_unlocked</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td>
<td class="paramname"><em>connection</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusTimeout.html">DBusTimeout</a> * </td>
<td class="paramname"><em>timeout</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Adds a timeout using the connection's DBusAddTimeoutFunction if available. </p>
<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. Connection lock should be held when calling this.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">connection</td><td>the connection. </td></tr>
<tr><td class="paramname">timeout</td><td>the timeout to add. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to "1".">TRUE</a> on success. </dd></dl>
<p>Definition at line <a class="el" href="dbus-connection_8c_source.html#l00867">867</a> of file <a class="el" href="dbus-connection_8c_source.html">dbus-connection.c</a>.</p>
<p>References <a class="el" href="dbus-timeout_8c_source.html#l00310">_dbus_timeout_list_add_timeout()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>
</div>
</div>
<a class="anchor" id="ga82adef36b4cd583bc1146eae5756c063"></a><!-- doxytag: member="dbus-connection.c::_dbus_connection_add_watch_unlocked" ref="ga82adef36b4cd583bc1146eae5756c063" args="(DBusConnection *connection, DBusWatch *watch)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusConnectionInternals.html#ga82adef36b4cd583bc1146eae5756c063">_dbus_connection_add_watch_unlocked</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td>
<td class="paramname"><em>connection</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusWatch.html">DBusWatch</a> * </td>
<td class="paramname"><em>watch</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Adds a watch using the connection's DBusAddWatchFunction if available. </p>
<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. Connection lock should be held when calling this.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">connection</td><td>the connection. </td></tr>
<tr><td class="paramname">watch</td><td>the watch to add. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to "1".">TRUE</a> on success. </dd></dl>
<p>Definition at line <a class="el" href="dbus-connection_8c_source.html#l00743">743</a> of file <a class="el" href="dbus-connection_8c_source.html">dbus-connection.c</a>.</p>
<p>References <a class="el" href="dbus-watch_8c_source.html#l00376">_dbus_watch_list_add_watch()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>
</div>
</div>
<a class="anchor" id="gad5e725e66dc16a411544e25675fb9fba"></a><!-- doxytag: member="dbus-connection.c::_dbus_connection_block_pending_call" ref="gad5e725e66dc16a411544e25675fb9fba" args="(DBusPendingCall *pending)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="group__DBusConnectionInternals.html#gad5e725e66dc16a411544e25675fb9fba">_dbus_connection_block_pending_call</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusPendingCall.html">DBusPendingCall</a> * </td>
<td class="paramname"><em>pending</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Blocks until a pending call times out or gets a reply. </p>
<p>Does not re-enter the main loop or run filter/path-registered callbacks. The reply to the message will not be seen by filter callbacks.</p>
<p>Returns immediately if pending call already got a reply.</p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000008">Todo:</a></b></dt><dd>could use performance improvements (it keeps scanning the whole message queue for example)</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">pending</td><td>the pending call we block for a reply on </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="dbus-connection_8c_source.html#l02379">2379</a> of file <a class="el" href="dbus-connection_8c_source.html">dbus-connection.c</a>.</p>
<p>References <a class="el" href="dbus-connection_8c_source.html#l01198">_dbus_connection_do_iteration_unlocked()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02672">_dbus_get_monotonic_time()</a>, <a class="el" href="dbus-pending-call_8c_source.html#l00480">_dbus_pending_call_get_completed_unlocked()</a>, <a class="el" href="dbus-pending-call_8c_source.html#l00323">_dbus_pending_call_get_connection_and_lock()</a>, <a class="el" href="dbus-pending-call_8c_source.html#l00293">_dbus_pending_call_get_reply_serial_unlocked()</a>, <a class="el" href="dbus-pending-call_8c_source.html#l00279">_dbus_pending_call_get_timeout_unlocked()</a>, <a class="el" href="dbus-pending-call_8c_source.html#l00053">CONNECTION_LOCK</a>, <a class="el" href="dbus-connection_8h_source.html#l00081">DBUS_DISPATCH_DATA_REMAINS</a>, <a class="el" href="dbus-connection_8h_source.html#l00083">DBUS_DISPATCH_NEED_MEMORY</a>, <a class="el" href="dbus-protocol_8h_source.html#l00384">DBUS_ERROR_DISCONNECTED</a>, <a class="el" href="dbus-pending-call_8c_source.html#l00679">dbus_pending_call_get_completed()</a>, <a class="el" href="dbus-pending-call_8c_source.html#l00577">dbus_pending_call_ref()</a>, <a class="el" href="dbus-pending-call_8c_source.html#l00597">dbus_pending_call_unref()</a>, <a class="el" href="dbus-timeout_8c_source.html#l00416">dbus_timeout_get_interval()</a>, <a class="el" href="dbus-connection_8c_source.html#l00292">DBusConnection::disconnect_message_link</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>
<p>Referenced by <a class="el" href="dbus-pending-call_8c_source.html#l00737">dbus_pending_call_block()</a>.</p>
</div>
</div>
<a class="anchor" id="ga9f9665902c763bd1ddf9d9bc57d7a7ba"></a><!-- doxytag: member="dbus-connection.c::_dbus_connection_close_if_only_one_ref" ref="ga9f9665902c763bd1ddf9d9bc57d7a7ba" args="(DBusConnection *connection)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="group__DBusConnectionInternals.html#ga9f9665902c763bd1ddf9d9bc57d7a7ba">_dbus_connection_close_if_only_one_ref</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td>
<td class="paramname"><em>connection</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Used internally to handle the semantics of <a class="el" href="group__DBusServer.html#gaa14d9109e04adccffd9a40460c28c53b" title="Sets a function to be used for handling new connections.">dbus_server_set_new_connection_function()</a>. </p>
<p>If the new connection function does not ref the connection, we want to close it.</p>
<p>A bit of a hack, probably the new connection function should have returned a value for whether to close, or should have had to close the connection itself if it didn't want it.</p>
<p>But, this works OK as long as the new connection function doesn't do anything crazy like keep the connection around without ref'ing it.</p>
<p>We have to lock the connection across refcount check and close in case the new connection function spawns a thread that closes and unrefs. In that case, if the app thread closes and unrefs first, we'll harmlessly close again; if the app thread still has the ref, we'll close and then the app will close harmlessly. If the app unrefs without closing, the app is broken since if the app refs from the new connection function it is supposed to also close.</p>
<p>If we didn't atomically check the refcount and close with the lock held though, we could screw this up.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">connection</td><td>the connection </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="dbus-connection_8c_source.html#l02146">2146</a> of file <a class="el" href="dbus-connection_8c_source.html">dbus-connection.c</a>.</p>
<p>References <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02548">_dbus_atomic_get()</a>, <a class="el" href="dbus-pending-call_8c_source.html#l00053">CONNECTION_LOCK</a>, <a class="el" href="dbus-pending-call_8c_source.html#l00057">CONNECTION_UNLOCK</a>, and <a class="el" href="dbus-connection_8c_source.html#l00258">DBusConnection::refcount</a>.</p>
</div>
</div>
<a class="anchor" id="gadc46f7abfe925f9860fc8c64aeb29ad2"></a><!-- doxytag: member="dbus-connection.c::_dbus_connection_close_possibly_shared" ref="gadc46f7abfe925f9860fc8c64aeb29ad2" args="(DBusConnection *connection)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="group__DBusConnectionInternals.html#gadc46f7abfe925f9860fc8c64aeb29ad2">_dbus_connection_close_possibly_shared</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td>
<td class="paramname"><em>connection</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Closes a shared OR private connection, while <a class="el" href="group__DBusConnection.html#ga2522ac5075dfe0a1535471f6e045e1ee" title="Closes a private connection, so no further data can be sent or received.">dbus_connection_close()</a> can only be used on private connections. </p>
<p>Should only be called by the dbus code that owns the connection - an owner must be known, the open/close state is like malloc/free, not like ref/unref.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">connection</td><td>the connection </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="dbus-connection_8c_source.html#l01948">1948</a> of file <a class="el" href="dbus-connection_8c_source.html">dbus-connection.c</a>.</p>
<p>References <a class="el" href="dbus-memory_8c_source.html#l00781">_dbus_current_generation</a>, <a class="el" href="dbus-pending-call_8c_source.html#l00053">CONNECTION_LOCK</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>
</div>
</div>
<a class="anchor" id="ga283f0254537c4bf4453dbed6fad2e21e"></a><!-- doxytag: member="dbus-connection.c::_dbus_connection_do_iteration_unlocked" ref="ga283f0254537c4bf4453dbed6fad2e21e" args="(DBusConnection *connection, DBusPendingCall *pending, unsigned int flags, int timeout_milliseconds)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="group__DBusConnectionInternals.html#ga283f0254537c4bf4453dbed6fad2e21e">_dbus_connection_do_iteration_unlocked</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td>
<td class="paramname"><em>connection</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusPendingCall.html">DBusPendingCall</a> * </td>
<td class="paramname"><em>pending</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int </td>
<td class="paramname"><em>flags</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>timeout_milliseconds</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Queues incoming messages and sends outgoing messages for this connection, optionally blocking in the process. </p>
<p>Each call to <a class="el" href="group__DBusConnectionInternals.html#ga283f0254537c4bf4453dbed6fad2e21e" title="Queues incoming messages and sends outgoing messages for this connection, optionally blocking in the ...">_dbus_connection_do_iteration_unlocked()</a> will call select() or poll() one time and then read or write data if possible.</p>
<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>
<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>
<p>The timeout_milliseconds parameter does nothing unless the iteration is blocking.</p>
<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.</p>
<p>If pending is not NULL then a check is made if the pending call is completed after the io path has been required. If the call has been completed nothing is done. This must be done since the _dbus_connection_acquire_io_path releases the connection lock for a while.</p>
<p>Called with connection lock held.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">connection</td><td>the connection. </td></tr>
<tr><td class="paramname">pending</td><td>the pending call that should be checked or NULL </td></tr>
<tr><td class="paramname">flags</td><td>iteration flags. </td></tr>
<tr><td class="paramname">timeout_milliseconds</td><td>maximum blocking time, or -1 for no limit. </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="dbus-connection_8c_source.html#l01198">1198</a> of file <a class="el" href="dbus-connection_8c_source.html">dbus-connection.c</a>.</p>
<p>References <a class="el" href="dbus-pending-call_8c_source.html#l00480">_dbus_pending_call_get_completed_unlocked()</a>, <a class="el" href="dbus-pending-call_8c_source.html#l00293">_dbus_pending_call_get_reply_serial_unlocked()</a>, <a class="el" href="dbus-transport_8c_source.html#l00984">_dbus_transport_do_iteration()</a>, <a class="el" href="dbus-connection_8c_source.html#l00275">DBusConnection::n_outgoing</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="dbus-connection_8c_source.html#l00280">DBusConnection::transport</a>.</p>
<p>Referenced by <a class="el" href="dbus-connection_8c_source.html#l02379">_dbus_connection_block_pending_call()</a>.</p>
</div>
</div>
<a class="anchor" id="ga3955cd53ac4f671a5bb54019887389a7"></a><!-- doxytag: member="dbus-connection.c::_dbus_connection_get_message_to_send" ref="ga3955cd53ac4f671a5bb54019887389a7" args="(DBusConnection *connection)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structDBusMessage.html">DBusMessage</a>* <a class="el" href="group__DBusConnectionInternals.html#ga3955cd53ac4f671a5bb54019887389a7">_dbus_connection_get_message_to_send</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td>
<td class="paramname"><em>connection</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Gets the next outgoing message. </p>
<p>The message remains in the queue, and the caller does not own a reference to it.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">connection</td><td>the connection. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the message to be sent. </dd></dl>
<p>Definition at line <a class="el" href="dbus-connection_8c_source.html#l00609">609</a> of file <a class="el" href="dbus-connection_8c_source.html">dbus-connection.c</a>.</p>
<p>References <a class="el" href="dbus-list_8c_source.html#l00596">_dbus_list_get_last()</a>, and <a class="el" href="dbus-connection_8c_source.html#l00267">DBusConnection::outgoing_messages</a>.</p>
</div>
</div>
<a class="anchor" id="gac6dba97d98f486b87468ae8076349a66"></a><!-- doxytag: member="dbus-connection.c::_dbus_connection_get_pending_fds_count" ref="gac6dba97d98f486b87468ae8076349a66" args="(DBusConnection *connection)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="group__DBusConnectionInternals.html#gac6dba97d98f486b87468ae8076349a66">_dbus_connection_get_pending_fds_count</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td>
<td class="paramname"><em>connection</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Return how many file descriptors are pending in the loader. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">connection</td><td>the connection </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="dbus-connection_8c_source.html#l02558">2558</a> of file <a class="el" href="dbus-connection_8c_source.html">dbus-connection.c</a>.</p>
<p>References <a class="el" href="dbus-transport_8c_source.html#l01521">_dbus_transport_get_pending_fds_count()</a>, and <a class="el" href="dbus-connection_8c_source.html#l00280">DBusConnection::transport</a>.</p>
</div>
</div>
<a class="anchor" id="ga12756797bd5c1918aa065f9c37ed7bba"></a><!-- doxytag: member="dbus-connection.c::_dbus_connection_handle_watch" ref="ga12756797bd5c1918aa065f9c37ed7bba" args="(DBusWatch *watch, unsigned int condition, void *data)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusConnectionInternals.html#ga12756797bd5c1918aa065f9c37ed7bba">_dbus_connection_handle_watch</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusWatch.html">DBusWatch</a> * </td>
<td class="paramname"><em>watch</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int </td>
<td class="paramname"><em>condition</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void * </td>
<td class="paramname"><em>data</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>A callback for use with dbus_watch_new() to create a <a class="el" href="structDBusWatch.html" title="Implementation of DBusWatch.">DBusWatch</a>. </p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000007">Todo:</a></b></dt><dd>This is basically a hack - we could delete <a class="el" href="group__DBusTransport.html#ga4a010098fe079eb6f201ff034d15fdff" title="Handles a watch by reading data, writing data, or disconnecting the transport, as appropriate for the...">_dbus_transport_handle_watch()</a> and the virtual handle_watch in <a class="el" href="structDBusTransport.html" title="Object representing a transport such as a socket.">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#ga12756797bd5c1918aa065f9c37ed7bba" title="A callback for use with dbus_watch_new() to create a DBusWatch.">_dbus_connection_handle_watch()</a> implementation.</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">watch</td><td>the watch. </td></tr>
<tr><td class="paramname">condition</td><td>the current condition of the file descriptors being watched. </td></tr>
<tr><td class="paramname">data</td><td>must be a pointer to a <a class="el" href="structDBusConnection.html" title="Implementation details of DBusConnection.">DBusConnection</a> </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to "0".">FALSE</a> if the IO condition may not have been fully handled due to lack of memory </dd></dl>
<p>Definition at line <a class="el" href="dbus-connection_8c_source.html#l01486">1486</a> of file <a class="el" href="dbus-connection_8c_source.html">dbus-connection.c</a>.</p>
<p>References <a class="el" href="dbus-transport_8c_source.html#l00889">_dbus_transport_handle_watch()</a>, <a class="el" href="dbus-pending-call_8c_source.html#l00053">CONNECTION_LOCK</a>, <a class="el" href="dbus-pending-call_8c_source.html#l00057">CONNECTION_UNLOCK</a>, <a class="el" href="dbus-connection_8c_source.html#l00280">DBusConnection::transport</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>
</div>
</div>
<a class="anchor" id="ga3d31a01751860b67f960dcaffb7bb4ef"></a><!-- doxytag: member="dbus-connection.c::_dbus_connection_has_messages_to_send_unlocked" ref="ga3d31a01751860b67f960dcaffb7bb4ef" args="(DBusConnection *connection)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusConnectionInternals.html#ga3d31a01751860b67f960dcaffb7bb4ef">_dbus_connection_has_messages_to_send_unlocked</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td>
<td class="paramname"><em>connection</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Checks whether there are messages in the outgoing message queue. </p>
<p>Called with connection lock held.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">connection</td><td>the connection. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to "1".">TRUE</a> if the outgoing queue is non-empty. </dd></dl>
<p>Definition at line <a class="el" href="dbus-connection_8c_source.html#l00572">572</a> of file <a class="el" href="dbus-connection_8c_source.html">dbus-connection.c</a>.</p>
<p>References <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="dbus-connection_8c_source.html#l00267">DBusConnection::outgoing_messages</a>.</p>
<p>Referenced by <a class="el" href="dbus-connection_8c_source.html#l00588">dbus_connection_has_messages_to_send()</a>.</p>
</div>
</div>
<a class="anchor" id="ga4fe0c8f7b72dc89b9e1a3110db2f778e"></a><!-- doxytag: member="dbus-connection.c::_dbus_connection_lock" ref="ga4fe0c8f7b72dc89b9e1a3110db2f778e" args="(DBusConnection *connection)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="group__DBusConnectionInternals.html#ga4fe0c8f7b72dc89b9e1a3110db2f778e">_dbus_connection_lock</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td>
<td class="paramname"><em>connection</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Acquires the connection lock. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">connection</td><td>the connection. </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="dbus-connection_8c_source.html#l00388">388</a> of file <a class="el" href="dbus-connection_8c_source.html">dbus-connection.c</a>.</p>
<p>References <a class="el" href="dbus-pending-call_8c_source.html#l00053">CONNECTION_LOCK</a>.</p>
<p>Referenced by <a class="el" href="dbus-object-tree_8c_source.html#l00903">_dbus_object_tree_dispatch_and_unlock()</a>.</p>
</div>
</div>
<a class="anchor" id="gab93fd3666217ee339c4d2e8d4d33e63c"></a><!-- doxytag: member="dbus-connection.c::_dbus_connection_message_sent_unlocked" ref="gab93fd3666217ee339c4d2e8d4d33e63c" args="(DBusConnection *connection, DBusMessage *message)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="group__DBusConnectionInternals.html#gab93fd3666217ee339c4d2e8d4d33e63c">_dbus_connection_message_sent_unlocked</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td>
<td class="paramname"><em>connection</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"><em>message</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Notifies the connection that a message has been sent, so the message can be removed from the outgoing queue. </p>
<p>Called with the connection lock held.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">connection</td><td>the connection. </td></tr>
<tr><td class="paramname">message</td><td>the message that was sent. </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="dbus-connection_8c_source.html#l00625">625</a> of file <a class="el" href="dbus-connection_8c_source.html">dbus-connection.c</a>.</p>
<p>References <a class="el" href="dbus-list_8c_source.html#l00580">_dbus_list_get_last_link()</a>, <a class="el" href="dbus-list_8c_source.html#l00333">_dbus_list_prepend_link()</a>, <a class="el" href="dbus-list_8c_source.html#l00499">_dbus_list_unlink()</a>, <a class="el" href="dbus-message_8c_source.html#l00352">_dbus_message_remove_counter()</a>, <a class="el" href="dbus-list_8h_source.html#l00038">DBusList::data</a>, <a class="el" href="dbus-message_8c_source.html#l03227">dbus_message_get_interface()</a>, <a class="el" href="dbus-message_8c_source.html#l03313">dbus_message_get_member()</a>, <a class="el" href="dbus-message_8c_source.html#l03096">dbus_message_get_path()</a>, <a class="el" href="dbus-message_8c_source.html#l03543">dbus_message_get_signature()</a>, <a class="el" href="dbus-message_8c_source.html#l01722">dbus_message_get_type()</a>, <a class="el" href="dbus-message_8c_source.html#l04691">dbus_message_type_to_string()</a>, <a class="el" href="dbus-connection_8c_source.html#l00269">DBusConnection::expired_messages</a>, <a class="el" href="dbus-connection_8c_source.html#l00275">DBusConnection::n_outgoing</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-connection_8c_source.html#l00278">DBusConnection::outgoing_counter</a>, and <a class="el" href="dbus-connection_8c_source.html#l00267">DBusConnection::outgoing_messages</a>.</p>
</div>
</div>
<a class="anchor" id="ga2cdffe9215251b69cb39ff36b9f50e6c"></a><!-- doxytag: member="dbus-connection.c::_dbus_connection_new_for_transport" ref="ga2cdffe9215251b69cb39ff36b9f50e6c" args="(DBusTransport *transport)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structDBusConnection.html">DBusConnection</a>* <a class="el" href="group__DBusConnectionInternals.html#ga2cdffe9215251b69cb39ff36b9f50e6c">_dbus_connection_new_for_transport</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusTransport.html">DBusTransport</a> * </td>
<td class="paramname"><em>transport</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Creates a new connection for the given transport. </p>
<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#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> if insufficient memory exists to create the connection.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">transport</td><td>the transport. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the new connection, or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> on failure. </dd></dl>
<p>Definition at line <a class="el" href="dbus-connection_8c_source.html#l01249">1249</a> of file <a class="el" href="dbus-connection_8c_source.html">dbus-connection.c</a>.</p>
<p>References <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02501">_dbus_atomic_inc()</a>, <a class="el" href="dbus-threads_8c_source.html#l00107">_dbus_cmutex_free_at_location()</a>, <a class="el" href="dbus-threads_8c_source.html#l00077">_dbus_cmutex_new_at_location()</a>, <a class="el" href="dbus-threads_8c_source.html#l00224">_dbus_condvar_free_at_location()</a>, <a class="el" href="dbus-threads_8c_source.html#l00199">_dbus_condvar_new_at_location()</a>, <a class="el" href="dbus-resources_8c_source.html#l00089">_dbus_counter_new()</a>, <a class="el" href="dbus-resources_8c_source.html#l00136">_dbus_counter_unref()</a>, <a class="el" href="dbus-memory_8c_source.html#l00781">_dbus_current_generation</a>, <a class="el" href="dbus-dataslot_8c_source.html#l00197">_dbus_data_slot_list_init()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02924">_dbus_disable_sigpipe()</a>, <a class="el" href="dbus-hash_8c_source.html#l00285">_dbus_hash_table_new()</a>, <a class="el" href="dbus-hash_8c_source.html#l00361">_dbus_hash_table_unref()</a>, <a class="el" href="dbus-list_8c_source.html#l00242">_dbus_list_alloc_link()</a>, <a class="el" href="dbus-list_8c_source.html#l00254">_dbus_list_free_link()</a>, <a class="el" href="dbus-object-tree_8c_source.html#l00092">_dbus_object_tree_new()</a>, <a class="el" href="dbus-object-tree_8c_source.html#l00143">_dbus_object_tree_unref()</a>, <a class="el" href="dbus-threads_8c_source.html#l00094">_dbus_rmutex_free_at_location()</a>, <a class="el" href="dbus-threads_8c_source.html#l00053">_dbus_rmutex_new_at_location()</a>, <a class="el" href="dbus-timeout_8c_source.html#l00211">_dbus_timeout_list_free()</a>, <a class="el" href="dbus-timeout_8c_source.html#l00194">_dbus_timeout_list_new()</a>, <a class="el" href="dbus-transport_8c_source.html#l00460">_dbus_transport_ref()</a>, <a class="el" href="dbus-transport_8c_source.html#l00927">_dbus_transport_set_connection()</a>, <a class="el" href="dbus-watch_8c_source.html#l00249">_dbus_watch_list_free()</a>, <a class="el" href="dbus-watch_8c_source.html#l00232">_dbus_watch_list_new()</a>, <a class="el" href="dbus-connection_8c_source.html#l00291">DBusConnection::client_serial</a>, <a class="el" href="dbus-pending-call_8c_source.html#l00053">CONNECTION_LOCK</a>, <a class="el" href="dbus-pending-call_8c_source.html#l00057">CONNECTION_UNLOCK</a>, <a class="el" href="dbus-connection_8h_source.html#l00082">DBUS_DISPATCH_COMPLETE</a>, <a class="el" href="dbus-memory_8c_source.html#l00701">dbus_free()</a>, <a class="el" href="dbus-hash_8h_source.html#l00070">DBUS_HASH_INT</a>, <a class="el" href="dbus-shared_8h_source.html#l00100">DBUS_INTERFACE_LOCAL</a>, <a class="el" href="dbus-message_8c_source.html#l01424">dbus_message_new_signal()</a>, <a class="el" href="dbus-message_8c_source.html#l01690">dbus_message_unref()</a>, <a class="el" href="dbus-memory_8h_source.html#l00059">dbus_new0</a>, <a class="el" href="dbus-shared_8h_source.html#l00082">DBUS_PATH_LOCAL</a>, <a class="el" href="dbus-connection_8c_source.html#l00292">DBusConnection::disconnect_message_link</a>, <a class="el" href="dbus-connection_8c_source.html#l00321">DBusConnection::disconnected_message_arrived</a>, <a class="el" href="dbus-connection_8c_source.html#l00325">DBusConnection::disconnected_message_processed</a>, <a class="el" href="dbus-connection_8c_source.html#l00263">DBusConnection::dispatch_cond</a>, <a class="el" href="dbus-connection_8c_source.html#l00262">DBusConnection::dispatch_mutex</a>, <a class="el" href="dbus-connection_8c_source.html#l00317">DBusConnection::exit_on_disconnect</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-connection_8c_source.html#l00284">DBusConnection::filter_list</a>, <a class="el" href="dbus-connection_8c_source.html#l00265">DBusConnection::io_path_cond</a>, <a class="el" href="dbus-connection_8c_source.html#l00264">DBusConnection::io_path_mutex</a>, <a class="el" href="dbus-connection_8c_source.html#l00302">DBusConnection::last_dispatch_status</a>, <a class="el" href="dbus-connection_8c_source.html#l00260">DBusConnection::mutex</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-connection_8c_source.html#l00304">DBusConnection::objects</a>, <a class="el" href="dbus-connection_8c_source.html#l00278">DBusConnection::outgoing_counter</a>, <a class="el" href="dbus-connection_8c_source.html#l00289">DBusConnection::pending_replies</a>, <a class="el" href="dbus-connection_8c_source.html#l00258">DBusConnection::refcount</a>, <a class="el" href="dbus-connection_8c_source.html#l00319">DBusConnection::route_peer_messages</a>, <a class="el" href="dbus-connection_8c_source.html#l00315">DBusConnection::shareable</a>, <a class="el" href="dbus-connection_8c_source.html#l00287">DBusConnection::slot_list</a>, <a class="el" href="dbus-connection_8c_source.html#l00286">DBusConnection::slot_mutex</a>, <a class="el" href="dbus-connection_8c_source.html#l00282">DBusConnection::timeouts</a>, <a class="el" href="dbus-connection_8c_source.html#l00280">DBusConnection::transport</a>, and <a class="el" href="dbus-connection_8c_source.html#l00281">DBusConnection::watches</a>.</p>
</div>
</div>
<a class="anchor" id="gac1b92eba0aeee294dc28fcc260c9b749"></a><!-- doxytag: member="dbus-connection.c::_dbus_connection_queue_received_message_link" ref="gac1b92eba0aeee294dc28fcc260c9b749" args="(DBusConnection *connection, DBusList *link)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="group__DBusConnectionInternals.html#gac1b92eba0aeee294dc28fcc260c9b749">_dbus_connection_queue_received_message_link</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td>
<td class="paramname"><em>connection</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> * </td>
<td class="paramname"><em>link</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Adds a message-containing list link to the incoming message queue, taking ownership of the link and the message's current refcount. </p>
<p>Cannot fail due to lack of memory.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">connection</td><td>the connection. </td></tr>
<tr><td class="paramname">link</td><td>the message link to queue. </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="dbus-connection_8c_source.html#l00480">480</a> of file <a class="el" href="dbus-connection_8c_source.html">dbus-connection.c</a>.</p>
<p>References <a class="el" href="dbus-connection_8c_source.html#l00885">_dbus_connection_remove_timeout_unlocked()</a>, <a class="el" href="dbus-hash_8c_source.html#l01074">_dbus_hash_table_lookup_int()</a>, <a class="el" href="dbus-list_8c_source.html#l00315">_dbus_list_append_link()</a>, <a class="el" href="dbus-pending-call_8c_source.html#l00279">_dbus_pending_call_get_timeout_unlocked()</a>, <a class="el" href="dbus-pending-call_8c_source.html#l00248">_dbus_pending_call_is_timeout_added_unlocked()</a>, <a class="el" href="dbus-pending-call_8c_source.html#l00263">_dbus_pending_call_set_timeout_added_unlocked()</a>, <a class="el" href="dbus-transport_8c_source.html#l00701">_dbus_transport_peek_is_authenticated()</a>, <a class="el" href="dbus-list_8h_source.html#l00038">DBusList::data</a>, <a class="el" href="dbus-message_8c_source.html#l03227">dbus_message_get_interface()</a>, <a class="el" href="dbus-message_8c_source.html#l03313">dbus_message_get_member()</a>, <a class="el" href="dbus-message_8c_source.html#l03096">dbus_message_get_path()</a>, <a class="el" href="dbus-message_8c_source.html#l01163">dbus_message_get_reply_serial()</a>, <a class="el" href="dbus-message_8c_source.html#l03543">dbus_message_get_signature()</a>, <a class="el" href="dbus-message_8c_source.html#l01722">dbus_message_get_type()</a>, <a class="el" href="dbus-message_8c_source.html#l04691">dbus_message_type_to_string()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-connection_8c_source.html#l00268">DBusConnection::incoming_messages</a>, <a class="el" href="dbus-connection_8c_source.html#l00276">DBusConnection::n_incoming</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-connection_8c_source.html#l00289">DBusConnection::pending_replies</a>, and <a class="el" href="dbus-connection_8c_source.html#l00280">DBusConnection::transport</a>.</p>
<p>Referenced by <a class="el" href="dbus-transport_8c_source.html#l01140">_dbus_transport_queue_messages()</a>.</p>
</div>
</div>
<a class="anchor" id="gadb7a525dc6b566b575ee4f9b20028b04"></a><!-- doxytag: member="dbus-connection.c::_dbus_connection_queue_synthesized_message_link" ref="gadb7a525dc6b566b575ee4f9b20028b04" args="(DBusConnection *connection, DBusList *link)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="group__DBusConnectionInternals.html#gadb7a525dc6b566b575ee4f9b20028b04">_dbus_connection_queue_synthesized_message_link</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td>
<td class="paramname"><em>connection</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> * </td>
<td class="paramname"><em>link</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Adds a link + message to the incoming message queue. </p>
<p>Can't fail. Takes ownership of both link and message.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">connection</td><td>the connection. </td></tr>
<tr><td class="paramname">link</td><td>the list node and message to queue. </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="dbus-connection_8c_source.html#l00545">545</a> of file <a class="el" href="dbus-connection_8c_source.html">dbus-connection.c</a>.</p>
<p>References <a class="el" href="dbus-list_8c_source.html#l00315">_dbus_list_append_link()</a>, <a class="el" href="dbus-list_8h_source.html#l00038">DBusList::data</a>, <a class="el" href="dbus-connection_8c_source.html#l00268">DBusConnection::incoming_messages</a>, and <a class="el" href="dbus-connection_8c_source.html#l00276">DBusConnection::n_incoming</a>.</p>
<p>Referenced by <a class="el" href="dbus-pending-call_8c_source.html#l00228">_dbus_pending_call_queue_timeout_error_unlocked()</a>.</p>
</div>
</div>
<a class="anchor" id="ga7151f75b5d2308ec80cfe893aba72aa1"></a><!-- doxytag: member="dbus-connection.c::_dbus_connection_ref_unlocked" ref="ga7151f75b5d2308ec80cfe893aba72aa1" args="(DBusConnection *connection)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structDBusConnection.html">DBusConnection</a>* <a class="el" href="group__DBusConnectionInternals.html#ga7151f75b5d2308ec80cfe893aba72aa1">_dbus_connection_ref_unlocked</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td>
<td class="paramname"><em>connection</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Increments the reference count of a <a class="el" href="structDBusConnection.html" title="Implementation details of DBusConnection.">DBusConnection</a>. </p>
<p>Requires that the caller already holds the connection lock.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">connection</td><td>the connection. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the connection. </dd></dl>
<p>Definition at line <a class="el" href="dbus-connection_8c_source.html#l01419">1419</a> of file <a class="el" href="dbus-connection_8c_source.html">dbus-connection.c</a>.</p>
<p>References <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02501">_dbus_atomic_inc()</a>, <a class="el" href="dbus-memory_8c_source.html#l00781">_dbus_current_generation</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="dbus-connection_8c_source.html#l00258">DBusConnection::refcount</a>.</p>
<p>Referenced by <a class="el" href="dbus-object-tree_8c_source.html#l00623">_dbus_object_tree_unregister_and_unlock()</a>, <a class="el" href="dbus-pending-call_8c_source.html#l00109">_dbus_pending_call_new_unlocked()</a>, <a class="el" href="dbus-transport_8c_source.html#l00724">_dbus_transport_try_to_authenticate()</a>, and <a class="el" href="dbus-connection_8c_source.html#l04549">dbus_connection_dispatch()</a>.</p>
</div>
</div>
<a class="anchor" id="ga968196bee49659e75c54b53d7c85fa51"></a><!-- doxytag: member="dbus-connection.c::_dbus_connection_remove_pending_call" ref="ga968196bee49659e75c54b53d7c85fa51" args="(DBusConnection *connection, DBusPendingCall *pending)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="group__DBusConnectionInternals.html#ga968196bee49659e75c54b53d7c85fa51">_dbus_connection_remove_pending_call</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td>
<td class="paramname"><em>connection</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusPendingCall.html">DBusPendingCall</a> * </td>
<td class="paramname"><em>pending</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Removes a pending call from the connection, such that the pending reply will be ignored. </p>
<p>May drop the last reference to the pending call.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">connection</td><td>the connection </td></tr>
<tr><td class="paramname">pending</td><td>the pending call </td></tr>
</table>
</dd>
</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>
<p>References <a class="el" href="dbus-pending-call_8c_source.html#l00053">CONNECTION_LOCK</a>.</p>
<p>Referenced by <a class="el" href="dbus-pending-call_8c_source.html#l00663">dbus_pending_call_cancel()</a>.</p>
</div>
</div>
<a class="anchor" id="gabaa6d26f6eca30782904af1ceb703bd1"></a><!-- doxytag: member="dbus-connection.c::_dbus_connection_remove_timeout_unlocked" ref="gabaa6d26f6eca30782904af1ceb703bd1" args="(DBusConnection *connection, DBusTimeout *timeout)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="group__DBusConnectionInternals.html#gabaa6d26f6eca30782904af1ceb703bd1">_dbus_connection_remove_timeout_unlocked</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td>
<td class="paramname"><em>connection</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusTimeout.html">DBusTimeout</a> * </td>
<td class="paramname"><em>timeout</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Removes a timeout using the connection's DBusRemoveTimeoutFunction if available. </p>
<p>It's an error to call this function on a timeout that was not previously added. Connection lock should be held when calling this.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">connection</td><td>the connection. </td></tr>
<tr><td class="paramname">timeout</td><td>the timeout to remove. </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="dbus-connection_8c_source.html#l00885">885</a> of file <a class="el" href="dbus-connection_8c_source.html">dbus-connection.c</a>.</p>
<p>References <a class="el" href="dbus-timeout_8c_source.html#l00340">_dbus_timeout_list_remove_timeout()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>
<p>Referenced by <a class="el" href="dbus-connection_8c_source.html#l00480">_dbus_connection_queue_received_message_link()</a>.</p>
</div>
</div>
<a class="anchor" id="ga65fc02c0756d0c7caaa39cd60922c99b"></a><!-- doxytag: member="dbus-connection.c::_dbus_connection_remove_watch_unlocked" ref="ga65fc02c0756d0c7caaa39cd60922c99b" args="(DBusConnection *connection, DBusWatch *watch)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="group__DBusConnectionInternals.html#ga65fc02c0756d0c7caaa39cd60922c99b">_dbus_connection_remove_watch_unlocked</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td>
<td class="paramname"><em>connection</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusWatch.html">DBusWatch</a> * </td>
<td class="paramname"><em>watch</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Removes a watch using the connection's DBusRemoveWatchFunction if available. </p>
<p>It's an error to call this function on a watch that was not previously added. Connection lock should be held when calling this.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">connection</td><td>the connection. </td></tr>
<tr><td class="paramname">watch</td><td>the watch to remove. </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="dbus-connection_8c_source.html#l00761">761</a> of file <a class="el" href="dbus-connection_8c_source.html">dbus-connection.c</a>.</p>
<p>References <a class="el" href="dbus-watch_8c_source.html#l00409">_dbus_watch_list_remove_watch()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>
</div>
</div>
<a class="anchor" id="ga2974eb1c261305fafc635e14fc575d03"></a><!-- doxytag: member="dbus-connection.c::_dbus_connection_send_and_unlock" ref="ga2974eb1c261305fafc635e14fc575d03" args="(DBusConnection *connection, DBusMessage *message, dbus_uint32_t *client_serial)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusConnectionInternals.html#ga2974eb1c261305fafc635e14fc575d03">_dbus_connection_send_and_unlock</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td>
<td class="paramname"><em>connection</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"><em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__DBusTypes.html#gaf513803b030613a669cc7ef199f90a8b">dbus_uint32_t</a> * </td>
<td class="paramname"><em>client_serial</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Like <a class="el" href="group__DBusConnection.html#gae1cb64f4cf550949b23fd3a756b2f7d0" title="Adds a message to the outgoing message queue.">dbus_connection_send()</a>, but assumes the connection is already locked on function entry, and unlocks before returning. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">connection</td><td>the connection </td></tr>
<tr><td class="paramname">message</td><td>the message to send </td></tr>
<tr><td class="paramname">client_serial</td><td>return location for client serial of sent message </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to "0".">FALSE</a> on out-of-memory </dd></dl>
<p>Definition at line <a class="el" href="dbus-connection_8c_source.html#l02098">2098</a> of file <a class="el" href="dbus-connection_8c_source.html">dbus-connection.c</a>.</p>
<p>References <a class="el" href="dbus-pending-call_8c_source.html#l00057">CONNECTION_UNLOCK</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>
<p>Referenced by <a class="el" href="dbus-connection_8c_source.html#l03302">dbus_connection_send()</a>.</p>
</div>
</div>
<a class="anchor" id="gac84ff2ad1060326f8c1f94a171fefa98"></a><!-- doxytag: member="dbus-connection.c::_dbus_connection_set_pending_fds_function" ref="gac84ff2ad1060326f8c1f94a171fefa98" args="(DBusConnection *connection, DBusPendingFdsChangeFunction callback, void *data)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="group__DBusConnectionInternals.html#gac84ff2ad1060326f8c1f94a171fefa98">_dbus_connection_set_pending_fds_function</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td>
<td class="paramname"><em>connection</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">DBusPendingFdsChangeFunction </td>
<td class="paramname"><em>callback</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void * </td>
<td class="paramname"><em>data</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Register a function to be called whenever the number of pending file descriptors in the loader change. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">connection</td><td>the connection </td></tr>
<tr><td class="paramname">callback</td><td>the callback </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="dbus-connection_8c_source.html#l02571">2571</a> of file <a class="el" href="dbus-connection_8c_source.html">dbus-connection.c</a>.</p>
<p>References <a class="el" href="dbus-transport_8c_source.html#l01534">_dbus_transport_set_pending_fds_function()</a>, and <a class="el" href="dbus-connection_8c_source.html#l00280">DBusConnection::transport</a>.</p>
</div>
</div>
<a class="anchor" id="ga165dcfd8b995ff0edd19aebcf3e1a61a"></a><!-- doxytag: member="dbus-connection.c::_dbus_connection_toggle_timeout_unlocked" ref="ga165dcfd8b995ff0edd19aebcf3e1a61a" args="(DBusConnection *connection, DBusTimeout *timeout, dbus_bool_t enabled)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="group__DBusConnectionInternals.html#ga165dcfd8b995ff0edd19aebcf3e1a61a">_dbus_connection_toggle_timeout_unlocked</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td>
<td class="paramname"><em>connection</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusTimeout.html">DBusTimeout</a> * </td>
<td class="paramname"><em>timeout</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td>
<td class="paramname"><em>enabled</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Toggles a timeout and notifies app via connection's DBusTimeoutToggledFunction if available. </p>
<p>It's an error to call this function on a timeout that was not previously added. Connection lock should be held when calling this.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">connection</td><td>the connection. </td></tr>
<tr><td class="paramname">timeout</td><td>the timeout to toggle. </td></tr>
<tr><td class="paramname">enabled</td><td>whether to enable or disable </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="dbus-connection_8c_source.html#l00905">905</a> of file <a class="el" href="dbus-connection_8c_source.html">dbus-connection.c</a>.</p>
<p>References <a class="el" href="dbus-timeout_8c_source.html#l00362">_dbus_timeout_list_toggle_timeout()</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>
</div>
</div>
<a class="anchor" id="ga6c00e2eaf225b154760976af5688d250"></a><!-- doxytag: member="dbus-connection.c::_dbus_connection_toggle_watch_unlocked" ref="ga6c00e2eaf225b154760976af5688d250" args="(DBusConnection *connection, DBusWatch *watch, dbus_bool_t enabled)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="group__DBusConnectionInternals.html#ga6c00e2eaf225b154760976af5688d250">_dbus_connection_toggle_watch_unlocked</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td>
<td class="paramname"><em>connection</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusWatch.html">DBusWatch</a> * </td>
<td class="paramname"><em>watch</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td>
<td class="paramname"><em>enabled</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Toggles a watch and notifies app via connection's DBusWatchToggledFunction if available. </p>
<p>It's an error to call this function on a watch that was not previously added. Connection lock should be held when calling this.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">connection</td><td>the connection. </td></tr>
<tr><td class="paramname">watch</td><td>the watch to toggle. </td></tr>
<tr><td class="paramname">enabled</td><td>whether to enable or disable </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="dbus-connection_8c_source.html#l00781">781</a> of file <a class="el" href="dbus-connection_8c_source.html">dbus-connection.c</a>.</p>
<p>References <a class="el" href="dbus-watch_8c_source.html#l00436">_dbus_watch_list_toggle_watch()</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>
</div>
</div>
<a class="anchor" id="ga3db10d48ec16e485d5a638aacebd4ad2"></a><!-- doxytag: member="dbus-connection.c::_dbus_connection_unlock" ref="ga3db10d48ec16e485d5a638aacebd4ad2" args="(DBusConnection *connection)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="group__DBusConnectionInternals.html#ga3db10d48ec16e485d5a638aacebd4ad2">_dbus_connection_unlock</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td>
<td class="paramname"><em>connection</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Releases the connection lock. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">connection</td><td>the connection. </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="dbus-connection_8c_source.html#l00399">399</a> of file <a class="el" href="dbus-connection_8c_source.html">dbus-connection.c</a>.</p>
<p>References <a class="el" href="dbus-list_8c_source.html#l00254">_dbus_list_free_link()</a>, <a class="el" href="dbus-list_8c_source.html#l00628">_dbus_list_pop_first_link()</a>, <a class="el" href="dbus-threads_8c_source.html#l00150">_dbus_rmutex_unlock()</a>, <a class="el" href="dbus-list_8h_source.html#l00038">DBusList::data</a>, <a class="el" href="dbus-message_8c_source.html#l01690">dbus_message_unref()</a>, <a class="el" href="dbus-connection_8c_source.html#l00269">DBusConnection::expired_messages</a>, <a class="el" href="dbus-connection_8c_source.html#l00260">DBusConnection::mutex</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>
<p>Referenced by <a class="el" href="dbus-object-tree_8c_source.html#l00903">_dbus_object_tree_dispatch_and_unlock()</a>, <a class="el" href="dbus-object-tree_8c_source.html#l01206">_dbus_object_tree_list_registered_and_unlock()</a>, and <a class="el" href="dbus-object-tree_8c_source.html#l00623">_dbus_object_tree_unregister_and_unlock()</a>.</p>
</div>
</div>
<a class="anchor" id="ga9ffbd9aa4f07cb30d92887e956a9fd43"></a><!-- doxytag: member="dbus-connection.c::_dbus_connection_unref_unlocked" ref="ga9ffbd9aa4f07cb30d92887e956a9fd43" args="(DBusConnection *connection)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="group__DBusConnectionInternals.html#ga9ffbd9aa4f07cb30d92887e956a9fd43">_dbus_connection_unref_unlocked</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td>
<td class="paramname"><em>connection</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Decrements the reference count of a <a class="el" href="structDBusConnection.html" title="Implementation details of DBusConnection.">DBusConnection</a>. </p>
<p>Requires that the caller already holds the connection lock.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">connection</td><td>the connection. </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="dbus-connection_8c_source.html#l01442">1442</a> of file <a class="el" href="dbus-connection_8c_source.html">dbus-connection.c</a>.</p>
<p>References <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02524">_dbus_atomic_dec()</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="dbus-connection_8c_source.html#l00258">DBusConnection::refcount</a>.</p>
<p>Referenced by <a class="el" href="dbus-transport_8c_source.html#l00724">_dbus_transport_try_to_authenticate()</a>.</p>
</div>
</div>
<a class="anchor" id="ga2210bb5734c1a04d0d654b026f27d94e"></a><!-- doxytag: member="dbus-connection.c::dbus_connection_has_messages_to_send" ref="ga2210bb5734c1a04d0d654b026f27d94e" args="(DBusConnection *connection)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusConnection.html#gac40563ec4c0e309d936daf3163ba9bb7">dbus_connection_has_messages_to_send</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusConnection.html">DBusConnection</a> * </td>
<td class="paramname"><em>connection</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Checks whether there are messages in the outgoing message queue. </p>
<p>Use <a class="el" href="group__DBusConnection.html#ga10e68d9d2f41d655a4151ddeb807ff54" title="Blocks until the outgoing message queue is empty.">dbus_connection_flush()</a> to block until all outgoing messages have been written to the underlying transport (such as a socket).</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">connection</td><td>the connection. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to "1".">TRUE</a> if the outgoing queue is non-empty. </dd></dl>
<p>Definition at line <a class="el" href="dbus-connection_8c_source.html#l00588">588</a> of file <a class="el" href="dbus-connection_8c_source.html">dbus-connection.c</a>.</p>
<p>References <a class="el" href="dbus-connection_8c_source.html#l00572">_dbus_connection_has_messages_to_send_unlocked()</a>, <a class="el" href="dbus-pending-call_8c_source.html#l00053">CONNECTION_LOCK</a>, <a class="el" href="dbus-pending-call_8c_source.html#l00057">CONNECTION_UNLOCK</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>
</div>
</div>
</div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Mar 3 2016 17:50:32 for D-Bus by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>