Sophie

Sophie

distrib > Mandriva > 2011.0 > x86_64 > by-pkgid > e4e5aca55b6d7244e6bae95bf4fde3ca > files > 228

lib64edelib-devel-2.0-1.x86_64.rpm

<!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>edelib: EdbusList Class Reference</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">edelib
   &#160;<span id="projectnumber">2.0.0</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&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="namespaceedelib.html">edelib</a>      </li>
      <li class="navelem"><a class="el" href="classedelib_1_1EdbusList.html">EdbusList</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">EdbusList Class Reference<div class="ingroups"><a class="el" href="group__dbus.html">D-Bus classes and functions</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<!-- doxytag: class="edelib::EdbusList" --><!-- doxytag: inherits="EdbusContainer&lt; EdbusData &gt;" -->
<p>A class representing D-Bus struct and array.  
 <a href="classedelib_1_1EdbusList.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="EdbusList_8h_source.html">edelib/EdbusList.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for EdbusList:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classedelib_1_1EdbusList.png" usemap="#EdbusList_map" alt=""/>
  <map id="EdbusList_map" name="EdbusList_map">
<area href="classedelib_1_1EdbusContainer.html" alt="EdbusContainer&lt; EdbusData &gt;" shape="rect" coords="0,0,187,24"/>
</map>
 </div></div>

