converter_8hh_source.html 49 KB
Newer Older
garciay's avatar
garciay committed
<!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.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ETSI STF525 / Internal Testing test suite: /home/vagrant/TriesAndDelete/etsi_its/framework/include/converter.hh Source File</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>
<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">ETSI STF525 / Internal Testing test suite
   </div>
   <div id="projectbrief">This project provides an internal testing test suite and its associated Test Adapter/Codec</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- 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 id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_644e041c3a6521da7b27eba0e4eb2b95.html">framework</a></li><li class="navelem"><a class="el" href="dir_dd40116cd1cfebdc77a7c7114b29912e.html">include</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">converter.hh</div>  </div>
</div><!--header-->
<div class="contents">
<a href="converter_8hh.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#include &lt;iostream&gt;</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &lt;iomanip&gt;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &lt;sstream&gt;</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &lt;algorithm&gt;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;cstdint&gt;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;cctype&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;climits&gt;</span> <span class="comment">// LONG_MAX, LLONG_MAX</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;ctime&gt;</span>   <span class="comment">// time_t, struct tm, difftime, time, mktime</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="classconverter.html">   31</a></span>&#160;<span class="keyword">class </span><a class="code" href="classconverter.html">converter</a> {</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    </div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="classconverter.html#af294a9024411389f2285aa30c9de361b">   36</a></span>&#160;  <span class="keyword">static</span> <a class="code" href="classconverter.html">converter</a> * <a class="code" href="classconverter.html#af294a9024411389f2285aa30c9de361b">instance</a>;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    </div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="classconverter.html#a739bb1c56d40ec92d168670fa96743eb">   41</a></span>&#160;  <a class="code" href="classconverter.html#a739bb1c56d40ec92d168670fa96743eb">converter</a>() {};</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="classconverter.html#ad8feb2580c06b85cc60f643cc36c47ab">   45</a></span>&#160;  <a class="code" href="classconverter.html#ad8feb2580c06b85cc60f643cc36c47ab">~converter</a>() {</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    <span class="keywordflow">if</span> (instance != NULL) {</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;      <span class="keyword">delete</span> <a class="code" href="classconverter.html#af294a9024411389f2285aa30c9de361b">instance</a>;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;      instance = NULL;</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    }</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;  };</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    </div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="keyword">public</span>: </div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classconverter.html#a56c21cb4a88e59b62f5c5218292ee4dd">   56</a></span>&#160;  <span class="keyword">inline</span> <span class="keyword">static</span> <a class="code" href="classconverter.html">converter</a> &amp; <a class="code" href="classconverter.html#a56c21cb4a88e59b62f5c5218292ee4dd">get_instance</a>() {</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    <span class="keywordflow">if</span> (instance == NULL) instance = <span class="keyword">new</span> <a class="code" href="classconverter.html#a739bb1c56d40ec92d168670fa96743eb">converter</a>();</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    <span class="keywordflow">return</span> *<a class="code" href="classconverter.html#af294a9024411389f2285aa30c9de361b">instance</a>;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;  };</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    </div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classconverter.html#aa518cf32c19cc926b8ee90698cc7204d">   66</a></span>&#160;  <span class="keyword">typedef</span> <span class="keyword">enum</span> {</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classconverter.html#aa518cf32c19cc926b8ee90698cc7204da47781e035935caaf02b36ff3c628af50">   67</a></span>&#160;    <a class="code" href="classconverter.html#aa518cf32c19cc926b8ee90698cc7204da47781e035935caaf02b36ff3c628af50">big_endian</a>,</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="classconverter.html#aa518cf32c19cc926b8ee90698cc7204da13bd2f97bd830fff1f8d7be5d83af790">   68</a></span>&#160;    <a class="code" href="classconverter.html#aa518cf32c19cc926b8ee90698cc7204da13bd2f97bd830fff1f8d7be5d83af790">little_endian</a></div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;  } <a class="code" href="classconverter.html#aa518cf32c19cc926b8ee90698cc7204d">endian_t</a>;</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="classconverter.html#ae52e310f4753ce264c20a3cade392043">   78</a></span>&#160;  <span class="keyword">inline</span> uint8_t <a class="code" href="classconverter.html#ae52e310f4753ce264c20a3cade392043">bcd_to_bin</a>(<span class="keyword">const</span> uint8_t p_value) {</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    <span class="keywordflow">return</span> ((p_value / 16 * 10) + (p_value % 16));</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;  };</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classconverter.html#ac2c73ebb83f862f564ef6603860c8f76">   88</a></span>&#160;  <span class="keyword">inline</span> uint8_t <a class="code" href="classconverter.html#ac2c73ebb83f862f564ef6603860c8f76">bin_to_bcd</a>(<span class="keyword">const</span> uint8_t p_value) {</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    <span class="keywordflow">return</span> ((p_value / 10 * 16) + (p_value % 10));</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;  };</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    </div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;  uint16_t <a class="code" href="classconverter.html#a6489df7d385befd5e94470a6936aef7e">swap</a>(<span class="keyword">const</span> uint16_t p_value);</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="classconverter.html#a08eae42094add76922b5bf02c17d7655">   99</a></span>&#160;  <span class="keyword">inline</span> int16_t <a class="code" href="classconverter.html#a08eae42094add76922b5bf02c17d7655">swap</a>(<span class="keyword">const</span> int16_t p_value) {</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">short</span><span class="keyword">&gt;</span>(<a class="code" href="classconverter.html#a6489df7d385befd5e94470a6936aef7e">swap</a>(static_cast&lt;uint16_t&gt;(p_value)));</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;  };</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;  uint32_t <a class="code" href="classconverter.html#a6489df7d385befd5e94470a6936aef7e">swap</a>(<span class="keyword">const</span> uint32_t p_value);</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classconverter.html#affbbf0de3c626b6a03dc05829720670e">  108</a></span>&#160;  <span class="keyword">inline</span> int32_t <a class="code" href="classconverter.html#affbbf0de3c626b6a03dc05829720670e">swap</a>(<span class="keyword">const</span> int32_t p_value) {</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(<a class="code" href="classconverter.html#a6489df7d385befd5e94470a6936aef7e">swap</a>(static_cast&lt;uint32_t&gt;(p_value)));</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;  };</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    </div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;  std::string <a class="code" href="classconverter.html#a2d22ad75dc10035c8a62d90434a3c9c2">string_to_hexa</a>(<span class="keyword">const</span> std::string &amp; p_value);</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;  std::string <a class="code" href="classconverter.html#a539d467afb9307a4f0f443cddc2e2978">bytes_to_hexa</a>(<span class="keyword">const</span> std::vector&lt;uint8_t&gt; &amp; p_value);</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;  std::vector&lt;uint8_t&gt; <a class="code" href="classconverter.html#ac1b192366ded6e5b18d1367e66e84503">hexa_to_bytes</a>(<span class="keyword">const</span> std::string &amp; p_value);</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    </div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;  std::string <a class="code" href="classconverter.html#a3aae49b03d9233a16af74b4f25ac7fe0">time_to_string</a>(<span class="keyword">const</span> time_t p_time);</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;  std::string <a class="code" href="classconverter.html#a3aae49b03d9233a16af74b4f25ac7fe0">time_to_string</a>(<span class="keyword">const</span> <span class="keyword">struct</span> tm &amp; p_time);</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    </div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="classconverter.html#afbb1f8e5e6f01bec212e2c6ea2517c90">  157</a></span>&#160;  <span class="keyword">inline</span> std::vector&lt;uint8_t&gt; <a class="code" href="classconverter.html#afbb1f8e5e6f01bec212e2c6ea2517c90">short_to_bytes</a>(<span class="keyword">const</span> int16_t p_value, <span class="keyword">const</span> endian_t p_endianess = <a class="code" href="classconverter.html#aa518cf32c19cc926b8ee90698cc7204da47781e035935caaf02b36ff3c628af50">big_endian</a>)<span class="keyword"> const </span>{</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    std::vector&lt;uint8_t&gt; result(<span class="keyword">sizeof</span>(<span class="keywordtype">short</span>), 0x00);</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = <span class="keyword">sizeof</span>(<span class="keywordtype">short</span>) - 1; i &gt;= 0; i--) {</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;      <span class="keywordtype">int</span> offset = (<span class="keyword">sizeof</span>(short) - 1 - i) * 8;</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;      result[i] = <span class="keyword">static_cast&lt;</span>uint8_t<span class="keyword">&gt;</span>((p_value &gt;&gt; offset) &amp; 0xFF);</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;    } <span class="comment">// End of &#39;for&#39; statement</span></div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;  }; <span class="comment">// End of short_to_bytes</span></div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="classconverter.html#af24673225efdfa455ada0959577c7055">  172</a></span>&#160;  <span class="keyword">inline</span> int16_t <a class="code" href="classconverter.html#af24673225efdfa455ada0959577c7055">bytes_to_short</a>(<span class="keyword">const</span> std::vector&lt;uint8_t&gt; &amp; p_value, <span class="keyword">const</span> endian_t p_endianess = <a class="code" href="classconverter.html#aa518cf32c19cc926b8ee90698cc7204da47781e035935caaf02b36ff3c628af50">big_endian</a>)<span class="keyword"> const </span>{</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;    <span class="comment">// Sanity check</span></div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;    <span class="keywordflow">if</span> (p_value.size() &gt; <span class="keyword">sizeof</span>(short)) {</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;      <span class="keywordflow">return</span> SHRT_MAX;</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;    }</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    int16_t value = 0;</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; p_value.size(); i++) {</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;      value = (value &lt;&lt; 8) + (p_value[i] &amp; 0xff);</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;    } <span class="comment">// End of &#39;for&#39; statement</span></div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;    <span class="keywordflow">return</span> value;</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;  }; <span class="comment">// End of bytes_to_short</span></div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;    </div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="classconverter.html#af53ddf85a499a1b65b750924224ec3e5">  190</a></span>&#160;  <span class="keyword">inline</span> std::vector&lt;uint8_t&gt; <a class="code" href="classconverter.html#af53ddf85a499a1b65b750924224ec3e5">int_to_bytes</a>(<span class="keyword">const</span> int32_t p_value, <span class="keyword">const</span> endian_t p_endianess = <a class="code" href="classconverter.html#aa518cf32c19cc926b8ee90698cc7204da47781e035935caaf02b36ff3c628af50">big_endian</a>)<span class="keyword"> const </span>{</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    <span class="comment">/*uint8_t bytes[sizeof(p_value)];</span></div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;<span class="comment">      std::copy(</span></div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;<span class="comment">      static_cast&lt;const uint8_t *&gt;(static_cast&lt;const void *&gt;(&amp;p_value)),</span></div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;<span class="comment">      static_cast&lt;const uint8_t *&gt;(static_cast&lt;const void *&gt;(&amp;p_value)) + sizeof(p_value),</span></div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;<span class="comment">      bytes</span></div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;<span class="comment">      );</span></div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;<span class="comment">      std::vector&lt;uint8_t&gt; result(bytes, bytes + sizeof(bytes) / sizeof(uint8_t));*/</span></div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;    std::vector&lt;uint8_t&gt; result(<span class="keyword">sizeof</span>(<span class="keywordtype">int</span>), 0x00);</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = <span class="keyword">sizeof</span>(<span class="keywordtype">int</span>) - 1; i &gt;= 0; i--) {</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;      <span class="keywordtype">int</span> offset = (<span class="keyword">sizeof</span>(int) - 1 - i) * 8;</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;      result[i] = <span class="keyword">static_cast&lt;</span>uint8_t<span class="keyword">&gt;</span>((p_value &gt;&gt; offset) &amp; 0xFF);</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;    } <span class="comment">// End of &#39;for&#39; statement</span></div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;    <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;  }; <span class="comment">// End of int_to_bytes</span></div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="classconverter.html#a993815d128442d6fbb8cd5e79305fced">  212</a></span>&#160;  <span class="keyword">inline</span> int32_t <a class="code" href="classconverter.html#a993815d128442d6fbb8cd5e79305fced">bytes_to_int</a>(<span class="keyword">const</span> std::vector&lt;uint8_t&gt; &amp; p_value, <span class="keyword">const</span> endian_t p_endianess = <a class="code" href="classconverter.html#aa518cf32c19cc926b8ee90698cc7204da47781e035935caaf02b36ff3c628af50">big_endian</a>)<span class="keyword"> const </span>{</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;    <span class="comment">// Sanity check</span></div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;    <span class="keywordflow">if</span> (p_value.size() &gt; <span class="keyword">sizeof</span>(int)) {</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;      <span class="keywordflow">return</span> INT_MAX;</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;    }</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;    int32_t value = 0;</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; p_value.size(); i++) {</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;      value = (value &lt;&lt; 8) + (p_value[i] &amp; 0xff);</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;    } <span class="comment">// End of &#39;for&#39; statement</span></div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;    <span class="keywordflow">return</span> value;</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;    <span class="comment">//      return *((int *)(&amp;p_value[0]));</span></div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;  }; <span class="comment">// End of bytes_to_int</span></div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;    </div><div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="classconverter.html#a87d7244da93a89fdf14f872966f887e4">  231</a></span>&#160;  <span class="keyword">inline</span> std::vector&lt;uint8_t&gt; <a class="code" href="classconverter.html#a87d7244da93a89fdf14f872966f887e4">long_to_bytes</a>(<span class="keyword">const</span> int64_t p_value, <span class="keyword">const</span> endian_t p_endianess = <a class="code" href="classconverter.html#aa518cf32c19cc926b8ee90698cc7204da47781e035935caaf02b36ff3c628af50">big_endian</a>)<span class="keyword"> const </span>{</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    <span class="comment">/*uint8_t bytes[sizeof(p_value)];</span></div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;<span class="comment">      std::copy(</span></div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;<span class="comment">      static_cast&lt;const uint8_t *&gt;(static_cast&lt;const void *&gt;(&amp;p_value)),</span></div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;<span class="comment">      static_cast&lt;const uint8_t *&gt;(static_cast&lt;const void *&gt;(&amp;p_value)) + sizeof(p_value),</span></div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;<span class="comment">      bytes</span></div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;<span class="comment">      );</span></div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;<span class="comment">      std::vector&lt;uint8_t&gt; result(bytes, bytes + sizeof(bytes) / sizeof(uint8_t));*/</span></div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;    std::vector&lt;uint8_t&gt; result(<span class="keyword">sizeof</span>(int64_t), 0x00);</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = <span class="keyword">sizeof</span>(int64_t) - 1; i &gt;= 0; i--) {</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;      <span class="keywordtype">int</span> offset = (<span class="keyword">sizeof</span>(int64_t) - 1 - i) * 8;</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;      result[i] = <span class="keyword">static_cast&lt;</span>uint8_t<span class="keyword">&gt;</span>((p_value &gt;&gt; offset) &amp; 0xFF);</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;    } <span class="comment">// End of &#39;for&#39; statement</span></div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;    <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;  }; <span class="comment">// End of long_to_bytes</span></div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="classconverter.html#afcd6048644ffa8b7b6c20e78c1c6970e">  253</a></span>&#160;  <span class="keyword">inline</span> int64_t <a class="code" href="classconverter.html#afcd6048644ffa8b7b6c20e78c1c6970e">bytes_to_long</a>(<span class="keyword">const</span> std::vector&lt;uint8_t&gt; &amp; p_value, <span class="keyword">const</span> endian_t p_endianess = <a class="code" href="classconverter.html#aa518cf32c19cc926b8ee90698cc7204da47781e035935caaf02b36ff3c628af50">big_endian</a>)<span class="keyword"> const </span>{</div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;    <span class="comment">// Sanity check</span></div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;    <span class="keywordflow">if</span> (p_value.size() &gt; <span class="keyword">sizeof</span>(int64_t)) {</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;      <span class="keywordflow">return</span> LLONG_MAX;</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;    }</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;    int64_t value = 0;</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; p_value.size(); i++) {</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;      value = (value &lt;&lt; 8) + (p_value[i] &amp; 0xff);</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;    } <span class="comment">// End of &#39;for&#39; statement</span></div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;    <span class="keywordflow">return</span> value;</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;    <span class="comment">//      return *((long *)(&amp;p_value[0]));</span></div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;  }; <span class="comment">// End of bytes_to_long</span></div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;    </div><div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="classconverter.html#abdc4c101323629c4bc810ad65c9ad40c">  271</a></span>&#160;  <span class="keyword">inline</span> std::vector&lt;uint8_t&gt; <a class="code" href="classconverter.html#abdc4c101323629c4bc810ad65c9ad40c">float_to_bytes</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> p_value)<span class="keyword"> const </span>{</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;    uint8_t bytes[<span class="keyword">sizeof</span>(p_value)];</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;    std::copy(</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;              static_cast&lt;const uint8_t *&gt;(static_cast&lt;const void *&gt;(&amp;p_value)),</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;              static_cast&lt;const uint8_t *&gt;(static_cast&lt;const void *&gt;(&amp;p_value)) + <span class="keyword">sizeof</span>(p_value),</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;              bytes</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;              );</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;    std::vector&lt;uint8_t&gt; result(bytes, bytes + <span class="keyword">sizeof</span>(bytes) / <span class="keyword">sizeof</span>(uint8_t));</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;    <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;  }; <span class="comment">// End of float_to_long</span></div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"><a class="line" href="classconverter.html#a493c142dc7e56407a35141da26123cfd">  287</a></span>&#160;  <span class="keyword">inline</span> <span class="keywordtype">float</span> <a class="code" href="classconverter.html#a493c142dc7e56407a35141da26123cfd">bytes_to_float</a>(<span class="keyword">const</span> std::vector&lt;uint8_t&gt; &amp; p_value)<span class="keyword"> const </span>{</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;    <span class="keywordflow">return</span> *((<span class="keywordtype">float</span> *)(&amp;p_value[0]));</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;  }; <span class="comment">// End of bytes_to_float</span></div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;    </div><div class="line"><a name="l00296"></a><span class="lineno"><a class="line" href="classconverter.html#a5d313f1437e0db596013e5b3b9bbddbc">  296</a></span>&#160;  <span class="keyword">inline</span> std::vector&lt;uint8_t&gt; <a class="code" href="classconverter.html#a5d313f1437e0db596013e5b3b9bbddbc">string_to_bytes</a>(<span class="keyword">const</span> std::string &amp; p_value)<span class="keyword"> const </span>{</div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;    <span class="keywordflow">return</span> std::vector&lt;uint8_t&gt;(p_value.begin(), p_value.end());</div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;  }; <span class="comment">// End of string_to_bytes</span></div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;    </div><div class="line"><a name="l00305"></a><span class="lineno"><a class="line" href="classconverter.html#ace968ce39b5b708bbad147f16464c66e">  305</a></span>&#160;  <span class="keyword">inline</span> std::string <a class="code" href="classconverter.html#ace968ce39b5b708bbad147f16464c66e">bytes_to_string</a>(<span class="keyword">const</span> std::vector&lt;uint8_t&gt; &amp; p_value)<span class="keyword"> const </span>{</div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;    <span class="keywordflow">return</span> std::string(p_value.begin(), p_value.end());</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;  }; <span class="comment">// End of bytes_to_string</span></div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;    </div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="classconverter.html#a355c9f1f4dfa5641fb11bc954d427852">  315</a></span>&#160;  <span class="keyword">inline</span> int32_t <a class="code" href="classconverter.html#a355c9f1f4dfa5641fb11bc954d427852">string_to_int</a>(<span class="keyword">const</span> std::string &amp; p_value)<span class="keyword"> const </span>{</div><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;    <span class="keywordflow">return</span> std::stoi(p_value);</div><div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;    <span class="comment">//return atoi(p_value.c_str());</span></div><div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;  }; <span class="comment">// End of string_to_int</span></div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;</div><div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="classconverter.html#a78d59802a264828fbad4149f632c26e3">  325</a></span>&#160;  <span class="keyword">inline</span> std::string <a class="code" href="classconverter.html#a78d59802a264828fbad4149f632c26e3">int_to_string</a>(<span class="keyword">const</span> int32_t &amp; p_value)<span class="keyword"> const </span>{</div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;    std::ostringstream ss;</div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;    ss &lt;&lt; p_value;</div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;    <span class="keywordflow">return</span> ss.str();</div><div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;  }; <span class="comment">// End of string_to_bytes</span></div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;</div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;        </div><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;  std::string <a class="code" href="classconverter.html#abb7aba36078c8129837870f35038f4e0">trim</a>(<span class="keyword">const</span> std::string&amp; p_value, <span class="keyword">const</span> std::string&amp; p_trim_chars = <span class="stringliteral">&quot; \t&quot;</span>);</div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;    </div><div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;  std::vector&lt;std::string&gt; <a class="code" href="classconverter.html#a9bcc28522da799765548558e6a1dadde">split_arguments_line</a>(<span class="keyword">const</span> std::string &amp; p_value);</div><div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;                  </div><div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;}; <span class="comment">// End of class converter</span></div><div class="ttc" id="classconverter_html_a993815d128442d6fbb8cd5e79305fced"><div class="ttname"><a href="classconverter.html#a993815d128442d6fbb8cd5e79305fced">converter::bytes_to_int</a></div><div class="ttdeci">int32_t bytes_to_int(const std::vector&lt; uint8_t &gt; &amp;p_value, const endian_t p_endianess=big_endian) const</div><div class="ttdoc">Convert a bytes array into a 32-bits integer (int32_t) </div><div class="ttdef"><b>Definition:</b> converter.hh:212</div></div>
<div class="ttc" id="classconverter_html_ae52e310f4753ce264c20a3cade392043"><div class="ttname"><a href="classconverter.html#ae52e310f4753ce264c20a3cade392043">converter::bcd_to_bin</a></div><div class="ttdeci">uint8_t bcd_to_bin(const uint8_t p_value)</div><div class="ttdoc">Convert a Binary Coded Decimal value into a binary value. </div><div class="ttdef"><b>Definition:</b> converter.hh:78</div></div>
<div class="ttc" id="classconverter_html_a355c9f1f4dfa5641fb11bc954d427852"><div class="ttname"><a href="classconverter.html#a355c9f1f4dfa5641fb11bc954d427852">converter::string_to_int</a></div><div class="ttdeci">int32_t string_to_int(const std::string &amp;p_value) const</div><div class="ttdoc">Convert a string into an integer. </div><div class="ttdef"><b>Definition:</b> converter.hh:315</div></div>
<div class="ttc" id="classconverter_html_a08eae42094add76922b5bf02c17d7655"><div class="ttname"><a href="classconverter.html#a08eae42094add76922b5bf02c17d7655">converter::swap</a></div><div class="ttdeci">int16_t swap(const int16_t p_value)</div><div class="ttdef"><b>Definition:</b> converter.hh:99</div></div>
<div class="ttc" id="classconverter_html_aa518cf32c19cc926b8ee90698cc7204d"><div class="ttname"><a href="classconverter.html#aa518cf32c19cc926b8ee90698cc7204d">converter::endian_t</a></div><div class="ttdeci">endian_t</div><div class="ttdoc">Endianess style. </div><div class="ttdef"><b>Definition:</b> converter.hh:66</div></div>
<div class="ttc" id="classconverter_html_aa518cf32c19cc926b8ee90698cc7204da47781e035935caaf02b36ff3c628af50"><div class="ttname"><a href="classconverter.html#aa518cf32c19cc926b8ee90698cc7204da47781e035935caaf02b36ff3c628af50">converter::big_endian</a></div><div class="ttdef"><b>Definition:</b> converter.hh:67</div></div>
<div class="ttc" id="classconverter_html_a9bcc28522da799765548558e6a1dadde"><div class="ttname"><a href="classconverter.html#a9bcc28522da799765548558e6a1dadde">converter::split_arguments_line</a></div><div class="ttdeci">std::vector&lt; std::string &gt; split_arguments_line(const std::string &amp;p_value)</div><div class="ttdoc">Convert the provided string into a list of arguments. </div><div class="ttdef"><b>Definition:</b> converter.cc:115</div></div>
<div class="ttc" id="classconverter_html_abb7aba36078c8129837870f35038f4e0"><div class="ttname"><a href="classconverter.html#abb7aba36078c8129837870f35038f4e0">converter::trim</a></div><div class="ttdeci">std::string trim(const std::string &amp;p_value, const std::string &amp;p_trim_chars=&quot; \)</div><div class="ttdoc">Returns a copy of the string, with leading and trailing special characters omitted. </div><div class="ttdef"><b>Definition:</b> converter.cc:104</div></div>
<div class="ttc" id="classconverter_html_ac2c73ebb83f862f564ef6603860c8f76"><div class="ttname"><a href="classconverter.html#ac2c73ebb83f862f564ef6603860c8f76">converter::bin_to_bcd</a></div><div class="ttdeci">uint8_t bin_to_bcd(const uint8_t p_value)</div><div class="ttdoc">Convert a binary value into a Binary Coded Decimal value. </div><div class="ttdef"><b>Definition:</b> converter.hh:88</div></div>
<div class="ttc" id="classconverter_html_ad8feb2580c06b85cc60f643cc36c47ab"><div class="ttname"><a href="classconverter.html#ad8feb2580c06b85cc60f643cc36c47ab">converter::~converter</a></div><div class="ttdeci">~converter()</div><div class="ttdoc">Default private dtor. </div><div class="ttdef"><b>Definition:</b> converter.hh:45</div></div>
<div class="ttc" id="classconverter_html_af53ddf85a499a1b65b750924224ec3e5"><div class="ttname"><a href="classconverter.html#af53ddf85a499a1b65b750924224ec3e5">converter::int_to_bytes</a></div><div class="ttdeci">std::vector&lt; uint8_t &gt; int_to_bytes(const int32_t p_value, const endian_t p_endianess=big_endian) const</div><div class="ttdoc">Convert a 32-bits integer (int32_t) into a bytes array. </div><div class="ttdef"><b>Definition:</b> converter.hh:190</div></div>
<div class="ttc" id="classconverter_html_a739bb1c56d40ec92d168670fa96743eb"><div class="ttname"><a href="classconverter.html#a739bb1c56d40ec92d168670fa96743eb">converter::converter</a></div><div class="ttdeci">converter()</div><div class="ttdoc">Default private ctor. </div><div class="ttdef"><b>Definition:</b> converter.hh:41</div></div>
<div class="ttc" id="classconverter_html_a3aae49b03d9233a16af74b4f25ac7fe0"><div class="ttname"><a href="classconverter.html#a3aae49b03d9233a16af74b4f25ac7fe0">converter::time_to_string</a></div><div class="ttdeci">std::string time_to_string(const time_t p_time)</div><div class="ttdoc">Convert a time in time_t format into a string formated according to RFC 822, 1036, 1123, 2822. </div><div class="ttdef"><b>Definition:</b> converter.cc:92</div></div>
<div class="ttc" id="classconverter_html_ac1b192366ded6e5b18d1367e66e84503"><div class="ttname"><a href="classconverter.html#ac1b192366ded6e5b18d1367e66e84503">converter::hexa_to_bytes</a></div><div class="ttdeci">std::vector&lt; uint8_t &gt; hexa_to_bytes(const std::string &amp;p_value)</div><div class="ttdoc">Convert an hexadecimal string into a bytes array. </div><div class="ttdef"><b>Definition:</b> converter.cc:54</div></div>
<div class="ttc" id="classconverter_html_af294a9024411389f2285aa30c9de361b"><div class="ttname"><a href="classconverter.html#af294a9024411389f2285aa30c9de361b">converter::instance</a></div><div class="ttdeci">static converter * instance</div><div class="ttdoc">Unique static object reference of this class. </div><div class="ttdef"><b>Definition:</b> converter.hh:36</div></div>
<div class="ttc" id="classconverter_html_a5d313f1437e0db596013e5b3b9bbddbc"><div class="ttname"><a href="classconverter.html#a5d313f1437e0db596013e5b3b9bbddbc">converter::string_to_bytes</a></div><div class="ttdeci">std::vector&lt; uint8_t &gt; string_to_bytes(const std::string &amp;p_value) const</div><div class="ttdoc">Convert a string into a bytes array. </div><div class="ttdef"><b>Definition:</b> converter.hh:296</div></div>
<div class="ttc" id="classconverter_html_ace968ce39b5b708bbad147f16464c66e"><div class="ttname"><a href="classconverter.html#ace968ce39b5b708bbad147f16464c66e">converter::bytes_to_string</a></div><div class="ttdeci">std::string bytes_to_string(const std::vector&lt; uint8_t &gt; &amp;p_value) const</div><div class="ttdoc">Convert a bytes array into a string. </div><div class="ttdef"><b>Definition:</b> converter.hh:305</div></div>
<div class="ttc" id="classconverter_html_aa518cf32c19cc926b8ee90698cc7204da13bd2f97bd830fff1f8d7be5d83af790"><div class="ttname"><a href="classconverter.html#aa518cf32c19cc926b8ee90698cc7204da13bd2f97bd830fff1f8d7be5d83af790">converter::little_endian</a></div><div class="ttdef"><b>Definition:</b> converter.hh:68</div></div>
<div class="ttc" id="classconverter_html_af24673225efdfa455ada0959577c7055"><div class="ttname"><a href="classconverter.html#af24673225efdfa455ada0959577c7055">converter::bytes_to_short</a></div><div class="ttdeci">int16_t bytes_to_short(const std::vector&lt; uint8_t &gt; &amp;p_value, const endian_t p_endianess=big_endian) const</div><div class="ttdoc">Convert a bytes array into a 16-bits integer (int16_t) </div><div class="ttdef"><b>Definition:</b> converter.hh:172</div></div>
<div class="ttc" id="classconverter_html_abdc4c101323629c4bc810ad65c9ad40c"><div class="ttname"><a href="classconverter.html#abdc4c101323629c4bc810ad65c9ad40c">converter::float_to_bytes</a></div><div class="ttdeci">std::vector&lt; uint8_t &gt; float_to_bytes(const float p_value) const</div><div class="ttdoc">Convert a float value into a bytes array. </div><div class="ttdef"><b>Definition:</b> converter.hh:271</div></div>
<div class="ttc" id="classconverter_html_afcd6048644ffa8b7b6c20e78c1c6970e"><div class="ttname"><a href="classconverter.html#afcd6048644ffa8b7b6c20e78c1c6970e">converter::bytes_to_long</a></div><div class="ttdeci">int64_t bytes_to_long(const std::vector&lt; uint8_t &gt; &amp;p_value, const endian_t p_endianess=big_endian) const</div><div class="ttdoc">Convert a bytes array into a 64-bits integer (int64_t) </div><div class="ttdef"><b>Definition:</b> converter.hh:253</div></div>
<div class="ttc" id="classconverter_html_a493c142dc7e56407a35141da26123cfd"><div class="ttname"><a href="classconverter.html#a493c142dc7e56407a35141da26123cfd">converter::bytes_to_float</a></div><div class="ttdeci">float bytes_to_float(const std::vector&lt; uint8_t &gt; &amp;p_value) const</div><div class="ttdoc">Convert a bytes array into a float. </div><div class="ttdef"><b>Definition:</b> converter.hh:287</div></div>
<div class="ttc" id="classconverter_html_a56c21cb4a88e59b62f5c5218292ee4dd"><div class="ttname"><a href="classconverter.html#a56c21cb4a88e59b62f5c5218292ee4dd">converter::get_instance</a></div><div class="ttdeci">static converter &amp; get_instance()</div><div class="ttdoc">Public accessor to the single object reference. </div><div class="ttdef"><b>Definition:</b> converter.hh:56</div></div>
<div class="ttc" id="classconverter_html_affbbf0de3c626b6a03dc05829720670e"><div class="ttname"><a href="classconverter.html#affbbf0de3c626b6a03dc05829720670e">converter::swap</a></div><div class="ttdeci">int32_t swap(const int32_t p_value)</div><div class="ttdef"><b>Definition:</b> converter.hh:108</div></div>
<div class="ttc" id="classconverter_html_a6489df7d385befd5e94470a6936aef7e"><div class="ttname"><a href="classconverter.html#a6489df7d385befd5e94470a6936aef7e">converter::swap</a></div><div class="ttdeci">uint16_t swap(const uint16_t p_value)</div><div class="ttdoc">Swap two bytes length value (e.g. 0xCAFE becomes 0xFECA) </div><div class="ttdef"><b>Definition:</b> converter.cc:5</div></div>
<div class="ttc" id="classconverter_html_a539d467afb9307a4f0f443cddc2e2978"><div class="ttname"><a href="classconverter.html#a539d467afb9307a4f0f443cddc2e2978">converter::bytes_to_hexa</a></div><div class="ttdeci">std::string bytes_to_hexa(const std::vector&lt; uint8_t &gt; &amp;p_value)</div><div class="ttdoc">Convert a bytes array int32_t an hexadecimal string. </div><div class="ttdef"><b>Definition:</b> converter.cc:39</div></div>
<div class="ttc" id="classconverter_html_a87d7244da93a89fdf14f872966f887e4"><div class="ttname"><a href="classconverter.html#a87d7244da93a89fdf14f872966f887e4">converter::long_to_bytes</a></div><div class="ttdeci">std::vector&lt; uint8_t &gt; long_to_bytes(const int64_t p_value, const endian_t p_endianess=big_endian) const</div><div class="ttdoc">Convert a 64-bits integer (int64_t) into a bytes array. </div><div class="ttdef"><b>Definition:</b> converter.hh:231</div></div>
<div class="ttc" id="classconverter_html"><div class="ttname"><a href="classconverter.html">converter</a></div><div class="ttdoc">This class provide a set of methods for types conversions. </div><div class="ttdef"><b>Definition:</b> converter.hh:31</div></div>
<div class="ttc" id="classconverter_html_a78d59802a264828fbad4149f632c26e3"><div class="ttname"><a href="classconverter.html#a78d59802a264828fbad4149f632c26e3">converter::int_to_string</a></div><div class="ttdeci">std::string int_to_string(const int32_t &amp;p_value) const</div><div class="ttdoc">Convert an integer into a string. </div><div class="ttdef"><b>Definition:</b> converter.hh:325</div></div>
<div class="ttc" id="classconverter_html_afbb1f8e5e6f01bec212e2c6ea2517c90"><div class="ttname"><a href="classconverter.html#afbb1f8e5e6f01bec212e2c6ea2517c90">converter::short_to_bytes</a></div><div class="ttdeci">std::vector&lt; uint8_t &gt; short_to_bytes(const int16_t p_value, const endian_t p_endianess=big_endian) const</div><div class="ttdoc">Convert a 16-bits integer (int16_t) into a bytes array. </div><div class="ttdef"><b>Definition:</b> converter.hh:157</div></div>
<div class="ttc" id="classconverter_html_a2d22ad75dc10035c8a62d90434a3c9c2"><div class="ttname"><a href="classconverter.html#a2d22ad75dc10035c8a62d90434a3c9c2">converter::string_to_hexa</a></div><div class="ttdeci">std::string string_to_hexa(const std::string &amp;p_value)</div><div class="ttdoc">Convert a string into an hexadecimal string. </div><div class="ttdef"><b>Definition:</b> converter.cc:15</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 4 2018 14:16:23 for ETSI STF525 / Internal Testing test suite by &#160;<a href="http://www.doxygen.org/index.html">
garciay's avatar
garciay committed
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>