<!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  <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 Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="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 List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class 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> | <a href="#pub-methods">Public Member Functions</a> | <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< EdbusData >" --> <p>A class representing D-Bus struct and array. <a href="classedelib_1_1EdbusList.html#details">More...</a></p> <p><code>#include <<a class="el" href="EdbusList_8h_source.html">edelib/EdbusList.h</a>></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< EdbusData >" 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"/> < <a class="el" href="classedelib_1_1EdbusData.html">EdbusData</a> >::<a class="el" href="classedelib_1_1EdbusList.html#affe24d1b3d637a5ca9bfc78487337b0a">const_iterator</a> </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"> </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 </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> &val)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </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 </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> &val)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </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> &val)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </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> &other) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </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> &other) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__dbus.html#ga2044d820c43ec113bf79f7489f2e0f0d">EdbusDataType</a> </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 </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 </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 </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> </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> </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 </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> </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> </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 << <a class="code" href="classedelib_1_1EdbusData.html#a0b0bd4292364951b8c9fc7bbf3292a65">EdbusData::from_int32</a>(numbers[0]) << <a class="code" href="classedelib_1_1EdbusData.html#a0b0bd4292364951b8c9fc7bbf3292a65">EdbusData::from_int32</a>(numbers[1]) << <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<<()</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">'c'</span>; EdbusList st = <a class="code" href="classedelib_1_1EdbusList.html#ab7d606c15b48d6ff5c8d80a1ec6412aa">EdbusList::create_struct</a>(); st << <a class="code" href="classedelib_1_1EdbusData.html#a0b0bd4292364951b8c9fc7bbf3292a65">EdbusData::from_int32</a>(v.number); st << <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 << <a class="code" href="classedelib_1_1EdbusData.html#afc1eb899e41062b326db29a0776dcb0e">EdbusData::from_bool</a>(<span class="keyword">false</span>); array << <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 << <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 << <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 << <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><<a class="el" href="classedelib_1_1EdbusData.html">EdbusData</a>>::<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< EdbusData ></a>.</p> </div> </div> <hr/><h2>Constructor & 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 </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 &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> & </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<<()</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 </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 </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 </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 </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 </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 </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 </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 &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> & </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 &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> & </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 &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> & </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 &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> & </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 </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 </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 </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  <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>