<p><a href="classedelib_1_1EdbusList-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classedelib_1_1EdbusContainer.html">EdbusContainer</a><br class="typebreak"/>
&lt; <a class="el" href="classedelib_1_1EdbusData.html">EdbusData</a> &gt;::<a class="el" href="classedelib_1_1EdbusList.html#affe24d1b3d637a5ca9bfc78487337b0a">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1EdbusList.html#affe24d1b3d637a5ca9bfc78487337b0a">const_iterator</a></td></tr>
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1EdbusList.html#a2e6e8d0b1c572ce7c702c6ac9d4805ea">EdbusList</a> (bool a)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1EdbusList.html#adef5d386e79fff33668e2cb4ba90a799">append</a> (const <a class="el" href="classedelib_1_1EdbusData.html">EdbusData</a> &amp;val)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1EdbusList.html#ae683fe63c33c388e9ba1c6392dd477eb">clear</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1EdbusList.html#a1ad5d46cdb5c3e370dc289f83005b4c7">remove</a> (const <a class="el" href="classedelib_1_1EdbusData.html">EdbusData</a> &amp;val)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1EdbusList.html#ad2a16c6ddafab126017b4e786d545445">remove_all</a> (const <a class="el" href="classedelib_1_1EdbusData.html">EdbusData</a> &amp;val)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1EdbusList.html#a8b8447a390bfab385a495fe7bfbeb20c">operator==</a> (const <a class="el" href="classedelib_1_1EdbusList.html">EdbusList</a> &amp;other) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1EdbusList.html#a0af88099c4829548b0836529b5adf0f9">operator!=</a> (const <a class="el" href="classedelib_1_1EdbusList.html">EdbusList</a> &amp;other) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__dbus.html#ga2044d820c43ec113bf79f7489f2e0f0d">EdbusDataType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1EdbusList.html#a88b8540db8bf0cea2014f4f4984502cc">value_type</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1EdbusList.html#a9b9101d8729be469b9961c2918b8df2c">value_type_is_container</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1EdbusList.html#a70e4b703a457f9c45bf71ecafff3934e">list_is_array</a> (void) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1EdbusList.html#a36b2d83c8ff65052c86155cccf064aee">list_is_struct</a> (void) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classedelib_1_1EdbusList.html#affe24d1b3d637a5ca9bfc78487337b0a">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1EdbusList.html#ab24dc66b35f5f89fbeb32c3f480eebfe">begin</a> (void) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classedelib_1_1EdbusList.html#affe24d1b3d637a5ca9bfc78487337b0a">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1EdbusList.html#a1fdea499eccff93779dc205242f788f7">end</a> (void) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1EdbusList.html#a16fb45e6afbec7eb1b286d26550a25b1">size</a> (void) const </td></tr>
<tr><td colspan="2"><h2><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classedelib_1_1EdbusList.html">EdbusList</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1EdbusList.html#ada704a35132392e7b088b7033874dfc0">create_array</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classedelib_1_1EdbusList.html">EdbusList</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1EdbusList.html#ab7d606c15b48d6ff5c8d80a1ec6412aa">create_struct</a> (void)</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>A class representing D-Bus struct and array. </p>
<p><a class="el" href="classedelib_1_1EdbusList.html" title="A class representing D-Bus struct and array.">EdbusList</a> is used to implement D-Bus struct and array concept. Althought <a class="el" href="classedelib_1_1EdbusList.html" title="A class representing D-Bus struct and array.">EdbusList</a> is much more list-like container (indeed, it uses list for storage), accessing elements is done via iterators which, at some point, is similar to accessing elements to ordinary arrays via pointers (if <a class="el" href="classedelib_1_1EdbusList.html" title="A class representing D-Bus struct and array.">EdbusList</a> is in <em>array</em> mode).</p>
<p>At first look <a class="el" href="classedelib_1_1EdbusList.html" title="A class representing D-Bus struct and array.">EdbusList</a> sees array and struct at the same way. This is true, at some point, but there is major difference (as in C++ language): arrays can hold only elements of the same type, but structs can hold elements of any type.</p>
<p>This sounds little bit strange, especially knowing that <a class="el" href="classedelib_1_1EdbusList.html" title="A class representing D-Bus struct and array.">EdbusList</a> element is <a class="el" href="classedelib_1_1EdbusData.html" title="Class for representing D-Bus data types.">EdbusData</a> type, but if you look at <a class="el" href="classedelib_1_1EdbusData.html" title="Class for representing D-Bus data types.">EdbusData</a> more as proxy for D-Bus types than as concrete type, things will be little bit clearer. This will be much better explained in few examples below.</p>
<p>So, from previous text, <a class="el" href="classedelib_1_1EdbusList.html" title="A class representing D-Bus struct and array.">EdbusList</a> object can be either array-like or struct-like. This is done via constructor.</p>
<p>When <a class="el" href="classedelib_1_1EdbusList.html" title="A class representing D-Bus struct and array.">EdbusList</a> object behaves as array, it will assure all elements are the same type so if you try to add via <a class="el" href="classedelib_1_1EdbusList.html#adef5d386e79fff33668e2cb4ba90a799">append()</a> element of different type, it will be ignored.</p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000012">Todo:</a></b></dt><dd>This should be probably an assertion</dd></dl>
<p>When <a class="el" href="classedelib_1_1EdbusList.html" title="A class representing D-Bus struct and array.">EdbusList</a> object behaves as struct, elements of any type can be added.</p>
<p>The best way to create <a class="el" href="classedelib_1_1EdbusList.html" title="A class representing D-Bus struct and array.">EdbusList</a> array object is to use <a class="el" href="classedelib_1_1EdbusList.html#ada704a35132392e7b088b7033874dfc0">EdbusList::create_array()</a>; it will call <a class="el" href="classedelib_1_1EdbusList.html" title="A class representing D-Bus struct and array.">EdbusList</a> constructor with correct parameters. The same applies for struct, use <a class="el" href="classedelib_1_1EdbusList.html#ab7d606c15b48d6ff5c8d80a1ec6412aa">EdbusList::create_struct()</a>.</p>
<p>Let say you want to prepare some array for sending via bus. This is the way: </p>
<div class="fragment"><pre class="fragment">   <span class="keywordtype">int</span> numbers[] = {1, 2, 3};
   EdbusList array = <a class="code" href="classedelib_1_1EdbusList.html#ada704a35132392e7b088b7033874dfc0">EdbusList::create_array</a>();
   array &lt;&lt; <a class="code" href="classedelib_1_1EdbusData.html#a0b0bd4292364951b8c9fc7bbf3292a65">EdbusData::from_int32</a>(numbers[0]) &lt;&lt; <a class="code" href="classedelib_1_1EdbusData.html#a0b0bd4292364951b8c9fc7bbf3292a65">EdbusData::from_int32</a>(numbers[1]) &lt;&lt; <a class="code" href="classedelib_1_1EdbusData.html#a0b0bd4292364951b8c9fc7bbf3292a65">EdbusData::from_int32</a>(numbers[2]);
