|
Server : Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8e-fips-rhel5 DAV/2 PHP/5.2.17 System : Linux localhost 2.6.18-419.el5 #1 SMP Fri Feb 24 22:47:42 UTC 2017 x86_64 User : nobody ( 99) PHP Version : 5.2.17 Disable Function : NONE Directory : /proc/21573/root/usr/share/devhelp/books/dbus/api/ |
Upload File : |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>D-Bus: A hierarchy of objects with container-contained relationship</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main Page</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>
<li><a href="pages.html"><span>Related Pages</span></a></li>
</ul></div>
<h1>A hierarchy of objects with container-contained relationship<br>
<small>
[<a class="el" href="group__DBusInternals.html">D-Bus secret internal implementation details</a>]</small>
</h1><a class="el" href="structDBusObjectTree.html">DBusObjectTree</a> is used by <a class="el" href="structDBusConnection.html">DBusConnection</a> to track the object tree.
<a href="#_details">More...</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structDBusObjectTree.html">DBusObjectTree</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Internals of <a class="el" href="structDBusObjectTree.html">DBusObjectTree</a>. <a href="structDBusObjectTree.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structDBusObjectSubtree.html">DBusObjectSubtree</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Struct representing a single registered subtree handler, or node that's a parent of a registered subtree handler. <a href="structDBusObjectSubtree.html#_details">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g7c65e59e0445cd294f82a4fb42e44772"></a><!-- doxytag: member="DBusObjectTree::VERBOSE_FIND" ref="g7c65e59e0445cd294f82a4fb42e44772" args="" -->
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusObjectTree.html#g7c65e59e0445cd294f82a4fb42e44772">VERBOSE_FIND</a> 0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Set to 1 to get a bunch of debug spew about finding the subtree nodes. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g9def2cd95c325a4ad26222cddbfed5d5"></a><!-- doxytag: member="DBusObjectTree::VERBOSE_DECOMPOSE" ref="g9def2cd95c325a4ad26222cddbfed5d5" args="" -->
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusObjectTree.html#g9def2cd95c325a4ad26222cddbfed5d5">VERBOSE_DECOMPOSE</a> 0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Set to 1 to get a bunch of spew about disassembling the path string. <br></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g797595db73034eabb225d933f859fc48"></a><!-- doxytag: member="DBusObjectTree::DBusObjectSubtree" ref="g797595db73034eabb225d933f859fc48" args="" -->
typedef <a class="el" href="structDBusObjectSubtree.html">DBusObjectSubtree</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusObjectTree.html#g797595db73034eabb225d933f859fc48">DBusObjectSubtree</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Subnode of the object hierarchy. <br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structDBusObjectTree.html">DBusObjectTree</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusObjectTree.html#g5920f14b487122f13a3d439952d5ed2e">_dbus_object_tree_new</a> (<a class="el" href="structDBusConnection.html">DBusConnection</a> *connection)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a new object tree, representing a mapping from paths to handler vtables. <a href="#g5920f14b487122f13a3d439952d5ed2e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structDBusObjectTree.html">DBusObjectTree</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusObjectTree.html#g144a3920922e8badf1018ce22b27d9c4">_dbus_object_tree_ref</a> (<a class="el" href="structDBusObjectTree.html">DBusObjectTree</a> *tree)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Increment the reference count. <a href="#g144a3920922e8badf1018ce22b27d9c4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusObjectTree.html#g7639e273ab160c422a7cef0cda60ded5">_dbus_object_tree_unref</a> (<a class="el" href="structDBusObjectTree.html">DBusObjectTree</a> *tree)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Decrement the reference count. <a href="#g7639e273ab160c422a7cef0cda60ded5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusObjectTree.html#ge8615fd56c31897732575d299edf00cc">_dbus_object_tree_register</a> (<a class="el" href="structDBusObjectTree.html">DBusObjectTree</a> *tree, <a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> fallback, const char **path, const <a class="el" href="structDBusObjectPathVTable.html">DBusObjectPathVTable</a> *vtable, void *user_data)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Registers a new subtree in the global object tree. <a href="#ge8615fd56c31897732575d299edf00cc"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusObjectTree.html#g3babe73ed342b6963997ef2efd73ef75">_dbus_object_tree_unregister_and_unlock</a> (<a class="el" href="structDBusObjectTree.html">DBusObjectTree</a> *tree, const char **path)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Unregisters an object subtree that was registered with the same path. <a href="#g3babe73ed342b6963997ef2efd73ef75"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusObjectTree.html#g1c51e43233ce0f3855c128f2555317eb">_dbus_object_tree_free_all_unlocked</a> (<a class="el" href="structDBusObjectTree.html">DBusObjectTree</a> *tree)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Free all the handlers in the tree. <a href="#g1c51e43233ce0f3855c128f2555317eb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusShared.html#g8244b29230187624c24986c24edab1de">DBusHandlerResult</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusObjectTree.html#gb64dcc8febde768db3404cd93b333e1e">_dbus_object_tree_dispatch_and_unlock</a> (<a class="el" href="structDBusObjectTree.html">DBusObjectTree</a> *tree, <a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Tries to dispatch a message by directing it to handler for the object path listed in the message header, if any. <a href="#gb64dcc8febde768db3404cd93b333e1e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusObjectTree.html#g4cf5a5f35d2bd18b6fa8aa58ba6b5de4">_dbus_object_tree_get_user_data_unlocked</a> (<a class="el" href="structDBusObjectTree.html">DBusObjectTree</a> *tree, const char **path)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Looks up the data passed to <a class="el" href="group__DBusObjectTree.html#ge8615fd56c31897732575d299edf00cc">_dbus_object_tree_register()</a> for a handler at the given path. <a href="#g4cf5a5f35d2bd18b6fa8aa58ba6b5de4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusObjectTree.html#gab7040bd1bf037d99e9bbb75d0869a2f">_dbus_object_tree_list_registered_and_unlock</a> (<a class="el" href="structDBusObjectTree.html">DBusObjectTree</a> *tree, const char **parent_path, char ***child_entries)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Lists the registered fallback handlers and object path handlers at the given parent_path. <a href="#gab7040bd1bf037d99e9bbb75d0869a2f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusObjectTree.html#gb282b916368cd512842d3aaae31e65c7">_dbus_decompose_path</a> (const char *data, int len, char ***path, int *path_len)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Decompose an object path. <a href="#gb282b916368cd512842d3aaae31e65c7"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<a class="el" href="structDBusObjectTree.html">DBusObjectTree</a> is used by <a class="el" href="structDBusConnection.html">DBusConnection</a> to track the object tree.
<p>
Types and functions related to <a class="el" href="structDBusObjectTree.html">DBusObjectTree</a>. These are all library-internal. <hr><h2>Function Documentation</h2>
<a class="anchor" name="gb282b916368cd512842d3aaae31e65c7"></a><!-- doxytag: member="dbus-object-tree.c::_dbus_decompose_path" ref="gb282b916368cd512842d3aaae31e65c7" args="(const char *data, int len, char ***path, int *path_len)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_decompose_path </td>
<td>(</td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *** </td>
<td class="paramname"> <em>path</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int * </td>
<td class="paramname"> <em>path_len</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Decompose an object path.
<p>
A path of just "/" is represented as an empty vector of strings. The path need not be nul terminated.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>the path data </td></tr>
<tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>the length of the path string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>path</em> </td><td>address to store new object path </td></tr>
<tr><td valign="top"></td><td valign="top"><em>path_len</em> </td><td>length of stored path </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-object-tree_8c-source.html#l01058">1058</a> of file <a class="el" href="dbus-object-tree_8c-source.html">dbus-object-tree.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-internals_8c-source.html#l00424">_dbus_memdup()</a>, <a class="el" href="dbus-memory_8c-source.html#l00655">dbus_free_string_array()</a>, <a class="el" href="dbus-memory_8h-source.html#l00047">dbus_new0</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-connection_8c-source.html#l05391">dbus_connection_get_object_path_data()</a>, <a class="el" href="dbus-connection_8c-source.html#l05428">dbus_connection_list_registered()</a>, <a class="el" href="dbus-connection_8c-source.html#l05319">dbus_connection_register_fallback()</a>, <a class="el" href="dbus-connection_8c-source.html#l05276">dbus_connection_register_object_path()</a>, <a class="el" href="dbus-connection_8c-source.html#l05359">dbus_connection_unregister_object_path()</a>, and <a class="el" href="dbus-message_8c-source.html#l02623">dbus_message_get_path_decomposed()</a>.
</div>
</div><p>
<a class="anchor" name="gb64dcc8febde768db3404cd93b333e1e"></a><!-- doxytag: member="dbus-object-tree.c::_dbus_object_tree_dispatch_and_unlock" ref="gb64dcc8febde768db3404cd93b333e1e" args="(DBusObjectTree *tree, DBusMessage *message)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusShared.html#g8244b29230187624c24986c24edab1de">DBusHandlerResult</a> _dbus_object_tree_dispatch_and_unlock </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusObjectTree.html">DBusObjectTree</a> * </td>
<td class="paramname"> <em>tree</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><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Tries to dispatch a message by directing it to handler for the object path listed in the message header, if any.
<p>
Messages are dispatched first to the registered handler that matches the largest number of path elements; that is, message to /foo/bar/baz would go to the handler for /foo/bar before the one for /foo.<p>
<dl compact><dt><b><a class="el" href="todo.html#_todo000043">Todo:</a></b></dt><dd>thread problems</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>tree</em> </td><td>the global object tree </td></tr>
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message to dispatch </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>whether message was handled successfully </dd></dl>
<p>
Definition at line <a class="el" href="dbus-object-tree_8c-source.html#l00731">731</a> of file <a class="el" href="dbus-object-tree_8c-source.html">dbus-object-tree.c</a>.
<p>
References <a class="el" href="dbus-connection_8c-source.html#l00353">_dbus_connection_lock()</a>, <a class="el" href="dbus-connection_8c-source.html#l00364">_dbus_connection_unlock()</a>, <a class="el" href="dbus-list_8c-source.html#l00246">_dbus_list_append()</a>, <a class="el" href="dbus-list_8c-source.html#l00574">_dbus_list_get_first_link()</a>, <a class="el" href="dbus-list_8c-source.html#l00760">_dbus_list_get_length()</a>, <a class="el" href="dbus-list_8h-source.html#l00093">_dbus_list_get_next_link</a>, <a class="el" href="dbus-list_8c-source.html#l00534">_dbus_list_remove_link()</a>, <a class="el" href="dbus-object-tree_8c-source.html#l00058">connection</a>, <a class="el" href="dbus-list_8h-source.html#l00038">DBusList::data</a>, <a class="el" href="dbus-memory_8c-source.html#l00655">dbus_free_string_array()</a>, <a class="el" href="dbus-shared_8h-source.html#l00070">DBUS_HANDLER_RESULT_NEED_MEMORY</a>, <a class="el" href="group__DBusShared.html#gg8244b29230187624c24986c24edab1decb84b64c92055f2585fe9c29f1e5df68">DBUS_HANDLER_RESULT_NOT_YET_HANDLED</a>, <a class="el" href="dbus-message_8c-source.html#l02623">dbus_message_get_path_decomposed()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-object-tree_8c-source.html#l00078">DBusObjectSubtree::invoke_as_fallback</a>, <a class="el" href="dbus-object-tree_8c-source.html#l00073">DBusObjectSubtree::message_function</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-object-tree_8c-source.html#l00071">DBusObjectSubtree::parent</a>, and <a class="el" href="dbus-object-tree_8c-source.html#l00074">DBusObjectSubtree::user_data</a>.
<p>
Referenced by <a class="el" href="dbus-connection_8c-source.html#l04220">dbus_connection_dispatch()</a>.
</div>
</div><p>
<a class="anchor" name="g1c51e43233ce0f3855c128f2555317eb"></a><!-- doxytag: member="dbus-object-tree.c::_dbus_object_tree_free_all_unlocked" ref="g1c51e43233ce0f3855c128f2555317eb" args="(DBusObjectTree *tree)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_object_tree_free_all_unlocked </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusObjectTree.html">DBusObjectTree</a> * </td>
<td class="paramname"> <em>tree</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Free all the handlers in the tree.
<p>
Lock on tree's connection must not be held.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>tree</em> </td><td>the object tree </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-object-tree_8c-source.html#l00547">547</a> of file <a class="el" href="dbus-object-tree_8c-source.html">dbus-object-tree.c</a>.
<p>
References <a class="el" href="dbus-object-tree_8c-source.html#l00058">connection</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="dbus-object-tree_8c-source.html#l00060">root</a>.
<p>
Referenced by <a class="el" href="dbus-object-tree_8c-source.html#l00141">_dbus_object_tree_unref()</a>.
</div>
</div><p>
<a class="anchor" name="g4cf5a5f35d2bd18b6fa8aa58ba6b5de4"></a><!-- doxytag: member="dbus-object-tree.c::_dbus_object_tree_get_user_data_unlocked" ref="g4cf5a5f35d2bd18b6fa8aa58ba6b5de4" args="(DBusObjectTree *tree, const char **path)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* _dbus_object_tree_get_user_data_unlocked </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusObjectTree.html">DBusObjectTree</a> * </td>
<td class="paramname"> <em>tree</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char ** </td>
<td class="paramname"> <em>path</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Looks up the data passed to <a class="el" href="group__DBusObjectTree.html#ge8615fd56c31897732575d299edf00cc">_dbus_object_tree_register()</a> for a handler at the given path.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>tree</em> </td><td>the global object tree </td></tr>
<tr><td valign="top"></td><td valign="top"><em>path</em> </td><td>NULL-terminated array of path elements giving path to subtree </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the object's user_data or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> if none found </dd></dl>
<p>
Definition at line <a class="el" href="dbus-object-tree_8c-source.html#l00899">899</a> of file <a class="el" href="dbus-object-tree_8c-source.html">dbus-object-tree.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="dbus-object-tree_8c-source.html#l00074">DBusObjectSubtree::user_data</a>.
<p>
Referenced by <a class="el" href="dbus-connection_8c-source.html#l05391">dbus_connection_get_object_path_data()</a>.
</div>
</div><p>
<a class="anchor" name="gab7040bd1bf037d99e9bbb75d0869a2f"></a><!-- doxytag: member="dbus-object-tree.c::_dbus_object_tree_list_registered_and_unlock" ref="gab7040bd1bf037d99e9bbb75d0869a2f" args="(DBusObjectTree *tree, const char **parent_path, char ***child_entries)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_object_tree_list_registered_and_unlock </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusObjectTree.html">DBusObjectTree</a> * </td>
<td class="paramname"> <em>tree</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char ** </td>
<td class="paramname"> <em>parent_path</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *** </td>
<td class="paramname"> <em>child_entries</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Lists the registered fallback handlers and object path handlers at the given parent_path.
<p>
The returned array should be freed with <a class="el" href="group__DBusMemory.html#g6d4674de64d806d238ffd309a486754e">dbus_free_string_array()</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>tree</em> </td><td>the object tree </td></tr>
<tr><td valign="top"></td><td valign="top"><em>parent_path</em> </td><td>the path to list the child handlers of </td></tr>
<tr><td valign="top"></td><td valign="top"><em>child_entries</em> </td><td>returns <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>-terminated array of children </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if no memory to allocate the child entries </dd></dl>
<p>
Definition at line <a class="el" href="dbus-object-tree_8c-source.html#l01022">1022</a> of file <a class="el" href="dbus-object-tree_8c-source.html">dbus-object-tree.c</a>.
<p>
References <a class="el" href="dbus-connection_8c-source.html#l00364">_dbus_connection_unlock()</a>, and <a class="el" href="dbus-object-tree_8c-source.html#l00058">connection</a>.
<p>
Referenced by <a class="el" href="dbus-connection_8c-source.html#l05428">dbus_connection_list_registered()</a>.
</div>
</div><p>
<a class="anchor" name="g5920f14b487122f13a3d439952d5ed2e"></a><!-- doxytag: member="dbus-object-tree.c::_dbus_object_tree_new" ref="g5920f14b487122f13a3d439952d5ed2e" args="(DBusConnection *connection)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structDBusObjectTree.html">DBusObjectTree</a>* _dbus_object_tree_new </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 width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Creates a new object tree, representing a mapping from paths to handler vtables.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>connection</em> </td><td>the connection this tree belongs to </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the new tree or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> if no memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-object-tree_8c-source.html#l00090">90</a> of file <a class="el" href="dbus-object-tree_8c-source.html">dbus-object-tree.c</a>.
<p>
References <a class="el" href="dbus-object-tree_8c-source.html#l00058">connection</a>, <a class="el" href="dbus-memory_8c-source.html#l00617">dbus_free()</a>, <a class="el" href="dbus-memory_8h-source.html#l00047">dbus_new0</a>, <a class="el" href="dbus-object-tree_8c-source.html#l00078">DBusObjectSubtree::invoke_as_fallback</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-object-tree_8c-source.html#l00057">refcount</a>, <a class="el" href="dbus-object-tree_8c-source.html#l00060">root</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-connection_8c-source.html#l01163">_dbus_connection_new_for_transport()</a>.
</div>
</div><p>
<a class="anchor" name="g144a3920922e8badf1018ce22b27d9c4"></a><!-- doxytag: member="dbus-object-tree.c::_dbus_object_tree_ref" ref="g144a3920922e8badf1018ce22b27d9c4" args="(DBusObjectTree *tree)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structDBusObjectTree.html">DBusObjectTree</a>* _dbus_object_tree_ref </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusObjectTree.html">DBusObjectTree</a> * </td>
<td class="paramname"> <em>tree</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Increment the reference count.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>tree</em> </td><td>the object tree </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the object tree </dd></dl>
<p>
Definition at line <a class="el" href="dbus-object-tree_8c-source.html#l00127">127</a> of file <a class="el" href="dbus-object-tree_8c-source.html">dbus-object-tree.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, and <a class="el" href="dbus-object-tree_8c-source.html#l00057">refcount</a>.
</div>
</div><p>
<a class="anchor" name="ge8615fd56c31897732575d299edf00cc"></a><!-- doxytag: member="dbus-object-tree.c::_dbus_object_tree_register" ref="ge8615fd56c31897732575d299edf00cc" args="(DBusObjectTree *tree, dbus_bool_t fallback, const char **path, const DBusObjectPathVTable *vtable, void *user_data)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_object_tree_register </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusObjectTree.html">DBusObjectTree</a> * </td>
<td class="paramname"> <em>tree</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td>
<td class="paramname"> <em>fallback</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char ** </td>
<td class="paramname"> <em>path</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structDBusObjectPathVTable.html">DBusObjectPathVTable</a> * </td>
<td class="paramname"> <em>vtable</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void * </td>
<td class="paramname"> <em>user_data</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Registers a new subtree in the global object tree.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>tree</em> </td><td>the global object tree </td></tr>
<tr><td valign="top"></td><td valign="top"><em>fallback</em> </td><td><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> to handle messages to children of this path </td></tr>
<tr><td valign="top"></td><td valign="top"><em>path</em> </td><td>NULL-terminated array of path elements giving path to subtree </td></tr>
<tr><td valign="top"></td><td valign="top"><em>vtable</em> </td><td>the vtable used to traverse this subtree </td></tr>
<tr><td valign="top"></td><td valign="top"><em>user_data</em> </td><td>user data to pass to methods in the vtable </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if not enough memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-object-tree_8c-source.html#l00385">385</a> of file <a class="el" href="dbus-object-tree_8c-source.html">dbus-object-tree.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-internals_8c-source.html#l00238">_dbus_warn()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-object-tree_8c-source.html#l00078">DBusObjectSubtree::invoke_as_fallback</a>, <a class="el" href="dbus-connection_8h-source.html#l00316">DBusObjectPathVTable::message_function</a>, <a class="el" href="dbus-object-tree_8c-source.html#l00073">DBusObjectSubtree::message_function</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>, <a class="el" href="dbus-object-tree_8c-source.html#l00072">DBusObjectSubtree::unregister_function</a>, <a class="el" href="dbus-connection_8h-source.html#l00315">DBusObjectPathVTable::unregister_function</a>, and <a class="el" href="dbus-object-tree_8c-source.html#l00074">DBusObjectSubtree::user_data</a>.
<p>
Referenced by <a class="el" href="dbus-connection_8c-source.html#l05319">dbus_connection_register_fallback()</a>, and <a class="el" href="dbus-connection_8c-source.html#l05276">dbus_connection_register_object_path()</a>.
</div>
</div><p>
<a class="anchor" name="g7639e273ab160c422a7cef0cda60ded5"></a><!-- doxytag: member="dbus-object-tree.c::_dbus_object_tree_unref" ref="g7639e273ab160c422a7cef0cda60ded5" args="(DBusObjectTree *tree)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_object_tree_unref </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusObjectTree.html">DBusObjectTree</a> * </td>
<td class="paramname"> <em>tree</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Decrement the reference count.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>tree</em> </td><td>the object tree </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-object-tree_8c-source.html#l00141">141</a> of file <a class="el" href="dbus-object-tree_8c-source.html">dbus-object-tree.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-object-tree_8c-source.html#l00547">_dbus_object_tree_free_all_unlocked()</a>, <a class="el" href="dbus-memory_8c-source.html#l00617">dbus_free()</a>, and <a class="el" href="dbus-object-tree_8c-source.html#l00057">refcount</a>.
<p>
Referenced by <a class="el" href="dbus-connection_8c-source.html#l01163">_dbus_connection_new_for_transport()</a>.
</div>
</div><p>
<a class="anchor" name="g3babe73ed342b6963997ef2efd73ef75"></a><!-- doxytag: member="dbus-object-tree.c::_dbus_object_tree_unregister_and_unlock" ref="g3babe73ed342b6963997ef2efd73ef75" args="(DBusObjectTree *tree, const char **path)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_object_tree_unregister_and_unlock </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusObjectTree.html">DBusObjectTree</a> * </td>
<td class="paramname"> <em>tree</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char ** </td>
<td class="paramname"> <em>path</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Unregisters an object subtree that was registered with the same path.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>tree</em> </td><td>the global object tree </td></tr>
<tr><td valign="top"></td><td valign="top"><em>path</em> </td><td>path to the subtree (same as the one passed to <a class="el" href="group__DBusObjectTree.html#ge8615fd56c31897732575d299edf00cc">_dbus_object_tree_register()</a>) </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-object-tree_8c-source.html#l00428">428</a> of file <a class="el" href="dbus-object-tree_8c-source.html">dbus-object-tree.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-connection_8c-source.html#l01326">_dbus_connection_ref_unlocked()</a>, <a class="el" href="dbus-connection_8c-source.html#l00364">_dbus_connection_unlock()</a>, <a class="el" href="dbus-internals_8c-source.html#l00238">_dbus_warn()</a>, <a class="el" href="dbus-object-tree_8c-source.html#l00058">connection</a>, <a class="el" href="dbus-connection_8c-source.html#l02610">dbus_connection_unref()</a>, <a class="el" href="dbus-object-tree_8c-source.html#l00073">DBusObjectSubtree::message_function</a>, <a class="el" href="dbus-object-tree_8c-source.html#l00076">DBusObjectSubtree::n_subtrees</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-object-tree_8c-source.html#l00071">DBusObjectSubtree::parent</a>, <a class="el" href="dbus-object-tree_8c-source.html#l00075">DBusObjectSubtree::subtrees</a>, <a class="el" href="dbus-object-tree_8c-source.html#l00072">DBusObjectSubtree::unregister_function</a>, and <a class="el" href="dbus-object-tree_8c-source.html#l00074">DBusObjectSubtree::user_data</a>.
<p>
Referenced by <a class="el" href="dbus-connection_8c-source.html#l05359">dbus_connection_unregister_object_path()</a>.
</div>
</div><p>
<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 14 22:26:14 2009 for D-Bus by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>