summaryrefslogtreecommitdiff
path: root/0.14/_2home_2kev_2src_2automotive-message-broker_2lib_2abstractpropertytype_8h-example.html
diff options
context:
space:
mode:
Diffstat (limited to '0.14/_2home_2kev_2src_2automotive-message-broker_2lib_2abstractpropertytype_8h-example.html')
-rw-r--r--0.14/_2home_2kev_2src_2automotive-message-broker_2lib_2abstractpropertytype_8h-example.html95
1 files changed, 95 insertions, 0 deletions
diff --git a/0.14/_2home_2kev_2src_2automotive-message-broker_2lib_2abstractpropertytype_8h-example.html b/0.14/_2home_2kev_2src_2automotive-message-broker_2lib_2abstractpropertytype_8h-example.html
new file mode 100644
index 00000000..9cc225af
--- /dev/null
+++ b/0.14/_2home_2kev_2src_2automotive-message-broker_2lib_2abstractpropertytype_8h-example.html
@@ -0,0 +1,95 @@
+<!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"/>
+<meta name="generator" content="Doxygen 1.8.11"/>
+<title>automotive-message-broker: /home/kev/src/automotive-message-broker/lib/abstractpropertytype.h</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">automotive-message-broker
+ &#160;<span id="projectnumber">0.14.0</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.11 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <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="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li><a href="examples.html"><span>Examples</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">/home/kev/src/automotive-message-broker/lib/abstractpropertytype.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<p><a class="el" href="classBasicPropertyType.html">BasicPropertyType</a> is a typed property type. Most internal types are derived from this class</p>
+<p>std::unique_ptr&lt;BasicPropertyType&lt;int&gt;&gt; boostPSI = new BasicPropertyType&lt;int&gt;("BoostPSI",5); boostPSI-&gt;priority = AbstractPropertyType::Instant; //set instant because we clean up right after. routingEngine-&gt;updateProperty(boostPSI.get(), sourceUuid());</p>
+<div class="fragment"><div class="line"><span class="comment">/*</span></div><div class="line"><span class="comment"> Copyright (C) 2012 Intel Corporation</span></div><div class="line"><span class="comment"></span></div><div class="line"><span class="comment"> This library is free software; you can redistribute it and/or</span></div><div class="line"><span class="comment"> modify it under the terms of the GNU Lesser General Public</span></div><div class="line"><span class="comment"> License as published by the Free Software Foundation; either</span></div><div class="line"><span class="comment"> version 2.1 of the License, or (at your option) any later version.</span></div><div class="line"><span class="comment"></span></div><div class="line"><span class="comment"> This library is distributed in the hope that it will be useful,</span></div><div class="line"><span class="comment"> but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><span class="comment"> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span></div><div class="line"><span class="comment"> Lesser General Public License for more details.</span></div><div class="line"><span class="comment"></span></div><div class="line"><span class="comment"> You should have received a copy of the GNU Lesser General Public</span></div><div class="line"><span class="comment"> License along with this library; if not, write to the Free Software</span></div><div class="line"><span class="comment"> Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA</span></div><div class="line"><span class="comment">*/</span></div><div class="line"></div><div class="line"><span class="preprocessor">#ifndef _ABSTRACTPROPERTYTYPE_H_</span></div><div class="line"><span class="preprocessor">#define _ABSTRACTPROPERTYTYPE_H_</span></div><div class="line"></div><div class="line"><span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><span class="preprocessor">#include &lt;sstream&gt;</span></div><div class="line"><span class="preprocessor">#include &lt;stdexcept&gt;</span></div><div class="line"><span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><span class="preprocessor">#include &lt;iostream&gt;</span></div><div class="line"><span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><span class="preprocessor">#include &lt;boost/any.hpp&gt;</span></div><div class="line"><span class="preprocessor">#include &lt;boost/lexical_cast.hpp&gt;</span></div><div class="line"><span class="preprocessor">#include &lt;boost/utility.hpp&gt;</span></div><div class="line"><span class="preprocessor">#include &lt;type_traits&gt;</span></div><div class="line"><span class="preprocessor">#include &lt;glib.h&gt;</span></div><div class="line"><span class="preprocessor">#include &lt;list&gt;</span></div><div class="line"><span class="preprocessor">#include &quot;timestamp.h&quot;</span></div><div class="line"><span class="preprocessor">#include &lt;<a class="code" href="debugout_8h.html">debugout.h</a>&gt;</span></div><div class="line"><span class="preprocessor">#include &lt;boost/algorithm/string.hpp&gt;</span></div><div class="line"><span class="preprocessor">#include &lt;superptr.hpp&gt;</span></div><div class="line"></div><div class="line"><span class="keyword">class </span><a name="_a0"></a><a class="code" href="classZone.html">Zone</a> {</div><div class="line"></div><div class="line"><span class="keyword">public</span>:</div><div class="line"></div><div class="line"> <span class="keyword">typedef</span> <span class="keywordtype">int</span> Type;</div><div class="line"></div><div class="line"> <span class="keyword">enum</span> {</div><div class="line"> None = 0,</div><div class="line"> Front = 1,</div><div class="line"> Middle = 1 &lt;&lt; 1,</div><div class="line"> Right = 1 &lt;&lt; 2,</div><div class="line"> Left = 1 &lt;&lt; 3,</div><div class="line"> Rear = 1 &lt;&lt; 4,</div><div class="line"> Center = 1 &lt;&lt; 5,</div><div class="line"> LeftSide = 1 &lt;&lt; 6,</div><div class="line"> RightSide = 1 &lt;&lt; 7,</div><div class="line"> FrontSide = 1 &lt;&lt; 8,</div><div class="line"> BackSide = 1 &lt;&lt; 9</div><div class="line"> };</div><div class="line"></div><div class="line"><span class="keyword">static</span> <span class="keyword">const</span> Zone::Type FrontRight;</div><div class="line"><span class="keyword">static</span> <span class="keyword">const</span> Zone::Type FrontLeft;</div><div class="line"><span class="keyword">static</span> <span class="keyword">const</span> Zone::Type MiddleRight;</div><div class="line"><span class="keyword">static</span> <span class="keyword">const</span> Zone::Type MiddleLeft;</div><div class="line"><span class="keyword">static</span> <span class="keyword">const</span> Zone::Type RearRight;</div><div class="line"><span class="keyword">static</span> <span class="keyword">const</span> Zone::Type RearLeft;</div><div class="line"></div><div class="line"><span class="keyword">typedef</span> std::vector&lt;Zone::Type&gt; ZoneList;</div><div class="line"></div><div class="line">};</div><div class="line"></div><div class="line"><span class="keyword">class </span><a name="_a1"></a><a class="code" href="classAbstractPropertyType.html">AbstractPropertyType</a></div><div class="line">{</div><div class="line"><span class="keyword">public</span>:</div><div class="line"></div><div class="line"> <span class="keyword">enum</span> Priority</div><div class="line"> {</div><div class="line"> Normal = 0,</div><div class="line"> Low,</div><div class="line"> High,</div><div class="line"> Instant</div><div class="line"> };</div><div class="line"></div><div class="line"> <a class="code" href="classAbstractPropertyType.html">AbstractPropertyType</a>(std::string property)</div><div class="line"> : name(property), timestamp(amb::currentTime()), sequence(-1), zone(Zone::None), priority(Normal)</div><div class="line"> {</div><div class="line"></div><div class="line"> }</div><div class="line"></div><div class="line"> <span class="keyword">virtual</span> ~<a class="code" href="classAbstractPropertyType.html">AbstractPropertyType</a>()</div><div class="line"> {</div><div class="line"> <span class="keywordflow">for</span>(<span class="keyword">auto</span> i : destroyed)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">if</span>(i) i(<span class="keyword">this</span>);</div><div class="line"> }</div><div class="line"> }</div><div class="line"></div><div class="line"> <span class="keyword">virtual</span> std::string toString() <span class="keyword">const</span> = 0;</div><div class="line"></div><div class="line"> <span class="keyword">virtual</span> <span class="keywordtype">void</span> fromString(std::string)= 0;</div><div class="line"></div><div class="line"> <span class="keyword">virtual</span> GVariant* toVariant() = 0;</div><div class="line"></div><div class="line"> <span class="keyword">virtual</span> <span class="keywordtype">void</span> fromVariant(GVariant*) = 0;</div><div class="line"></div><div class="line"> <span class="keyword">virtual</span> <a class="code" href="classAbstractPropertyType.html">AbstractPropertyType</a>* copy() = 0;</div><div class="line"></div><div class="line"> <span class="keyword">virtual</span> <span class="keywordtype">void</span> quickCopy(<a class="code" href="classAbstractPropertyType.html">AbstractPropertyType</a>* other)</div><div class="line"> {</div><div class="line"> sequence = other-&gt;<a name="a2"></a><a class="code" href="classAbstractPropertyType.html#ae74440c78c4a5f6af1c3b9c85f1a34c2">sequence</a>;</div><div class="line"> mValue = other-&gt;<a name="a3"></a><a class="code" href="classAbstractPropertyType.html#a7ba4118acb746d2b8fc220a12b0e2666">anyValue</a>();</div><div class="line"> timestamp = other-&gt;<a name="a4"></a><a class="code" href="classAbstractPropertyType.html#a6a391546600fde38a351d3d236be8a9b">timestamp</a>;</div><div class="line"> }</div><div class="line"></div><div class="line"> <span class="keywordtype">bool</span> operator == (<a class="code" href="classAbstractPropertyType.html">AbstractPropertyType</a> &amp;other)</div><div class="line"> {</div><div class="line"> std::string one = toString();</div><div class="line"> std::string two = other.<a name="a5"></a><a class="code" href="classAbstractPropertyType.html#a4c359b2e7c3b0ede21c64ba2c90567aa">toString</a>();</div><div class="line"> <span class="keywordflow">return</span> one == two</div><div class="line"> &amp;&amp; zone == other.<a name="a6"></a><a class="code" href="classAbstractPropertyType.html#a420b96a1fcbcbe513ff3801185e788bc">zone</a></div><div class="line"> &amp;&amp; sourceUuid == other.<a name="a7"></a><a class="code" href="classAbstractPropertyType.html#abe2de53722d28e8e7c2a715b97e1ae48">sourceUuid</a></div><div class="line"> &amp;&amp; name == other.<a name="a8"></a><a class="code" href="classAbstractPropertyType.html#a0899de35293963a6c18a0f4913916871">name</a>;</div><div class="line"> }</div><div class="line"></div><div class="line"> <span class="keywordtype">bool</span> operator != (<a class="code" href="classAbstractPropertyType.html">AbstractPropertyType</a> &amp;other)</div><div class="line"> {</div><div class="line"> std::string one = toString();</div><div class="line"> std::string two = other.<a class="code" href="classAbstractPropertyType.html#a4c359b2e7c3b0ede21c64ba2c90567aa">toString</a>();</div><div class="line"> <span class="keywordflow">return</span> one != two;</div><div class="line"> }</div><div class="line"></div><div class="line"> std::string name;</div><div class="line"></div><div class="line"> <span class="keywordtype">double</span> timestamp;</div><div class="line"></div><div class="line"> int32_t sequence;</div><div class="line"></div><div class="line"> std::string sourceUuid;</div><div class="line"></div><div class="line"> Zone::Type zone;</div><div class="line"></div><div class="line"> Priority priority;</div><div class="line"></div><div class="line"> <span class="keyword">virtual</span> <span class="keywordtype">void</span> setValue(boost::any val)</div><div class="line"> {</div><div class="line"> mValue = val;</div><div class="line"> timestamp = amb::currentTime();</div><div class="line"> }</div><div class="line"></div><div class="line"> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div><div class="line"> T value()<span class="keyword"> const</span></div><div class="line"><span class="keyword"> </span>{</div><div class="line"> <span class="keywordflow">return</span> boost::any_cast&lt;T&gt;(mValue);</div><div class="line"> }</div><div class="line"></div><div class="line"> boost::any anyValue()</div><div class="line"> {</div><div class="line"> <span class="keywordflow">return</span> mValue;</div><div class="line"> }</div><div class="line"></div><div class="line"> <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">string</span> signature()</div><div class="line"> {</div><div class="line"> <span class="keyword">auto</span> var = amb::make_super(toVariant());</div><div class="line"> <span class="keywordflow">if</span>(!var) <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"></div><div class="line"> <span class="keyword">const</span> <span class="keywordtype">string</span> s = g_variant_get_type_string(var.get());</div><div class="line"></div><div class="line"> <a name="_a9"></a><a class="code" href="classDebugOut.html">DebugOut</a>() &lt;&lt; <span class="stringliteral">&quot;returning signature: &quot;</span> &lt;&lt; s &lt;&lt; <span class="stringliteral">&quot; for &quot;</span>&lt;&lt; name &lt;&lt; endl;</div><div class="line"></div><div class="line"> <span class="keywordflow">return</span> s;</div><div class="line"> }</div><div class="line"></div><div class="line"> std::vector&lt;std::function&lt;void(AbstractPropertyType*)&gt;&gt; destroyed;</div><div class="line"></div><div class="line"><span class="keyword">protected</span>:</div><div class="line"></div><div class="line"> boost::any mValue;</div><div class="line"></div><div class="line">};</div><div class="line"></div><div class="line"><span class="keyword">namespace </span><a class="code" href="namespaceamb.html">amb</a></div><div class="line">{</div><div class="line"></div><div class="line"><span class="keyword">struct </span>PropertyCompare</div><div class="line">{</div><div class="line"> <span class="keywordtype">bool</span> operator()(<a class="code" href="classAbstractPropertyType.html">AbstractPropertyType</a>* <span class="keyword">const</span> &amp; lhs, <a class="code" href="classAbstractPropertyType.html">AbstractPropertyType</a>* &amp; rhs)<span class="keyword"> const</span></div><div class="line"><span class="keyword"> </span>{</div><div class="line"> <span class="keywordflow">if</span> (lhs-&gt;<a class="code" href="classAbstractPropertyType.html#a0899de35293963a6c18a0f4913916871">name</a> == rhs-&gt;<a class="code" href="classAbstractPropertyType.html#a0899de35293963a6c18a0f4913916871">name</a></div><div class="line"> &amp;&amp; lhs-&gt;<a class="code" href="classAbstractPropertyType.html#abe2de53722d28e8e7c2a715b97e1ae48">sourceUuid</a> == rhs-&gt;<a class="code" href="classAbstractPropertyType.html#abe2de53722d28e8e7c2a715b97e1ae48">sourceUuid</a></div><div class="line"> &amp;&amp; lhs-&gt;<a class="code" href="classAbstractPropertyType.html#a420b96a1fcbcbe513ff3801185e788bc">zone</a> == rhs-&gt;<a class="code" href="classAbstractPropertyType.html#a420b96a1fcbcbe513ff3801185e788bc">zone</a>)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"> }</div><div class="line"></div><div class="line"> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"> }</div><div class="line"></div><div class="line">};</div><div class="line"></div><div class="line">}</div><div class="line"></div><div class="line"></div><div class="line"><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><span class="keyword">class </span><a name="_a10"></a><a class="code" href="classGVS.html">GVS</a>;</div><div class="line"></div><div class="line"><span class="keyword">template</span> &lt;&gt;</div><div class="line"><span class="keyword">class </span><a class="code" href="classGVS.html">GVS</a>&lt;int&gt;</div><div class="line">{</div><div class="line"><span class="keyword">public</span>:</div><div class="line"> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* signature() { <span class="keywordflow">return</span> <span class="stringliteral">&quot;i&quot;</span>; }</div><div class="line"></div><div class="line"> <span class="keyword">static</span> <span class="keywordtype">int</span> value(GVariant* v)</div><div class="line"> {</div><div class="line"> <span class="keywordtype">int</span> val = 0;</div><div class="line"> g_variant_get(v, signature(), &amp;val);</div><div class="line"> <span class="keywordflow">return</span> val;</div><div class="line"> }</div><div class="line"></div><div class="line"> <span class="keyword">static</span> std::string stringize(std::string v)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">return</span> v;</div><div class="line"> }</div><div class="line">};</div><div class="line"></div><div class="line"><span class="keyword">template</span> &lt;&gt;</div><div class="line"><span class="keyword">class </span><a class="code" href="classGVS.html">GVS</a>&lt;double&gt;</div><div class="line">{</div><div class="line"><span class="keyword">public</span>:</div><div class="line"> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* signature() { <span class="keywordflow">return</span> <span class="stringliteral">&quot;d&quot;</span>; }</div><div class="line"></div><div class="line"> <span class="keyword">static</span> <span class="keywordtype">double</span> value(GVariant* v)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">return</span> g_variant_get_double(v);</div><div class="line"> }</div><div class="line"> <span class="keyword">static</span> std::string stringize(std::string v)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">return</span> v;</div><div class="line"> }</div><div class="line">};</div><div class="line"></div><div class="line"><span class="keyword">template</span> &lt;&gt;</div><div class="line"><span class="keyword">class </span><a class="code" href="classGVS.html">GVS</a>&lt;uint16_t&gt;</div><div class="line">{</div><div class="line"><span class="keyword">public</span>:</div><div class="line"> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* signature() { <span class="keywordflow">return</span> <span class="stringliteral">&quot;q&quot;</span>; }</div><div class="line"></div><div class="line"> <span class="keyword">static</span> uint16_t value(GVariant* v)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">return</span> g_variant_get_uint16(v);</div><div class="line"> }</div><div class="line"> <span class="keyword">static</span> std::string stringize(std::string v)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">return</span> v;</div><div class="line"> }</div><div class="line">};</div><div class="line"></div><div class="line"><span class="keyword">template</span> &lt;&gt;</div><div class="line"><span class="keyword">class </span><a class="code" href="classGVS.html">GVS</a>&lt;int16_t&gt;</div><div class="line">{</div><div class="line"><span class="keyword">public</span>:</div><div class="line"> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* signature() { <span class="keywordflow">return</span> <span class="stringliteral">&quot;n&quot;</span>; }</div><div class="line"></div><div class="line"> <span class="keyword">static</span> int16_t value(GVariant* v)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">return</span> g_variant_get_int16(v);</div><div class="line"> }</div><div class="line"> <span class="keyword">static</span> std::string stringize(std::string v)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">return</span> v;</div><div class="line"> }</div><div class="line">};</div><div class="line"></div><div class="line"><span class="keyword">template</span> &lt;&gt;</div><div class="line"><span class="keyword">class </span><a class="code" href="classGVS.html">GVS</a>&lt;char&gt;</div><div class="line">{</div><div class="line"><span class="keyword">public</span>:</div><div class="line"> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* signature() { <span class="keywordflow">return</span> <span class="stringliteral">&quot;y&quot;</span>; }</div><div class="line"></div><div class="line"> <span class="keyword">static</span> <span class="keywordtype">char</span> value(GVariant* v)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">return</span> g_variant_get_byte(v);</div><div class="line"> }</div><div class="line"> <span class="keyword">static</span> std::string stringize(std::string v)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">return</span> v;</div><div class="line"> }</div><div class="line">};</div><div class="line"></div><div class="line"><span class="keyword">template</span> &lt;&gt;</div><div class="line"><span class="keyword">class </span><a class="code" href="classGVS.html">GVS</a>&lt;uint32_t&gt;</div><div class="line">{</div><div class="line"><span class="keyword">public</span>:</div><div class="line"> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* signature() { <span class="keywordflow">return</span> <span class="stringliteral">&quot;u&quot;</span>; }</div><div class="line"></div><div class="line"> <span class="keyword">static</span> uint32_t value(GVariant* v)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">return</span> g_variant_get_uint32(v);</div><div class="line"> }</div><div class="line"> <span class="keyword">static</span> std::string stringize(std::string v)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">return</span> v;</div><div class="line"> }</div><div class="line">};</div><div class="line"></div><div class="line"><span class="keyword">template</span> &lt;&gt;</div><div class="line"><span class="keyword">class </span><a class="code" href="classGVS.html">GVS</a>&lt;int64_t&gt;</div><div class="line">{</div><div class="line"><span class="keyword">public</span>:</div><div class="line"> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* signature() { <span class="keywordflow">return</span> <span class="stringliteral">&quot;x&quot;</span>; }</div><div class="line"></div><div class="line"> <span class="keyword">static</span> int64_t value(GVariant* v)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">return</span> g_variant_get_int64(v);</div><div class="line"> }</div><div class="line"> <span class="keyword">static</span> std::string stringize(std::string v)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">return</span> v;</div><div class="line"> }</div><div class="line">};</div><div class="line"></div><div class="line"><span class="keyword">template</span> &lt;&gt;</div><div class="line"><span class="keyword">class </span><a class="code" href="classGVS.html">GVS</a>&lt;uint64_t&gt;</div><div class="line">{</div><div class="line"><span class="keyword">public</span>:</div><div class="line"> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* signature() { <span class="keywordflow">return</span> <span class="stringliteral">&quot;t&quot;</span>; }</div><div class="line"></div><div class="line"> <span class="keyword">static</span> uint64_t value(GVariant* v)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">return</span> g_variant_get_uint64(v);</div><div class="line"> }</div><div class="line"> <span class="keyword">static</span> std::string stringize(std::string v)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">return</span> v;</div><div class="line"> }</div><div class="line">};</div><div class="line"></div><div class="line"><span class="keyword">template</span> &lt;&gt;</div><div class="line"><span class="keyword">class </span><a class="code" href="classGVS.html">GVS</a>&lt;bool&gt;</div><div class="line">{</div><div class="line"><span class="keyword">public</span>:</div><div class="line"> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* signature() { <span class="keywordflow">return</span> <span class="stringliteral">&quot;b&quot;</span>; }</div><div class="line"></div><div class="line"> <span class="keyword">static</span> <span class="keywordtype">bool</span> value(GVariant *v)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">return</span> g_variant_get_boolean(v);</div><div class="line"> }</div><div class="line"> <span class="keyword">static</span> std::string stringize(std::string v)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">if</span>(v == <span class="stringliteral">&quot;0&quot;</span> || v == <span class="stringliteral">&quot;1&quot;</span>)</div><div class="line"> <span class="keywordflow">return</span> v;</div><div class="line"></div><div class="line"> boost::algorithm::to_lower(v);</div><div class="line"> <span class="keywordflow">return</span> v == <span class="stringliteral">&quot;true&quot;</span> ? <span class="stringliteral">&quot;1&quot;</span>:<span class="stringliteral">&quot;0&quot;</span>;</div><div class="line"> }</div><div class="line">};</div><div class="line"></div><div class="line"><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><span class="keyword">class </span><a name="_a11"></a><a class="code" href="classBasicPropertyType.html">BasicPropertyType</a>: <span class="keyword">public</span> <a class="code" href="classAbstractPropertyType.html">AbstractPropertyType</a></div><div class="line">{</div><div class="line"><span class="keyword">public</span>:</div><div class="line"> <a class="code" href="classBasicPropertyType.html">BasicPropertyType</a>(): <a class="code" href="classAbstractPropertyType.html">AbstractPropertyType</a>(<span class="stringliteral">&quot;&quot;</span>)</div><div class="line"> {</div><div class="line"> mValue = T();</div><div class="line"> }</div><div class="line"></div><div class="line"> <a class="code" href="classBasicPropertyType.html">BasicPropertyType</a>(<a class="code" href="classBasicPropertyType.html">BasicPropertyType</a> <span class="keyword">const</span> &amp; other)</div><div class="line"> :<a class="code" href="classAbstractPropertyType.html">AbstractPropertyType</a>(other.<a class="code" href="classAbstractPropertyType.html#a0899de35293963a6c18a0f4913916871">name</a>)</div><div class="line"> {</div><div class="line"> setValue(other.<a name="a12"></a><a class="code" href="classAbstractPropertyType.html#ae723621925382263eba046fa1ca8e36d">value</a>&lt;T&gt;());</div><div class="line"> timestamp = other.<a class="code" href="classAbstractPropertyType.html#a6a391546600fde38a351d3d236be8a9b">timestamp</a>;</div><div class="line"> sequence = other.<a class="code" href="classAbstractPropertyType.html#ae74440c78c4a5f6af1c3b9c85f1a34c2">sequence</a>;</div><div class="line"> sourceUuid = other.<a class="code" href="classAbstractPropertyType.html#abe2de53722d28e8e7c2a715b97e1ae48">sourceUuid</a>;</div><div class="line"> name = other.<a class="code" href="classAbstractPropertyType.html#a0899de35293963a6c18a0f4913916871">name</a>;</div><div class="line"> zone = other.<a class="code" href="classAbstractPropertyType.html#a420b96a1fcbcbe513ff3801185e788bc">zone</a>;</div><div class="line"></div><div class="line"> }</div><div class="line"></div><div class="line"> <a class="code" href="classBasicPropertyType.html">BasicPropertyType</a> &amp; operator = (<a class="code" href="classBasicPropertyType.html">BasicPropertyType</a> <span class="keyword">const</span> &amp; other)</div><div class="line"> {</div><div class="line"> setValue(other.<a class="code" href="classAbstractPropertyType.html#ae723621925382263eba046fa1ca8e36d">value</a>&lt;T&gt;());</div><div class="line"> timestamp = other.<a class="code" href="classAbstractPropertyType.html#a6a391546600fde38a351d3d236be8a9b">timestamp</a>;</div><div class="line"> sequence = other.<a class="code" href="classAbstractPropertyType.html#ae74440c78c4a5f6af1c3b9c85f1a34c2">sequence</a>;</div><div class="line"> sourceUuid = other.<a class="code" href="classAbstractPropertyType.html#abe2de53722d28e8e7c2a715b97e1ae48">sourceUuid</a>;</div><div class="line"> name = other.<a class="code" href="classAbstractPropertyType.html#a0899de35293963a6c18a0f4913916871">name</a>;</div><div class="line"> zone = other.<a class="code" href="classAbstractPropertyType.html#a420b96a1fcbcbe513ff3801185e788bc">zone</a>;</div><div class="line"></div><div class="line"> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"> }</div><div class="line"></div><div class="line"> <a class="code" href="classBasicPropertyType.html">BasicPropertyType</a> &amp; operator = (T <span class="keyword">const</span> &amp; other)</div><div class="line"> {</div><div class="line"> setValue(other);</div><div class="line"> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"> }</div><div class="line"></div><div class="line"> <a class="code" href="classBasicPropertyType.html">BasicPropertyType</a> &amp; operator ++ ()</div><div class="line"> {</div><div class="line"> setValue(basicValue() + 1);</div><div class="line"> }</div><div class="line"></div><div class="line"> <a class="code" href="classBasicPropertyType.html">BasicPropertyType</a> &amp; operator -- ()</div><div class="line"> {</div><div class="line"> setValue(basicValue() - 1);</div><div class="line"> }</div><div class="line"></div><div class="line"> <span class="keywordtype">bool</span> operator &lt; (const BasicPropertyType&lt;T&gt;&amp; other) <span class="keyword">const</span></div><div class="line"> {</div><div class="line"> <span class="keywordflow">return</span> value&lt;T&gt;() &lt; other.value&lt;T&gt;();</div><div class="line"> }</div><div class="line"></div><div class="line"> <span class="keywordtype">bool</span> operator &gt; (<span class="keyword">const</span> <a class="code" href="classBasicPropertyType.html">BasicPropertyType&lt;T&gt;</a>&amp; other)<span class="keyword"> const</span></div><div class="line"><span class="keyword"> </span>{</div><div class="line"> <span class="keywordflow">return</span> value&lt;T&gt;() &gt; other.<a name="a13"></a><a class="code" href="classAbstractPropertyType.html#ae723621925382263eba046fa1ca8e36d">value</a>&lt;T&gt;();</div><div class="line"> }</div><div class="line"></div><div class="line"> <a class="code" href="classBasicPropertyType.html">BasicPropertyType</a>( T val)</div><div class="line"> :<a class="code" href="classAbstractPropertyType.html">AbstractPropertyType</a>(<span class="stringliteral">&quot;&quot;</span>)</div><div class="line"> {</div><div class="line"> setValue(val);</div><div class="line"> }</div><div class="line"></div><div class="line"> <a class="code" href="classBasicPropertyType.html">BasicPropertyType</a>( std::string propertyName, T val)</div><div class="line"> :<a class="code" href="classAbstractPropertyType.html">AbstractPropertyType</a>(propertyName)</div><div class="line"> {</div><div class="line"> setValue(val);</div><div class="line"> }</div><div class="line"></div><div class="line"> <a class="code" href="classBasicPropertyType.html">BasicPropertyType</a>( std::string propertyName, std::string val)</div><div class="line"> :<a class="code" href="classAbstractPropertyType.html">AbstractPropertyType</a>(propertyName)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">if</span>(!val.empty() &amp;&amp; val != <span class="stringliteral">&quot;&quot;</span>)</div><div class="line"> {</div><div class="line"> serialize&lt;T&gt;(val);</div><div class="line"> }</div><div class="line"> <span class="keywordflow">else</span> setValue(T());</div><div class="line"> }</div><div class="line"></div><div class="line"> <a class="code" href="classBasicPropertyType.html">BasicPropertyType</a>(std::string propertyName)</div><div class="line"> :<a class="code" href="classAbstractPropertyType.html">AbstractPropertyType</a>(propertyName)</div><div class="line"> {</div><div class="line"> mValue = T();</div><div class="line"> }</div><div class="line"></div><div class="line"> <a class="code" href="classAbstractPropertyType.html">AbstractPropertyType</a>* copy()</div><div class="line"> {</div><div class="line"> <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="classBasicPropertyType.html">BasicPropertyType&lt;T&gt;</a>(*this);</div><div class="line"> }</div><div class="line"></div><div class="line"> <span class="keywordtype">void</span> fromString(std::string val)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">if</span>(!val.empty() &amp;&amp; val != <span class="stringliteral">&quot;&quot;</span>)</div><div class="line"> {</div><div class="line"> serialize&lt;T&gt;(val);</div><div class="line"> }</div><div class="line"> }</div><div class="line"></div><div class="line"> std::string toString()<span class="keyword"> const</span></div><div class="line"><span class="keyword"> </span>{</div><div class="line"> std::stringstream stream;</div><div class="line"> stream.precision(10);</div><div class="line"> stream&lt;&lt;value&lt;T&gt;();</div><div class="line"></div><div class="line"> <span class="keywordflow">return</span> stream.str();</div><div class="line"> }</div><div class="line"></div><div class="line"> GVariant* toVariant()</div><div class="line"> {</div><div class="line"> <span class="keywordflow">return</span> serializeVariant&lt;T&gt;(value&lt;T&gt;());</div><div class="line"> }</div><div class="line"></div><div class="line"> <span class="keywordtype">void</span> fromVariant(GVariant *v)</div><div class="line"> {</div><div class="line"> setValue(deserializeVariant&lt;T&gt;(v));</div><div class="line"> }</div><div class="line"></div><div class="line"> T basicValue()</div><div class="line"> {</div><div class="line"> <span class="keywordflow">return</span> value&lt;T&gt;();</div><div class="line"> }</div><div class="line"></div><div class="line"> <span class="keywordtype">void</span> setValue(T val)</div><div class="line"> {</div><div class="line"> <a name="a14"></a><a class="code" href="classAbstractPropertyType.html#a1b2598b86718911533587a5bd41bfb9c">AbstractPropertyType::setValue</a>(val);</div><div class="line"> }</div><div class="line"></div><div class="line"> <span class="keywordtype">void</span> setValue(boost::any val)</div><div class="line"> {</div><div class="line"> <a class="code" href="classAbstractPropertyType.html#a1b2598b86718911533587a5bd41bfb9c">AbstractPropertyType::setValue</a>(val);</div><div class="line"> }</div><div class="line"></div><div class="line"><span class="keyword">private</span>:</div><div class="line"></div><div class="line"> <span class="comment">//GVariant* mVariant;</span></div><div class="line"></div><div class="line"> <span class="keyword">template</span> &lt;<span class="keyword">class</span> N&gt;</div><div class="line"> <span class="keywordtype">void</span> serialize(std::string val, <span class="keyword">typename</span> std::enable_if&lt;std::is_enum&lt;N&gt;::value, N&gt;::type* = 0)</div><div class="line"> {</div><div class="line"> <span class="keywordtype">int</span> someTemp;</div><div class="line"></div><div class="line"> std::stringstream stream(val);</div><div class="line"></div><div class="line"> stream&gt;&gt;someTemp;</div><div class="line"> setValue((N)someTemp);</div><div class="line"> }</div><div class="line"></div><div class="line"> <span class="keyword">template</span> &lt;<span class="keyword">class</span> N&gt;</div><div class="line"> <span class="keywordtype">void</span> serialize(std::string val, <span class="keyword">typename</span> std::enable_if&lt;!std::is_enum&lt;N&gt;::value, N&gt;::type* = 0)</div><div class="line"> {</div><div class="line"> std::stringstream stream(<a class="code" href="classGVS.html">GVS&lt;T&gt;::stringize</a>(val));</div><div class="line"> N someTemp;</div><div class="line"> stream&gt;&gt;someTemp;</div><div class="line"> setValue(someTemp);</div><div class="line"> }</div><div class="line"></div><div class="line"> <span class="keyword">template</span> &lt;<span class="keyword">class</span> N&gt;</div><div class="line"> GVariant* serializeVariant(T val, <span class="keyword">typename</span> std::enable_if&lt;std::is_enum&lt;N&gt;::value, N&gt;::type* = 0)</div><div class="line"> {</div><div class="line"> <span class="comment">//mVariant = Glib::VariantBase(Glib::Variant&lt;gint16&gt;::create((int)val).gobj());</span></div><div class="line"></div><div class="line"> <span class="keywordflow">return</span> (g_variant_new(<span class="stringliteral">&quot;i&quot;</span>,(<span class="keywordtype">int</span>)val));</div><div class="line"> }</div><div class="line"></div><div class="line"> <span class="keyword">template</span> &lt;<span class="keyword">class</span> N&gt;</div><div class="line"> GVariant* serializeVariant(T val, <span class="keyword">typename</span> std::enable_if&lt;!std::is_enum&lt;N&gt;::value, N&gt;::type* = 0)</div><div class="line"> {</div><div class="line"> <span class="comment">//mVariant = Glib::Variant&lt;T&gt;::create(val);</span></div><div class="line"> <span class="comment">//mVariant = g_variant_ref(g_variant_new(GVS&lt;T&gt;::signature(),val));</span></div><div class="line"> <span class="keywordflow">return</span> g_variant_new(<a class="code" href="classGVS.html">GVS&lt;T&gt;::signature</a>(),val);</div><div class="line"> }</div><div class="line"></div><div class="line"> <span class="keyword">template</span> &lt;<span class="keyword">class</span> N&gt;</div><div class="line"> T deserializeVariant(GVariant* v, <span class="keyword">typename</span> std::enable_if&lt;std::is_enum&lt;N&gt;::value, N&gt;::type* = 0)</div><div class="line"> {</div><div class="line"><span class="comment">// return (T)((Glib::Variant&lt;int&gt;::cast_dynamic&lt;Glib::Variant&lt;int&gt; &gt;(*v)).get());</span></div><div class="line"></div><div class="line"> <span class="keywordflow">return</span> (T)<a class="code" href="classGVS.html">GVS&lt;int&gt;::value</a>(v);</div><div class="line"> }</div><div class="line"></div><div class="line"> <span class="keyword">template</span> &lt;<span class="keyword">class</span> N&gt;</div><div class="line"> T deserializeVariant(GVariant* v, <span class="keyword">typename</span> std::enable_if&lt;!std::is_enum&lt;N&gt;::value, N&gt;::type* = 0)</div><div class="line"> {</div><div class="line"> <span class="comment">// return Glib::VariantBase::cast_dynamic&lt;Glib::Variant&lt;T&gt; &gt;(*v).get();</span></div><div class="line"> <span class="keywordflow">return</span> <a class="code" href="classGVS.html">GVS&lt;T&gt;::value</a>(v);</div><div class="line"> }</div><div class="line">};</div><div class="line"></div><div class="line"><span class="keyword">class </span><a name="_a15"></a><a class="code" href="classStringPropertyType.html">StringPropertyType</a>: <span class="keyword">public</span> <a class="code" href="classAbstractPropertyType.html">AbstractPropertyType</a></div><div class="line">{</div><div class="line"><span class="keyword">public</span>:</div><div class="line"></div><div class="line"></div><div class="line"> <a class="code" href="classStringPropertyType.html">StringPropertyType</a>()</div><div class="line"> :<a class="code" href="classAbstractPropertyType.html">AbstractPropertyType</a>(<span class="stringliteral">&quot;&quot;</span>)</div><div class="line"> {</div><div class="line"> setValue(std::string());</div><div class="line"> }</div><div class="line"></div><div class="line"> <a class="code" href="classStringPropertyType.html">StringPropertyType</a>(std::string propertyName)</div><div class="line"> :<a class="code" href="classAbstractPropertyType.html">AbstractPropertyType</a>(propertyName)</div><div class="line"> {</div><div class="line"> setValue(std::string());</div><div class="line"> }</div><div class="line"></div><div class="line"> <a class="code" href="classStringPropertyType.html">StringPropertyType</a>(std::string propertyName, std::string val)</div><div class="line"> :<a class="code" href="classAbstractPropertyType.html">AbstractPropertyType</a>(propertyName)</div><div class="line"> {</div><div class="line"> setValue(val);</div><div class="line"> }</div><div class="line"></div><div class="line"> <a class="code" href="classStringPropertyType.html">StringPropertyType</a>(<a class="code" href="classStringPropertyType.html">StringPropertyType</a> <span class="keyword">const</span> &amp; other)</div><div class="line"> :<a class="code" href="classAbstractPropertyType.html">AbstractPropertyType</a>(other.<a class="code" href="classAbstractPropertyType.html#a0899de35293963a6c18a0f4913916871">name</a>)</div><div class="line"> {</div><div class="line"> setValue(other.<a class="code" href="classAbstractPropertyType.html#ae723621925382263eba046fa1ca8e36d">value</a>&lt;std::string&gt;());</div><div class="line"> timestamp = other.<a class="code" href="classAbstractPropertyType.html#a6a391546600fde38a351d3d236be8a9b">timestamp</a>;</div><div class="line"> sequence = other.<a class="code" href="classAbstractPropertyType.html#ae74440c78c4a5f6af1c3b9c85f1a34c2">sequence</a>;</div><div class="line"> sourceUuid = other.<a class="code" href="classAbstractPropertyType.html#abe2de53722d28e8e7c2a715b97e1ae48">sourceUuid</a>;</div><div class="line"> name = other.<a class="code" href="classAbstractPropertyType.html#a0899de35293963a6c18a0f4913916871">name</a>;</div><div class="line"> zone = other.<a class="code" href="classAbstractPropertyType.html#a420b96a1fcbcbe513ff3801185e788bc">zone</a>;</div><div class="line"> }</div><div class="line"></div><div class="line"> <a class="code" href="classStringPropertyType.html">StringPropertyType</a> &amp; operator = (<a class="code" href="classStringPropertyType.html">StringPropertyType</a> <span class="keyword">const</span> &amp; other)</div><div class="line"> {</div><div class="line"> setValue(other.<a class="code" href="classAbstractPropertyType.html#ae723621925382263eba046fa1ca8e36d">value</a>&lt;std::string&gt;());</div><div class="line"> timestamp = other.<a class="code" href="classAbstractPropertyType.html#a6a391546600fde38a351d3d236be8a9b">timestamp</a>;</div><div class="line"> sequence = other.<a class="code" href="classAbstractPropertyType.html#ae74440c78c4a5f6af1c3b9c85f1a34c2">sequence</a>;</div><div class="line"> sourceUuid = other.<a class="code" href="classAbstractPropertyType.html#abe2de53722d28e8e7c2a715b97e1ae48">sourceUuid</a>;</div><div class="line"> name = other.<a class="code" href="classAbstractPropertyType.html#a0899de35293963a6c18a0f4913916871">name</a>;</div><div class="line"> zone = other.<a class="code" href="classAbstractPropertyType.html#a420b96a1fcbcbe513ff3801185e788bc">zone</a>;</div><div class="line"></div><div class="line"> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"> }</div><div class="line"></div><div class="line"> <a class="code" href="classStringPropertyType.html">StringPropertyType</a> &amp; operator = (std::string <span class="keyword">const</span> &amp; other)</div><div class="line"> {</div><div class="line"> setValue(std::string(other));</div><div class="line"> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"> }</div><div class="line"></div><div class="line"> <span class="keywordtype">bool</span> operator &lt; (<span class="keyword">const</span> <a class="code" href="classStringPropertyType.html">StringPropertyType</a>&amp; other)<span class="keyword"> const</span></div><div class="line"><span class="keyword"> </span>{</div><div class="line"> <span class="keywordflow">return</span> value&lt;std::string&gt;() &lt; other.<a class="code" href="classAbstractPropertyType.html#ae723621925382263eba046fa1ca8e36d">value</a>&lt;std::string&gt;();</div><div class="line"> }</div><div class="line"></div><div class="line"></div><div class="line"> <span class="keywordtype">void</span> fromString(std::string val)</div><div class="line"> {</div><div class="line"> setValue(val);</div><div class="line"> }</div><div class="line"></div><div class="line"> <a class="code" href="classAbstractPropertyType.html">AbstractPropertyType</a>* copy()</div><div class="line"> {</div><div class="line"> <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="classStringPropertyType.html">StringPropertyType</a>(*<span class="keyword">this</span>);</div><div class="line"> }</div><div class="line"></div><div class="line"> std::string toString()<span class="keyword"> const</span></div><div class="line"><span class="keyword"> </span>{</div><div class="line"> <span class="keywordflow">return</span> value&lt;std::string&gt;();</div><div class="line"> }</div><div class="line"></div><div class="line"> GVariant* toVariant()</div><div class="line"> {</div><div class="line"> <span class="comment">//mVariant = Glib::Variant&lt;std::string&gt;::create(toString());</span></div><div class="line"></div><div class="line"> <span class="keywordflow">return</span> g_variant_new_string(toString().c_str());</div><div class="line"></div><div class="line"> }</div><div class="line"></div><div class="line"> <span class="keywordtype">void</span> fromVariant(GVariant *v)</div><div class="line"> {</div><div class="line"> setValue(std::string(g_variant_get_string(v,NULL)));</div><div class="line"> }</div><div class="line">};</div><div class="line"></div><div class="line"><span class="keyword">template</span> &lt;<span class="keyword">class</span> T = AbstractPropertyType&gt;</div><div class="line"><span class="keyword">class </span><a name="_a16"></a><a class="code" href="classListPropertyType.html">ListPropertyType</a>: <span class="keyword">public</span> <a class="code" href="classAbstractPropertyType.html">AbstractPropertyType</a></div><div class="line">{</div><div class="line"><span class="keyword">public</span>:</div><div class="line"></div><div class="line"> <a class="code" href="classListPropertyType.html">ListPropertyType</a>(std::string propertyName)</div><div class="line"> : <a class="code" href="classAbstractPropertyType.html">AbstractPropertyType</a>(propertyName), initialized(<span class="keyword">false</span>)</div><div class="line"> {</div><div class="line"></div><div class="line"> }</div><div class="line"></div><div class="line"> <a class="code" href="classListPropertyType.html">ListPropertyType</a>(std::string propertyName, T value)</div><div class="line"> : <a class="code" href="classAbstractPropertyType.html">AbstractPropertyType</a>(propertyName), initialized(<span class="keyword">false</span>)</div><div class="line"> {</div><div class="line"> appendPriv(value);</div><div class="line"> }</div><div class="line"></div><div class="line"> <a class="code" href="classListPropertyType.html">ListPropertyType</a>(<a class="code" href="classListPropertyType.html">ListPropertyType</a> &amp; other)</div><div class="line"> :<a class="code" href="classAbstractPropertyType.html">AbstractPropertyType</a>(other.<a class="code" href="classAbstractPropertyType.html#a0899de35293963a6c18a0f4913916871">name</a>),initialized(<span class="keyword">false</span>)</div><div class="line"> {</div><div class="line"> std::vector&lt;T&gt; l = other.<a name="a17"></a>list();</div><div class="line"> <span class="keywordflow">for</span>(<span class="keyword">auto</span> i : l)</div><div class="line"> {</div><div class="line"> append(i);</div><div class="line"> }</div><div class="line"></div><div class="line"> timestamp = other.<a class="code" href="classAbstractPropertyType.html#a6a391546600fde38a351d3d236be8a9b">timestamp</a>;</div><div class="line"> sequence = other.<a class="code" href="classAbstractPropertyType.html#ae74440c78c4a5f6af1c3b9c85f1a34c2">sequence</a>;</div><div class="line"> sourceUuid = other.<a class="code" href="classAbstractPropertyType.html#abe2de53722d28e8e7c2a715b97e1ae48">sourceUuid</a>;</div><div class="line"> name = other.<a class="code" href="classAbstractPropertyType.html#a0899de35293963a6c18a0f4913916871">name</a>;</div><div class="line"> zone = other.<a class="code" href="classAbstractPropertyType.html#a420b96a1fcbcbe513ff3801185e788bc">zone</a>;</div><div class="line"> }</div><div class="line"></div><div class="line"> ~<a class="code" href="classListPropertyType.html">ListPropertyType</a>()</div><div class="line"> {</div><div class="line"> clear();</div><div class="line"> }</div><div class="line"></div><div class="line"> <span class="keywordtype">void</span> append(T property)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">if</span>(!initialized)</div><div class="line"> {</div><div class="line"> mList.clear();</div><div class="line"> initialized = <span class="keyword">true</span>;</div><div class="line"> }</div><div class="line"></div><div class="line"> appendPriv(property);</div><div class="line"> }</div><div class="line"></div><div class="line"> uint count()</div><div class="line"> {</div><div class="line"> <span class="keywordflow">return</span> mList.size();</div><div class="line"> }</div><div class="line"></div><div class="line"> <a class="code" href="classAbstractPropertyType.html">AbstractPropertyType</a>* copy()</div><div class="line"> {</div><div class="line"> <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="classListPropertyType.html">ListPropertyType</a>(*<span class="keyword">this</span>);</div><div class="line"> }</div><div class="line"></div><div class="line"> <span class="keywordtype">void</span> quickCopy(<a class="code" href="classAbstractPropertyType.html">AbstractPropertyType</a>* other)</div><div class="line"> {</div><div class="line"> <a name="a18"></a><a class="code" href="classAbstractPropertyType.html#a0996989d0082ad3f621fec938b60ed10">AbstractPropertyType::quickCopy</a>(other);</div><div class="line"> <a class="code" href="classListPropertyType.html">ListPropertyType&lt;T&gt;</a>* v = <span class="keyword">static_cast&lt;</span><a class="code" href="classListPropertyType.html">ListPropertyType&lt;T&gt;</a>*<span class="keyword">&gt;</span>(other);</div><div class="line"> <span class="keywordflow">if</span>(!v)</div><div class="line"> {</div><div class="line"> <a class="code" href="classDebugOut.html">DebugOut</a>(<a name="a19"></a><a class="code" href="classDebugOut.html#a40314aef0df2ed8a705d9372d49b0535">DebugOut::Error</a>) &lt;&lt; <span class="stringliteral">&quot;ListPropertyType Quick Copy failed&quot;</span> &lt;&lt; endl;</div><div class="line"> <span class="keywordflow">return</span>;</div><div class="line"> }</div><div class="line"> mList = v-&gt;<a name="a20"></a>list();</div><div class="line"> }</div><div class="line"></div><div class="line"> std::string toString()<span class="keyword"> const</span></div><div class="line"><span class="keyword"> </span>{</div><div class="line"> std::string str = <span class="stringliteral">&quot;[&quot;</span>;</div><div class="line"></div><div class="line"> <span class="keywordflow">for</span>(<span class="keyword">auto</span> itr = mList.begin(); itr != mList.end(); itr++)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">if</span>(str != <span class="stringliteral">&quot;[&quot;</span>)</div><div class="line"> str += <span class="stringliteral">&quot;,&quot;</span>;</div><div class="line"></div><div class="line"> T t = *itr;</div><div class="line"></div><div class="line"> str += t.toString();</div><div class="line"> }</div><div class="line"></div><div class="line"> str += <span class="stringliteral">&quot;]&quot;</span>;</div><div class="line"></div><div class="line"> <span class="keywordflow">return</span> str;</div><div class="line"> }</div><div class="line"></div><div class="line"></div><div class="line"> <span class="keywordtype">void</span> fromString(std::string str )</div><div class="line"> {</div><div class="line"> clear();</div><div class="line"></div><div class="line"> <span class="keywordflow">if</span>(!str.length())</div><div class="line"> <span class="keywordflow">return</span>;</div><div class="line"></div><div class="line"> <span class="keywordflow">if</span>(str[0] == <span class="charliteral">&#39;[&#39;</span> &amp;&amp; str[str.length()-1] == <span class="charliteral">&#39;]&#39;</span>)</div><div class="line"> {</div><div class="line"> str = str.substr(1,str.length() - 2);</div><div class="line"> }</div><div class="line"></div><div class="line"> std::vector&lt;std::string&gt; elements;</div><div class="line"></div><div class="line"> std::istringstream f(str);</div><div class="line"></div><div class="line"> std::string element;</div><div class="line"> <span class="keywordflow">while</span>(std::getline(f,element,<span class="charliteral">&#39;,&#39;</span>))</div><div class="line"> {</div><div class="line"> T foo(<span class="stringliteral">&quot;&quot;</span>, element);</div><div class="line"> append (foo);</div><div class="line"> }</div><div class="line"> timestamp = amb::currentTime();</div><div class="line"> }</div><div class="line"></div><div class="line"></div><div class="line"> GVariant* toVariant()</div><div class="line"> {</div><div class="line"></div><div class="line"> GVariantBuilder params;</div><div class="line"> g_variant_builder_init(&amp;params, ((<span class="keyword">const</span> GVariantType *) <span class="stringliteral">&quot;av&quot;</span>));</div><div class="line"></div><div class="line"> <span class="keywordflow">for</span>(<span class="keyword">auto</span> itr = mList.begin(); itr != mList.end(); itr++)</div><div class="line"> {</div><div class="line"> T t = *itr;</div><div class="line"> <span class="keyword">auto</span> var = t.toVariant();</div><div class="line"> GVariant *newvar = g_variant_new(<span class="stringliteral">&quot;v&quot;</span>, var);</div><div class="line"> g_variant_builder_add_value(&amp;params, newvar);</div><div class="line"> }</div><div class="line"></div><div class="line"> GVariant* var = g_variant_builder_end(&amp;params);</div><div class="line"> g_assert(var);</div><div class="line"> <span class="keywordflow">return</span> var;</div><div class="line"></div><div class="line"> }</div><div class="line"></div><div class="line"> <span class="keywordtype">void</span> fromVariant(GVariant* v)</div><div class="line"> {</div><div class="line"> clear();</div><div class="line"></div><div class="line"> gsize dictsize = g_variant_n_children(v);</div><div class="line"> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0;i&lt;dictsize;i++)</div><div class="line"> {</div><div class="line"> GVariant *childvariant = g_variant_get_child_value(v,i);</div><div class="line"> GVariant *innervariant = g_variant_get_variant(childvariant);</div><div class="line"> T t;</div><div class="line"> t.fromVariant(innervariant);</div><div class="line"> appendPriv(t);</div><div class="line"> }</div><div class="line"> }</div><div class="line"></div><div class="line"> std::vector&lt;T&gt; list() { <span class="keywordflow">return</span> mList; }</div><div class="line"></div><div class="line"><span class="keyword">private</span>:</div><div class="line"></div><div class="line"> <span class="keywordtype">void</span> clear()</div><div class="line"> {</div><div class="line"> mList.clear();</div><div class="line"> }</div><div class="line"></div><div class="line"> <span class="keywordtype">void</span> appendPriv(T i)</div><div class="line"> {</div><div class="line"> mList.push_back(i);</div><div class="line"> }</div><div class="line"></div><div class="line"> <span class="keywordtype">bool</span> initialized;</div><div class="line"></div><div class="line"> std::vector&lt;T&gt; mList;</div><div class="line">};</div><div class="line"></div><div class="line"><span class="preprocessor">#endif</span></div></div><!-- fragment --> </div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.11
+</small></address>
+</body>
+</html>