</pre></div><p>Since <a class="el" href="group__dbus.html#gaba4ab1236c759d6344fa81a2926cbf0f">operator&lt;&lt;()</a> is shorcut for <a class="el" href="classedelib_1_1EdbusList.html#adef5d386e79fff33668e2cb4ba90a799">append()</a>, you can use <a class="el" href="classedelib_1_1EdbusList.html#adef5d386e79fff33668e2cb4ba90a799">append()</a> instead too.</p>
<p>Now, let say you want to send some struct via bus. Sample: </p>
<div class="fragment"><pre class="fragment">    <span class="comment">// somewhere outside function</span>
    <span class="keyword">struct </span>some_struct {
      <span class="keywordtype">int</span> number;
      <span class="keywordtype">char</span> character;
    };

    <span class="comment">// in your function</span>
    some_struct v;
    v.number = 3;
    v.character = <span class="charliteral">&#39;c&#39;</span>;

    EdbusList st = <a class="code" href="classedelib_1_1EdbusList.html#ab7d606c15b48d6ff5c8d80a1ec6412aa">EdbusList::create_struct</a>();
    st &lt;&lt; <a class="code" href="classedelib_1_1EdbusData.html#a0b0bd4292364951b8c9fc7bbf3292a65">EdbusData::from_int32</a>(v.number);
    st &lt;&lt; <a class="code" href="classedelib_1_1EdbusData.html#a11b11d350798dad405633104cac0b4b7">EdbusData::from_char</a>(v.character);
</pre></div><p>If <a class="el" href="classedelib_1_1EdbusList.html" title="A class representing D-Bus struct and array.">EdbusList</a> object is created as array and you add first element, all further elements should be the same type as first element or they will not be added, like: </p>
<div class="fragment"><pre class="fragment">   EdbusList array = <a class="code" href="classedelib_1_1EdbusList.html#ada704a35132392e7b088b7033874dfc0">EdbusList::create_array</a>();
   array &lt;&lt; <a class="code" href="classedelib_1_1EdbusData.html#afc1eb899e41062b326db29a0776dcb0e">EdbusData::from_bool</a>(<span class="keyword">false</span>);
   array &lt;&lt; <a class="code" href="classedelib_1_1EdbusData.html#a0b0bd4292364951b8c9fc7bbf3292a65">EdbusData::from_int32</a>(45);     <span class="comment">// different type than first element, ignored</span>
   array &lt;&lt; <a class="code" href="classedelib_1_1EdbusData.html#afc1eb899e41062b326db29a0776dcb0e">EdbusData::from_bool</a>(<span class="keyword">true</span>);   <span class="comment">// the same type as first element, ok</span>
</pre></div><p>Some things can look like correct C++ statement, but due D-Bus signatures they are not, like:</p>
<div class="fragment"><pre class="fragment">   EdbusList array = <a class="code" href="classedelib_1_1EdbusList.html#ada704a35132392e7b088b7033874dfc0">EdbusList::create_array</a>();
   array &lt;&lt; <a class="code" href="classedelib_1_1EdbusData.html#afc1eb899e41062b326db29a0776dcb0e">EdbusData::from_bool</a>(<span class="keyword">true</span>);

   <span class="comment">// invalid; singatures for boolean and int32 types are different</span>
   <span class="comment">// no matter if this is a valid from C++ view</span>
   array &lt;&lt; <a class="code" href="classedelib_1_1EdbusData.html#a0b0bd4292364951b8c9fc7bbf3292a65">EdbusData::from_int32</a>(<span class="keyword">true</span>);
</pre></div><p>For more details, </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classedelib_1_1EdbusData.html" title="Class for representing D-Bus data types.">EdbusData</a></dd></dl>
<p>On other hand, if elements of array is <a class="el" href="structedelib_1_1EdbusVariant.html" title="Represents D-Bus variant.">EdbusVariant</a> typs, array <em>can</em> hold different types due <a class="el" href="structedelib_1_1EdbusVariant.html" title="Represents D-Bus variant.">EdbusVariant</a> nature. You can look at this as case when you have ordinary C++ array of variant-like objects.</p>
<p><a class="el" href="classedelib_1_1EdbusList.html" title="A class representing D-Bus struct and array.">EdbusList</a> uses implicit sharing. </p>
</div><hr/><h2>Member Typedef Documentation</h2>
<a class="anchor" id="affe24d1b3d637a5ca9bfc78487337b0a"></a><!-- doxytag: member="edelib::EdbusList::const_iterator" ref="affe24d1b3d637a5ca9bfc78487337b0a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classedelib_1_1EdbusContainer.html">EdbusContainer</a>&lt;<a class="el" href="classedelib_1_1EdbusData.html">EdbusData</a>&gt;::<a class="el" href="classedelib_1_1EdbusList.html#affe24d1b3d637a5ca9bfc78487337b0a">const_iterator</a> <a class="el" href="classedelib_1_1EdbusList.html#affe24d1b3d637a5ca9bfc78487337b0a">const_iterator</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Declares <a class="el" href="classedelib_1_1EdbusList.html" title="A class representing D-Bus struct and array.">EdbusList</a> iterator </p>

