KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
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 :  /usr/share/devhelp/books/dbus/api/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //usr/share/devhelp/books/dbus/api/group__DBusObjectTree.html
<!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&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;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 &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structDBusObjectTree.html">DBusObjectTree</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</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 &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structDBusObjectSubtree.html">DBusObjectSubtree</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</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&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusObjectTree.html#g7c65e59e0445cd294f82a4fb42e44772">VERBOSE_FIND</a>&nbsp;&nbsp;&nbsp;0</td></tr>

<tr><td class="mdescLeft">&nbsp;</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&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusObjectTree.html#g9def2cd95c325a4ad26222cddbfed5d5">VERBOSE_DECOMPOSE</a>&nbsp;&nbsp;&nbsp;0</td></tr>

<tr><td class="mdescLeft">&nbsp;</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>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusObjectTree.html#g797595db73034eabb225d933f859fc48">DBusObjectSubtree</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</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> *&nbsp;</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">&nbsp;</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> *&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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>&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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>&nbsp;</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">&nbsp;</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 *&nbsp;</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">&nbsp;</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>&nbsp;</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">&nbsp;</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>&nbsp;</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">&nbsp;</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 *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char ***&nbsp;</td>
          <td class="paramname"> <em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>path_len</em></td><td>&nbsp;</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>&nbsp;</td><td>the path data </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>the length of the path string </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>path</em>&nbsp;</td><td>address to store new object path </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>path_len</em>&nbsp;</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> *&nbsp;</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> *&nbsp;</td>
          <td class="paramname"> <em>message</em></td><td>&nbsp;</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>&nbsp;</td><td>the global object tree </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>message</em>&nbsp;</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> *&nbsp;</td>
          <td class="paramname"> <em>tree</em>          </td>
          <td>&nbsp;)&nbsp;</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>&nbsp;</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> *&nbsp;</td>
          <td class="paramname"> <em>tree</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char **&nbsp;</td>
          <td class="paramname"> <em>path</em></td><td>&nbsp;</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>&nbsp;</td><td>the global object tree </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>path</em>&nbsp;</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> *&nbsp;</td>
          <td class="paramname"> <em>tree</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char **&nbsp;</td>
          <td class="paramname"> <em>parent_path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char ***&nbsp;</td>
          <td class="paramname"> <em>child_entries</em></td><td>&nbsp;</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>&nbsp;</td><td>the object tree </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>parent_path</em>&nbsp;</td><td>the path to list the child handlers of </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>child_entries</em>&nbsp;</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> *&nbsp;</td>
          <td class="paramname"> <em>connection</em>          </td>
          <td>&nbsp;)&nbsp;</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>&nbsp;</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> *&nbsp;</td>
          <td class="paramname"> <em>tree</em>          </td>
          <td>&nbsp;)&nbsp;</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>&nbsp;</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> *&nbsp;</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>&nbsp;</td>
          <td class="paramname"> <em>fallback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char **&nbsp;</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> *&nbsp;</td>
          <td class="paramname"> <em>vtable</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>user_data</em></td><td>&nbsp;</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>&nbsp;</td><td>the global object tree </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>fallback</em>&nbsp;</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>&nbsp;</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>&nbsp;</td><td>the vtable used to traverse this subtree </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>user_data</em>&nbsp;</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> *&nbsp;</td>
          <td class="paramname"> <em>tree</em>          </td>
          <td>&nbsp;)&nbsp;</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>&nbsp;</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> *&nbsp;</td>
          <td class="paramname"> <em>tree</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char **&nbsp;</td>
          <td class="paramname"> <em>path</em></td><td>&nbsp;</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>&nbsp;</td><td>the global object tree </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>path</em>&nbsp;</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&nbsp;
<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>

Anon7 - 2021