aboutsummaryrefslogtreecommitdiff
path: root/20.05/_gatord_mock_service_8cpp_source.xhtml
blob: 0f71936c718e71051f0272f9dbab276525e349ed (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
<!-- Copyright (c) 2020 ARM Limited. -->
<!--                                 -->
<!-- SPDX-License-Identifier: MIT    -->
<!--                                 -->
<!-- HTML header for doxygen 1.8.13-->
<!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="robots" content="NOINDEX, NOFOLLOW" />
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ArmNN: tests/profiling/gatordmock/GatordMockService.cpp 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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</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/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="stylesheet.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;">
  <img alt="ArmNN" src="Arm_NN_horizontal_blue.png" style="max-width: 10rem; margin-top: .5rem; margin-left 10px"/>
  <td style="padding-left: 0.5em;">
   <div id="projectname">
   &#160;<span id="projectnumber">20.05</span>
   </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>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('_gatord_mock_service_8cpp_source.xhtml','');});
</script>
<div id="doc-content">
<!-- 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">GatordMockService.cpp</div>  </div>
</div><!--header-->
<div class="contents">
<a href="_gatord_mock_service_8cpp.xhtml">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">// Copyright © 2019 Arm Ltd. All rights reserved.</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">// SPDX-License-Identifier: MIT</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_gatord_mock_service_8hpp.xhtml">GatordMockService.hpp</a>&quot;</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_command_handler_registry_8hpp.xhtml">CommandHandlerRegistry.hpp</a>&gt;</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_packet_version_resolver_8hpp.xhtml">PacketVersionResolver.hpp</a>&gt;</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_profiling_utils_8hpp.xhtml">ProfilingUtils.hpp</a>&gt;</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#include &lt;NetworkSockets.hpp&gt;</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;<a class="code" href="_assert_8hpp.xhtml">armnn/utility/Assert.hpp</a>&gt;</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &lt;cerrno&gt;</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &lt;iomanip&gt;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &lt;iostream&gt;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacearmnn_utils.xhtml">armnnUtils</a>;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacearmnn.xhtml">armnn</a></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;{</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="keyword">namespace </span>gatordmock</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;{</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a41eaa65cf4e7212f09b04d06c130cd83">   28</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a41eaa65cf4e7212f09b04d06c130cd83">GatordMockService::SendConnectionAck</a>()</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;{</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    <span class="keywordflow">if</span> (m_EchoPackets)</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    {</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;        std::cout &lt;&lt; <span class="stringliteral">&quot;Sending connection acknowledgement.&quot;</span> &lt;&lt; std::endl;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    }</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    <span class="comment">// The connection ack packet is an empty data packet with packetId == 1.</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    m_BasePipeServer.get()-&gt;SendPacket(0, 1, <span class="keyword">nullptr</span>, 0);</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;}</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a2b9de2e6eee97f258fe2d7c765206e8a">   38</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a2b9de2e6eee97f258fe2d7c765206e8a">GatordMockService::SendRequestCounterDir</a>()</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    <span class="keywordflow">if</span> (m_EchoPackets)</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    {</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;        std::cout &lt;&lt; <span class="stringliteral">&quot;Sending connection acknowledgement.&quot;</span> &lt;&lt; std::endl;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    }</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    <span class="comment">// The request counter directory packet is an empty data packet with packetId == 3.</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    m_BasePipeServer.get()-&gt;SendPacket(0, 3, <span class="keyword">nullptr</span>, 0);</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;}</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a3833c5c6bec750969b5050c031032637">   48</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a3833c5c6bec750969b5050c031032637">GatordMockService::SendActivateTimelinePacket</a>()</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;    <span class="keywordflow">if</span> (m_EchoPackets)</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;        std::cout &lt;&lt; <span class="stringliteral">&quot;Sending activate timeline packet.&quot;</span> &lt;&lt; std::endl;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    }</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    <span class="comment">// The activate timeline packet is an empty data packet with packetId == 6.</span></div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    m_BasePipeServer.get()-&gt;SendPacket(0, 6, <span class="keyword">nullptr</span>, 0);</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;}</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a0fa494c4df7426405e756b74656381ec">   58</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a0fa494c4df7426405e756b74656381ec">GatordMockService::SendDeactivateTimelinePacket</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;    <span class="keywordflow">if</span> (m_EchoPackets)</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    {</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;        std::cout &lt;&lt; <span class="stringliteral">&quot;Sending deactivate timeline packet.&quot;</span> &lt;&lt; std::endl;</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    }</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <span class="comment">// The deactivate timeline packet is an empty data packet with packetId == 7.</span></div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    m_BasePipeServer.get()-&gt;SendPacket(0, 7, <span class="keyword">nullptr</span>, 0);</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;}</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a5175305569ecb4e58004e977abeff61a">   68</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a5175305569ecb4e58004e977abeff61a">GatordMockService::LaunchReceivingThread</a>()</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;{</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    <span class="keywordflow">if</span> (m_EchoPackets)</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    {</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;        std::cout &lt;&lt; <span class="stringliteral">&quot;Launching receiving thread.&quot;</span> &lt;&lt; std::endl;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    }</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    <span class="comment">// At this point we want to make the socket non blocking.</span></div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    <span class="keywordflow">if</span> (!m_BasePipeServer.get()-&gt;SetNonBlocking())</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    {</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;        m_BasePipeServer.get()-&gt;Close();</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;        std::cerr &lt;&lt; <span class="stringliteral">&quot;Failed to set socket as non blocking: &quot;</span> &lt;&lt; strerror(errno) &lt;&lt; std::endl;</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">false</span>;</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;    m_ListeningThread = std::thread(&amp;GatordMockService::ReceiveLoop, <span class="keyword">this</span>);</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;}</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a93617d8640d5e93831d06a2ef3c86bef">   85</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a93617d8640d5e93831d06a2ef3c86bef">GatordMockService::WaitForReceivingThread</a>()</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;{</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    <span class="comment">// The receiving thread may already have died.</span></div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    <span class="keywordflow">if</span> (m_CloseReceivingThread != <span class="keyword">true</span>)</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    {</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;        m_CloseReceivingThread.store(<span class="keyword">true</span>);</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    }</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    <span class="comment">// Check that the receiving thread is running</span></div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    <span class="keywordflow">if</span> (m_ListeningThread.joinable())</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    {</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;        <span class="comment">// Wait for the receiving thread to complete operations</span></div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;        m_ListeningThread.join();</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    }</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    <span class="keywordflow">if</span>(m_EchoPackets)</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    {</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;        m_TimelineDecoder.<a class="code" href="classarmnn_1_1timelinedecoder_1_1_timeline_decoder.xhtml#a388f572c62279f839ee138a9afbdeeb5">print</a>();</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    }</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;}</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#ac07351dbc304681b2efd5df4958a6735">  105</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#ac07351dbc304681b2efd5df4958a6735">GatordMockService::WaitForStreamMetaData</a>()</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;{</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    <span class="keywordflow">return</span> m_BasePipeServer-&gt;WaitForStreamMetaData();</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;}</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#abaf2feb0e79566de18721659d896dae1">  110</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#abaf2feb0e79566de18721659d896dae1">GatordMockService::SendPeriodicCounterSelectionList</a>(uint32_t period, std::vector&lt;uint16_t&gt; counters)</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;{</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    <span class="comment">// The packet body consists of a UINT32 representing the period following by zero or more</span></div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    <span class="comment">// UINT16&#39;s representing counter UID&#39;s. If the list is empty it implies all counters are to</span></div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    <span class="comment">// be disabled.</span></div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    <span class="keywordflow">if</span> (m_EchoPackets)</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    {</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;        std::cout &lt;&lt; <span class="stringliteral">&quot;SendPeriodicCounterSelectionList: Period=&quot;</span> &lt;&lt; std::dec &lt;&lt; period &lt;&lt; <span class="stringliteral">&quot;uSec&quot;</span> &lt;&lt; std::endl;</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;        std::cout &lt;&lt; <span class="stringliteral">&quot;List length=&quot;</span> &lt;&lt; counters.size() &lt;&lt; std::endl;</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    }</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    <span class="comment">// Start by calculating the length of the packet body in bytes. This will be at least 4.</span></div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    uint32_t dataLength = <span class="keyword">static_cast&lt;</span>uint32_t<span class="keyword">&gt;</span>(4 + (counters.size() * 2));</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    std::unique_ptr&lt;unsigned char[]&gt; uniqueData = std::make_unique&lt;unsigned char[]&gt;(dataLength);</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* data                         = <span class="keyword">reinterpret_cast&lt;</span><span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(uniqueData.get());</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    uint32_t offset = 0;</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    <a class="code" href="namespacearmnn_1_1profiling.xhtml#a3e638748a39d46e2943dfcef94dcb828">profiling::WriteUint32</a>(data, offset, period);</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    offset += 4;</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    <span class="keywordflow">for</span> (std::vector&lt;uint16_t&gt;::iterator it = counters.begin(); it != counters.end(); ++it)</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    {</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;        <a class="code" href="namespacearmnn_1_1profiling.xhtml#ae5ace88c65e65ab7cf5572613601a60d">profiling::WriteUint16</a>(data, offset, *it);</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;        offset += 2;</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    }</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    <span class="comment">// Send the packet.</span></div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    m_BasePipeServer.get()-&gt;SendPacket(0, 4, data, dataLength);</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    <span class="comment">// There will be an echo response packet sitting in the receive thread. PeriodicCounterSelectionResponseHandler</span></div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    <span class="comment">// should deal with it.</span></div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;}</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a18f77daf6b32e5bb456c2bc860140669">  142</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a18f77daf6b32e5bb456c2bc860140669">GatordMockService::WaitCommand</a>(uint32_t timeout)</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;{</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    <span class="comment">// Wait for a maximum of timeout microseconds or if the receive thread has closed.</span></div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    <span class="comment">// There is a certain level of rounding involved in this timing.</span></div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;    uint32_t iterations = timeout / 1000;</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    std::cout &lt;&lt; std::dec &lt;&lt; <span class="stringliteral">&quot;Wait command with timeout of &quot;</span> &lt;&lt; timeout &lt;&lt; <span class="stringliteral">&quot; iterations =  &quot;</span> &lt;&lt; iterations &lt;&lt; std::endl;</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    uint32_t count = 0;</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    <span class="keywordflow">while</span> ((this-&gt;<a class="code" href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a82bd11e044b4bc9c647fcaa9ce5b3e55">ReceiveThreadRunning</a>() &amp;&amp; (count &lt; iterations)))</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    {</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;        std::this_thread::sleep_for(std::chrono::microseconds(1000));</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;        ++count;</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    }</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    <span class="keywordflow">if</span> (m_EchoPackets)</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    {</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;        std::cout &lt;&lt; std::dec &lt;&lt; <span class="stringliteral">&quot;Wait command with timeout of &quot;</span> &lt;&lt; timeout &lt;&lt; <span class="stringliteral">&quot; microseconds completed. &quot;</span> &lt;&lt; std::endl;</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    }</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;}</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;<span class="keywordtype">void</span> GatordMockService::ReceiveLoop()</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;{</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;    m_CloseReceivingThread.store(<span class="keyword">false</span>);</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    <span class="keywordflow">while</span> (!m_CloseReceivingThread.load())</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    {</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;        <span class="keywordflow">try</span></div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;        {</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;            profiling::Packet packet = m_BasePipeServer.get()-&gt;WaitForPacket(500);</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;            <a class="code" href="classarmnn_1_1profiling_1_1_packet_version_resolver.xhtml">profiling::PacketVersionResolver</a> packetVersionResolver;</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;            <a class="code" href="classarmnn_1_1profiling_1_1_version.xhtml">profiling::Version</a> version =</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;                packetVersionResolver.<a class="code" href="classarmnn_1_1profiling_1_1_packet_version_resolver.xhtml#ac8ad466123304f923e64997ac096926a">ResolvePacketVersion</a>(packet.GetPacketFamily(), packet.GetPacketId());</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;            <a class="code" href="classarmnn_1_1profiling_1_1_command_handler_functor.xhtml">profiling::CommandHandlerFunctor</a>* commandHandlerFunctor = m_HandlerRegistry.<a class="code" href="classarmnn_1_1profiling_1_1_command_handler_registry.xhtml#ab421312295ae76edb4a540900d96103b">GetFunctor</a>(</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;                                                                        packet.GetPacketFamily(),</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;                                                                        packet.GetPacketId(),</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;                                                                        version.<a class="code" href="classarmnn_1_1profiling_1_1_version.xhtml#a0ab0d5a402c197d4093cbc5fdbf81214">GetEncodedValue</a>());</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;            <a class="code" href="_assert_8hpp.xhtml#a5698be69cbd5dfe6c28fcd9867e8cbed">ARMNN_ASSERT</a>(commandHandlerFunctor);</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;            commandHandlerFunctor-&gt;operator()(packet);</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;        }</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;        <span class="keywordflow">catch</span> (<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_timeout_exception.xhtml">armnn::TimeoutException</a>&amp;)</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;        {</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;            <span class="comment">// In this case we ignore timeouts and and keep trying to receive.</span></div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;        }</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;        <span class="keywordflow">catch</span> (<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.xhtml">armnn::InvalidArgumentException</a>&amp; e)</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;        {</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;            <span class="comment">// We couldn&#39;t find a functor to handle the packet?</span></div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;            std::cerr &lt;&lt; <span class="stringliteral">&quot;Packet received that could not be processed: &quot;</span> &lt;&lt; e.<a class="code" href="classarmnn_1_1_exception.xhtml#abf843cbb29dec939d0731e491bab6f70">what</a>() &lt;&lt; std::endl;</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;        }</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;        <span class="keywordflow">catch</span> (<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_runtime_exception.xhtml">armnn::RuntimeException</a>&amp; e)</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;        {</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;            <span class="comment">// A runtime exception occurred which means we must exit the loop.</span></div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;            std::cerr &lt;&lt; <span class="stringliteral">&quot;Receive thread closing: &quot;</span> &lt;&lt; e.<a class="code" href="classarmnn_1_1_exception.xhtml#abf843cbb29dec939d0731e491bab6f70">what</a>() &lt;&lt; std::endl;</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;            m_CloseReceivingThread.store(<span class="keyword">true</span>);</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;        }</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    }</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;}</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;}    <span class="comment">// namespace gatordmock</span></div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;}    <span class="comment">// namespace armnn</span></div><div class="ttc" id="_packet_version_resolver_8hpp_xhtml"><div class="ttname"><a href="_packet_version_resolver_8hpp.xhtml">PacketVersionResolver.hpp</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_version_xhtml_a0ab0d5a402c197d4093cbc5fdbf81214"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_version.xhtml#a0ab0d5a402c197d4093cbc5fdbf81214">armnn::profiling::Version::GetEncodedValue</a></div><div class="ttdeci">uint32_t GetEncodedValue()</div><div class="ttdef"><b>Definition:</b> <a href="_encode_version_8hpp_source.xhtml#l00045">EncodeVersion.hpp:45</a></div></div>
<div class="ttc" id="classarmnn_1_1timelinedecoder_1_1_timeline_decoder_xhtml_a388f572c62279f839ee138a9afbdeeb5"><div class="ttname"><a href="classarmnn_1_1timelinedecoder_1_1_timeline_decoder.xhtml#a388f572c62279f839ee138a9afbdeeb5">armnn::timelinedecoder::TimelineDecoder::print</a></div><div class="ttdeci">void print()</div><div class="ttdef"><b>Definition:</b> <a href="_timeline_decoder_8cpp_source.xhtml#l00152">TimelineDecoder.cpp:152</a></div></div>
<div class="ttc" id="namespacearmnn_1_1profiling_xhtml_ae5ace88c65e65ab7cf5572613601a60d"><div class="ttname"><a href="namespacearmnn_1_1profiling.xhtml#ae5ace88c65e65ab7cf5572613601a60d">armnn::profiling::WriteUint16</a></div><div class="ttdeci">void WriteUint16(const IPacketBufferPtr &amp;packetBuffer, unsigned int offset, uint16_t value)</div><div class="ttdef"><b>Definition:</b> <a href="_profiling_utils_8cpp_source.xhtml#l00119">ProfilingUtils.cpp:119</a></div></div>
<div class="ttc" id="namespacearmnn_1_1profiling_xhtml_a3e638748a39d46e2943dfcef94dcb828"><div class="ttname"><a href="namespacearmnn_1_1profiling.xhtml#a3e638748a39d46e2943dfcef94dcb828">armnn::profiling::WriteUint32</a></div><div class="ttdeci">void WriteUint32(const IPacketBufferPtr &amp;packetBuffer, unsigned int offset, uint32_t value)</div><div class="ttdef"><b>Definition:</b> <a href="_profiling_utils_8cpp_source.xhtml#l00112">ProfilingUtils.cpp:112</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_packet_version_resolver_xhtml_ac8ad466123304f923e64997ac096926a"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_packet_version_resolver.xhtml#ac8ad466123304f923e64997ac096926a">armnn::profiling::PacketVersionResolver::ResolvePacketVersion</a></div><div class="ttdeci">Version ResolvePacketVersion(uint32_t familyId, uint32_t packetId) const</div><div class="ttdef"><b>Definition:</b> <a href="_packet_version_resolver_8cpp_source.xhtml#l00055">PacketVersionResolver.cpp:55</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_packet_version_resolver_xhtml"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_packet_version_resolver.xhtml">armnn::profiling::PacketVersionResolver</a></div><div class="ttdef"><b>Definition:</b> <a href="_packet_version_resolver_8hpp_source.xhtml#l00039">PacketVersionResolver.hpp:39</a></div></div>
<div class="ttc" id="classarmnn_1_1_exception_xhtml_abf843cbb29dec939d0731e491bab6f70"><div class="ttname"><a href="classarmnn_1_1_exception.xhtml#abf843cbb29dec939d0731e491bab6f70">armnn::Exception::what</a></div><div class="ttdeci">virtual const char * what() const noexcept override</div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8cpp_source.xhtml#l00032">Exceptions.cpp:32</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_command_handler_registry_xhtml_ab421312295ae76edb4a540900d96103b"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_command_handler_registry.xhtml#ab421312295ae76edb4a540900d96103b">armnn::profiling::CommandHandlerRegistry::GetFunctor</a></div><div class="ttdeci">CommandHandlerFunctor * GetFunctor(uint32_t familyId, uint32_t packetId, uint32_t version) const</div><div class="ttdef"><b>Definition:</b> <a href="_command_handler_registry_8cpp_source.xhtml#l00036">CommandHandlerRegistry.cpp:36</a></div></div>
<div class="ttc" id="_gatord_mock_service_8hpp_xhtml"><div class="ttname"><a href="_gatord_mock_service_8hpp.xhtml">GatordMockService.hpp</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml"><div class="ttname"><a href="namespacearmnn.xhtml">armnn</a></div><div class="ttdoc">Copyright (c) 2020 ARM Limited. </div><div class="ttdef"><b>Definition:</b> <a href="00__introduction_8dox_source.xhtml#l00025">00_introduction.dox:25</a></div></div>
<div class="ttc" id="classarmnn_1_1gatordmock_1_1_gatord_mock_service_xhtml_a0fa494c4df7426405e756b74656381ec"><div class="ttname"><a href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a0fa494c4df7426405e756b74656381ec">armnn::gatordmock::GatordMockService::SendDeactivateTimelinePacket</a></div><div class="ttdeci">void SendDeactivateTimelinePacket()</div><div class="ttdoc">Send a deactivate timeline packet back to the client. </div><div class="ttdef"><b>Definition:</b> <a href="_gatord_mock_service_8cpp_source.xhtml#l00058">GatordMockService.cpp:58</a></div></div>
<div class="ttc" id="classarmnn_1_1gatordmock_1_1_gatord_mock_service_xhtml_a3833c5c6bec750969b5050c031032637"><div class="ttname"><a href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a3833c5c6bec750969b5050c031032637">armnn::gatordmock::GatordMockService::SendActivateTimelinePacket</a></div><div class="ttdeci">void SendActivateTimelinePacket()</div><div class="ttdoc">Send a activate timeline packet back to the client. </div><div class="ttdef"><b>Definition:</b> <a href="_gatord_mock_service_8cpp_source.xhtml#l00048">GatordMockService.cpp:48</a></div></div>
<div class="ttc" id="classarmnn_1_1_timeout_exception_xhtml"><div class="ttname"><a href="classarmnn_1_1_timeout_exception.xhtml">armnn::TimeoutException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00135">Exceptions.hpp:135</a></div></div>
<div class="ttc" id="classarmnn_1_1gatordmock_1_1_gatord_mock_service_xhtml_ac07351dbc304681b2efd5df4958a6735"><div class="ttname"><a href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#ac07351dbc304681b2efd5df4958a6735">armnn::gatordmock::GatordMockService::WaitForStreamMetaData</a></div><div class="ttdeci">bool WaitForStreamMetaData()</div><div class="ttdoc">Once the connection is open wait to receive the stream meta data packet from the client. </div><div class="ttdef"><b>Definition:</b> <a href="_gatord_mock_service_8cpp_source.xhtml#l00105">GatordMockService.cpp:105</a></div></div>
<div class="ttc" id="classarmnn_1_1gatordmock_1_1_gatord_mock_service_xhtml_a2b9de2e6eee97f258fe2d7c765206e8a"><div class="ttname"><a href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a2b9de2e6eee97f258fe2d7c765206e8a">armnn::gatordmock::GatordMockService::SendRequestCounterDir</a></div><div class="ttdeci">void SendRequestCounterDir()</div><div class="ttdoc">Send a request counter directory packet back to the client. </div><div class="ttdef"><b>Definition:</b> <a href="_gatord_mock_service_8cpp_source.xhtml#l00038">GatordMockService.cpp:38</a></div></div>
<div class="ttc" id="classarmnn_1_1gatordmock_1_1_gatord_mock_service_xhtml_a82bd11e044b4bc9c647fcaa9ce5b3e55"><div class="ttname"><a href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a82bd11e044b4bc9c647fcaa9ce5b3e55">armnn::gatordmock::GatordMockService::ReceiveThreadRunning</a></div><div class="ttdeci">bool ReceiveThreadRunning()</div><div class="ttdef"><b>Definition:</b> <a href="_gatord_mock_service_8hpp_source.xhtml#l00109">GatordMockService.hpp:109</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_version_xhtml"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_version.xhtml">armnn::profiling::Version</a></div><div class="ttdef"><b>Definition:</b> <a href="_encode_version_8hpp_source.xhtml#l00029">EncodeVersion.hpp:29</a></div></div>
<div class="ttc" id="_assert_8hpp_xhtml_a5698be69cbd5dfe6c28fcd9867e8cbed"><div class="ttname"><a href="_assert_8hpp.xhtml#a5698be69cbd5dfe6c28fcd9867e8cbed">ARMNN_ASSERT</a></div><div class="ttdeci">#define ARMNN_ASSERT(COND)</div><div class="ttdef"><b>Definition:</b> <a href="_assert_8hpp_source.xhtml#l00014">Assert.hpp:14</a></div></div>
<div class="ttc" id="classarmnn_1_1gatordmock_1_1_gatord_mock_service_xhtml_a5175305569ecb4e58004e977abeff61a"><div class="ttname"><a href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a5175305569ecb4e58004e977abeff61a">armnn::gatordmock::GatordMockService::LaunchReceivingThread</a></div><div class="ttdeci">bool LaunchReceivingThread()</div><div class="ttdoc">Start the thread that will receive all packets and print them nicely to stdout. </div><div class="ttdef"><b>Definition:</b> <a href="_gatord_mock_service_8cpp_source.xhtml#l00068">GatordMockService.cpp:68</a></div></div>
<div class="ttc" id="classarmnn_1_1_runtime_exception_xhtml"><div class="ttname"><a href="classarmnn_1_1_runtime_exception.xhtml">armnn::RuntimeException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00120">Exceptions.hpp:120</a></div></div>
<div class="ttc" id="classarmnn_1_1_invalid_argument_exception_xhtml"><div class="ttname"><a href="classarmnn_1_1_invalid_argument_exception.xhtml">armnn::InvalidArgumentException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00080">Exceptions.hpp:80</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_command_handler_functor_xhtml"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_command_handler_functor.xhtml">armnn::profiling::CommandHandlerFunctor</a></div><div class="ttdef"><b>Definition:</b> <a href="_command_handler_functor_8hpp_source.xhtml#l00020">CommandHandlerFunctor.hpp:20</a></div></div>
<div class="ttc" id="_assert_8hpp_xhtml"><div class="ttname"><a href="_assert_8hpp.xhtml">Assert.hpp</a></div></div>
<div class="ttc" id="classarmnn_1_1gatordmock_1_1_gatord_mock_service_xhtml_a18f77daf6b32e5bb456c2bc860140669"><div class="ttname"><a href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a18f77daf6b32e5bb456c2bc860140669">armnn::gatordmock::GatordMockService::WaitCommand</a></div><div class="ttdeci">void WaitCommand(uint32_t timeout)</div><div class="ttdoc">Execute the WAIT command from the comamnd file. </div><div class="ttdef"><b>Definition:</b> <a href="_gatord_mock_service_8cpp_source.xhtml#l00142">GatordMockService.cpp:142</a></div></div>
<div class="ttc" id="classarmnn_1_1gatordmock_1_1_gatord_mock_service_xhtml_abaf2feb0e79566de18721659d896dae1"><div class="ttname"><a href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#abaf2feb0e79566de18721659d896dae1">armnn::gatordmock::GatordMockService::SendPeriodicCounterSelectionList</a></div><div class="ttdeci">void SendPeriodicCounterSelectionList(uint32_t period, std::vector&lt; uint16_t &gt; counters)</div><div class="ttdoc">Send the counter list to ArmNN. </div><div class="ttdef"><b>Definition:</b> <a href="_gatord_mock_service_8cpp_source.xhtml#l00110">GatordMockService.cpp:110</a></div></div>
<div class="ttc" id="namespacearmnn_utils_xhtml"><div class="ttname"><a href="namespacearmnn_utils.xhtml">armnnUtils</a></div><div class="ttdef"><b>Definition:</b> <a href="_data_layout_indexed_8hpp_source.xhtml#l00013">DataLayoutIndexed.hpp:13</a></div></div>
<div class="ttc" id="classarmnn_1_1gatordmock_1_1_gatord_mock_service_xhtml_a93617d8640d5e93831d06a2ef3c86bef"><div class="ttname"><a href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a93617d8640d5e93831d06a2ef3c86bef">armnn::gatordmock::GatordMockService::WaitForReceivingThread</a></div><div class="ttdeci">void WaitForReceivingThread()</div><div class="ttdoc">This is a placeholder method to prevent main exiting. </div><div class="ttdef"><b>Definition:</b> <a href="_gatord_mock_service_8cpp_source.xhtml#l00085">GatordMockService.cpp:85</a></div></div>
<div class="ttc" id="_command_handler_registry_8hpp_xhtml"><div class="ttname"><a href="_command_handler_registry_8hpp.xhtml">CommandHandlerRegistry.hpp</a></div></div>
<div class="ttc" id="classarmnn_1_1gatordmock_1_1_gatord_mock_service_xhtml_a41eaa65cf4e7212f09b04d06c130cd83"><div class="ttname"><a href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a41eaa65cf4e7212f09b04d06c130cd83">armnn::gatordmock::GatordMockService::SendConnectionAck</a></div><div class="ttdeci">void SendConnectionAck()</div><div class="ttdoc">Send a connection acknowledged packet back to the client. </div><div class="ttdef"><b>Definition:</b> <a href="_gatord_mock_service_8cpp_source.xhtml#l00028">GatordMockService.cpp:28</a></div></div>
<div class="ttc" id="_profiling_utils_8hpp_xhtml"><div class="ttname"><a href="_profiling_utils_8hpp.xhtml">ProfilingUtils.hpp</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_59425e443f801f1f2fd8bbe4959a3ccf.xhtml">tests</a></li><li class="navelem"><a class="el" href="dir_659c7018c274c4a27f289b6765351cd5.xhtml">profiling</a></li><li class="navelem"><a class="el" href="dir_0f843ccd982e68996492857574f1c0de.xhtml">gatordmock</a></li><li class="navelem"><a class="el" href="_gatord_mock_service_8cpp.xhtml">GatordMockService.cpp</a></li>
    <li class="footer">Generated on Fri May 29 2020 10:20:47 for ArmNN by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  </ul>
</div>
</body>
</html>