<p>Reimplemented from <a class="el" href="classedelib_1_1EdbusContainer.html#a7e8e827f4e0bed15c153f1e21c0c03ee">EdbusContainer&lt; EdbusData &gt;</a>.</p>

</div>
</div>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a2e6e8d0b1c572ce7c702c6ac9d4805ea"></a><!-- doxytag: member="edelib::EdbusList::EdbusList" ref="a2e6e8d0b1c572ce7c702c6ac9d4805ea" args="(bool a)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classedelib_1_1EdbusList.html">EdbusList</a> </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>a</em></td><td>)</td>
          <td><code> [explicit]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Create empty container </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">a</td><td>if true, container will be array type, else it will be struct type </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="adef5d386e79fff33668e2cb4ba90a799"></a><!-- doxytag: member="edelib::EdbusList::append" ref="adef5d386e79fff33668e2cb4ba90a799" args="(const EdbusData &amp;val)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classedelib_1_1EdbusList.html#adef5d386e79fff33668e2cb4ba90a799">append</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classedelib_1_1EdbusData.html">EdbusData</a> &amp;&#160;</td>
          <td class="paramname"><em>val</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Adds element to the end of the container </p>

<p>Referenced by <a class="el" href="group__dbus.html#gaba4ab1236c759d6344fa81a2926cbf0f">edelib::operator&lt;&lt;()</a>.</p>

</div>
</div>
<a class="anchor" id="ab24dc66b35f5f89fbeb32c3f480eebfe"></a><!-- doxytag: member="edelib::EdbusList::begin" ref="ab24dc66b35f5f89fbeb32c3f480eebfe" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classedelib_1_1EdbusList.html#affe24d1b3d637a5ca9bfc78487337b0a">const_iterator</a> <a class="el" href="classedelib_1_1EdbusList.html#ab24dc66b35f5f89fbeb32c3f480eebfe">begin</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns iterator at the container start. It points to the first element </p>

</div>
</div>
<a class="anchor" id="ae683fe63c33c388e9ba1c6392dd477eb"></a><!-- doxytag: member="edelib::EdbusList::clear" ref="ae683fe63c33c388e9ba1c6392dd477eb" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classedelib_1_1EdbusList.html#ae683fe63c33c388e9ba1c6392dd477eb">clear</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Clears content of container </p>

</div>
</div>
<a class="anchor" id="ada704a35132392e7b088b7033874dfc0"></a><!-- doxytag: member="edelib::EdbusList::create_array" ref="ada704a35132392e7b088b7033874dfc0" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classedelib_1_1EdbusList.html">EdbusList</a> <a class="el" href="classedelib_1_1EdbusList.html#ada704a35132392e7b088b7033874dfc0">create_array</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Explicitly create array. This function should be used to create arrays </p>

</div>
</div>
<a class="anchor" id="ab7d606c15b48d6ff5c8d80a1ec6412aa"></a><!-- doxytag: member="edelib::EdbusList::create_struct" ref="ab7d606c15b48d6ff5c8d80a1ec6412aa" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classedelib_1_1EdbusList.html">EdbusList</a> <a class="el" href="classedelib_1_1EdbusList.html#ab7d606c15b48d6ff5c8d80a1ec6412aa">create_struct</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Explicitly create struct. This function should be used to create structs </p>

</div>
</div>
<a class="anchor" id="a1fdea499eccff93779dc205242f788f7"></a><!-- doxytag: member="edelib::EdbusList::end" ref="a1fdea499eccff93779dc205242f788f7" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classedelib_1_1EdbusList.html#affe24d1b3d637a5ca9bfc78487337b0a">const_iterator</a> <a class="el" href="classedelib_1_1EdbusList.html#a1fdea499eccff93779dc205242f788f7">end</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns iterator at the container end. It <b>does not</b> points to the last element, but element after the last, and you must not dereferce it </p>

</div>
</div>
<a class="anchor" id="a70e4b703a457f9c45bf71ecafff3934e"></a><!-- doxytag: member="edelib::EdbusList::list_is_array" ref="a70e4b703a457f9c45bf71ecafff3934e" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classedelib_1_1EdbusList.html#a70e4b703a457f9c45bf71ecafff3934e">list_is_array</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns true if object behaves as array </p>

</div>
</div>
<a class="anchor" id="a36b2d83c8ff65052c86155cccf064aee"></a><!-- doxytag: member="edelib::EdbusList::list_is_struct" ref="a36b2d83c8ff65052c86155cccf064aee" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classedelib_1_1EdbusList.html#a36b2d83c8ff65052c86155cccf064aee">list_is_struct</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns true if object behaves as struct </p>

</div>
</div>
<a class="anchor" id="a0af88099c4829548b0836529b5adf0f9"></a><!-- doxytag: member="edelib::EdbusList::operator!=" ref="a0af88099c4829548b0836529b5adf0f9" args="(const EdbusList &amp;other) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool operator!= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classedelib_1_1EdbusList.html">EdbusList</a> &amp;&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Compares if two arrays or structs are not equal </p>

</div>
</div>
<a class="anchor" id="a8b8447a390bfab385a495fe7bfbeb20c"></a><!-- doxytag: member="edelib::EdbusList::operator==" ref="a8b8447a390bfab385a495fe7bfbeb20c" args="(const EdbusList &amp;other) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool operator== </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classedelib_1_1EdbusList.html">EdbusList</a> &amp;&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Compares if two arrays or structs are equal </p>

</div>
</div>
<a class="anchor" id="a1ad5d46cdb5c3e370dc289f83005b4c7"></a><!-- doxytag: member="edelib::EdbusList::remove" ref="a1ad5d46cdb5c3e370dc289f83005b4c7" args="(const EdbusData &amp;val)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classedelib_1_1EdbusList.html#a1ad5d46cdb5c3e370dc289f83005b4c7">remove</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classedelib_1_1EdbusData.html">EdbusData</a> &amp;&#160;</td>
          <td class="paramname"><em>val</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Remove element from container, if element is found </p>

</div>
</div>
<a class="anchor" id="ad2a16c6ddafab126017b4e786d545445"></a><!-- doxytag: member="edelib::EdbusList::remove_all" ref="ad2a16c6ddafab126017b4e786d545445" args="(const EdbusData &amp;val)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classedelib_1_1EdbusList.html#ad2a16c6ddafab126017b4e786d545445">remove_all</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classedelib_1_1EdbusData.html">EdbusData</a> &amp;&#160;</td>
          <td class="paramname"><em>val</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Remove all elements that are equal to the <em>val</em> </p>

</div>
</div>
<a class="anchor" id="a16fb45e6afbec7eb1b286d26550a25b1"></a><!-- doxytag: member="edelib::EdbusList::size" ref="a16fb45e6afbec7eb1b286d26550a25b1" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int <a class="el" href="classedelib_1_1EdbusList.html#a16fb45e6afbec7eb1b286d26550a25b1">size</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns size of container content. This is a constant operation </p>

</div>
</div>
<a class="anchor" id="a88b8540db8bf0cea2014f4f4984502cc"></a><!-- doxytag: member="edelib::EdbusList::value_type" ref="a88b8540db8bf0cea2014f4f4984502cc" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__dbus.html#ga2044d820c43ec113bf79f7489f2e0f0d">EdbusDataType</a> <a class="el" href="classedelib_1_1EdbusList.html#a88b8540db8bf0cea2014f4f4984502cc">value_type</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns type of values stored in container. Only valid if container is array; if not, EDBUS_TYPE_INVALID will be returned </p>

</div>
</div>
<a class="anchor" id="a9b9101d8729be469b9961c2918b8df2c"></a><!-- doxytag: member="edelib::EdbusList::value_type_is_container" ref="a9b9101d8729be469b9961c2918b8df2c" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classedelib_1_1EdbusList.html#a9b9101d8729be469b9961c2918b8df2c">value_type_is_container</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Return true if value type is container (<a class="el" href="structedelib_1_1EdbusDict.html" title="Dictionary container for D-Bus types.">EdbusDict</a> or <a class="el" href="classedelib_1_1EdbusList.html" title="A class representing D-Bus struct and array.">EdbusList</a>). Only valid if container is array; if not, EDBUS_TYPE_INVALID will be returned </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>edelib/<a class="el" href="EdbusList_8h_source.html">EdbusList.h</a></li>
</ul>
</div><!-- contents -->


<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 5 2012 17:49:02 for edelib by &#160;<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>