aboutsummaryrefslogtreecommitdiff
path: root/Documentation/_gatord_mock_tests_8cpp_source.xhtml
blob: e8a55a97aba40aba15e86f36a0dcef14b73c11ef (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
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
<!-- 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/tests/GatordMockTests.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.02</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_tests_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">GatordMockTests.cpp</div>  </div>
</div><!--header-->
<div class="contents">
<a href="_gatord_mock_tests_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 © 2017 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 &lt;<a class="code" href="_command_handler_registry_8hpp.xhtml">CommandHandlerRegistry.hpp</a>&gt;</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_directory_capture_command_handler_8hpp.xhtml">DirectoryCaptureCommandHandler.hpp</a>&gt;</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_profiling_service_8hpp.xhtml">ProfilingService.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="_gatord_mock_service_8hpp.xhtml">GatordMockService.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="_periodic_counter_capture_command_handler_8hpp.xhtml">PeriodicCounterCaptureCommandHandler.hpp</a>&gt;</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_stream_metadata_command_handler_8hpp.xhtml">StreamMetadataCommandHandler.hpp</a>&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="_timeline_directory_capture_command_handler_8hpp.xhtml">TimelineDirectoryCaptureCommandHandler.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;<a class="code" href="_profiling_mocks_8hpp.xhtml">test/ProfilingMocks.hpp</a>&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;boost/cast.hpp&gt;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &lt;boost/test/test_tools.hpp&gt;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &lt;boost/test/unit_test_suite.hpp&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;<a class="code" href="_output_shape_of_squeeze_8cpp.xhtml#ae3a6cb217a792718f2bd0e8f45e3ca9e">BOOST_AUTO_TEST_SUITE</a>(GatordMockTests)</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacearmnn.xhtml">armnn</a>;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacestd_1_1this__thread.xhtml">std::this_thread</a>;    <span class="comment">// sleep_for, sleep_until</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacestd_1_1chrono__literals.xhtml">std::chrono_literals</a>;</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"><a class="line" href="_gatord_mock_tests_8cpp.xhtml#a8b02cdd10cf4143333b67a42304a5e76">   27</a></span>&#160;<a class="code" href="namespacearmnn.xhtml#a10d15f3df1ab52b3b915a4be1dbf386b">BOOST_AUTO_TEST_CASE</a>(CounterCaptureHandlingTest)</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;{</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;    <span class="keyword">using</span> <a class="code" href="namespacearmnn.xhtml#a37fa39012e90d568df7f774cd6d1e956">boost::numeric_cast</a>;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</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="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    <span class="comment">// Data with timestamp, counter idx &amp; counter values</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    std::vector&lt;std::pair&lt;uint16_t, uint32_t&gt;&gt; indexValuePairs;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    indexValuePairs.reserve(5);</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    indexValuePairs.emplace_back(std::make_pair&lt;uint16_t, uint32_t&gt;(0, 100));</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    indexValuePairs.emplace_back(std::make_pair&lt;uint16_t, uint32_t&gt;(1, 200));</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    indexValuePairs.emplace_back(std::make_pair&lt;uint16_t, uint32_t&gt;(2, 300));</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    indexValuePairs.emplace_back(std::make_pair&lt;uint16_t, uint32_t&gt;(3, 400));</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    indexValuePairs.emplace_back(std::make_pair&lt;uint16_t, uint32_t&gt;(4, 500));</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;    <span class="comment">// ((uint16_t (2 bytes) + uint32_t (4 bytes)) * 5) + word1 + word2</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    uint32_t dataLength = 38;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    <span class="comment">// Simulate two different packets incoming 500 ms apart</span></div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    uint64_t time = <span class="keyword">static_cast&lt;</span>uint64_t<span class="keyword">&gt;</span>(</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;        std::chrono::duration_cast&lt;std::chrono::microseconds&gt;(std::chrono::steady_clock::now().time_since_epoch())</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;            .count());</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;    uint64_t time2 = time + 5000;</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="comment">// UniqueData required for Packet class</span></div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    std::unique_ptr&lt;unsigned char[]&gt; uniqueData1 = std::make_unique&lt;unsigned char[]&gt;(dataLength);</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* data1                         = <span class="keyword">reinterpret_cast&lt;</span><span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(uniqueData1.get());</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    std::unique_ptr&lt;unsigned char[]&gt; uniqueData2 = std::make_unique&lt;unsigned char[]&gt;(dataLength);</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* data2                         = <span class="keyword">reinterpret_cast&lt;</span><span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(uniqueData2.get());</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    uint32_t sizeOfUint64 = <a class="code" href="namespacearmnn.xhtml#a37fa39012e90d568df7f774cd6d1e956">numeric_cast</a>&lt;uint32_t&gt;(<span class="keyword">sizeof</span>(uint64_t));</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    uint32_t sizeOfUint32 = <a class="code" href="namespacearmnn.xhtml#a37fa39012e90d568df7f774cd6d1e956">numeric_cast</a>&lt;uint32_t&gt;(<span class="keyword">sizeof</span>(uint32_t));</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    uint32_t sizeOfUint16 = <a class="code" href="namespacearmnn.xhtml#a37fa39012e90d568df7f774cd6d1e956">numeric_cast</a>&lt;uint32_t&gt;(<span class="keyword">sizeof</span>(uint16_t));</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    <span class="comment">// Offset index to point to mem address</span></div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    uint32_t offset = 0;</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    <a class="code" href="namespacearmnn_1_1profiling.xhtml#a79be042e55fdf16ca562f14cd15d9aa6">profiling::WriteUint64</a>(data1, offset, time);</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    offset += sizeOfUint64;</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; pair : indexValuePairs)</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    {</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;        <a class="code" href="namespacearmnn_1_1profiling.xhtml#ae5ace88c65e65ab7cf5572613601a60d">profiling::WriteUint16</a>(data1, offset, pair.first);</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;        offset += sizeOfUint16;</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;        <a class="code" href="namespacearmnn_1_1profiling.xhtml#a3e638748a39d46e2943dfcef94dcb828">profiling::WriteUint32</a>(data1, offset, pair.second);</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;        offset += sizeOfUint32;</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;</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    offset = 0;</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;    <a class="code" href="namespacearmnn_1_1profiling.xhtml#a79be042e55fdf16ca562f14cd15d9aa6">profiling::WriteUint64</a>(data2, offset, time2);</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    offset += sizeOfUint64;</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; pair : indexValuePairs)</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;        <a class="code" href="namespacearmnn_1_1profiling.xhtml#ae5ace88c65e65ab7cf5572613601a60d">profiling::WriteUint16</a>(data2, offset, pair.first);</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;        offset += sizeOfUint16;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;        <a class="code" href="namespacearmnn_1_1profiling.xhtml#a3e638748a39d46e2943dfcef94dcb828">profiling::WriteUint32</a>(data2, offset, pair.second);</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;        offset += sizeOfUint32;</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    }</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;    uint32_t headerWord1 = packetVersionResolver.<a class="code" href="classarmnn_1_1profiling_1_1_packet_version_resolver.xhtml#ac8ad466123304f923e64997ac096926a">ResolvePacketVersion</a>(0, 4).<a class="code" href="classarmnn_1_1profiling_1_1_version.xhtml#a0ab0d5a402c197d4093cbc5fdbf81214">GetEncodedValue</a>();</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    <span class="comment">// Create packet to send through to the command functor</span></div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    <a class="code" href="classarmnn_1_1profiling_1_1_packet.xhtml">profiling::Packet</a> packet1(headerWord1, dataLength, uniqueData1);</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    <a class="code" href="classarmnn_1_1profiling_1_1_packet.xhtml">profiling::Packet</a> packet2(headerWord1, dataLength, uniqueData2);</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;    <a class="code" href="classarmnn_1_1gatordmock_1_1_periodic_counter_capture_command_handler.xhtml">gatordmock::PeriodicCounterCaptureCommandHandler</a> commandHandler(0, 4, headerWord1, <span class="keyword">true</span>);</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    <span class="comment">// Simulate two separate packets coming in to calculate period</span></div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    commandHandler(packet1);</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    commandHandler(packet2);</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;    BOOST_ASSERT(commandHandler.<a class="code" href="classarmnn_1_1gatordmock_1_1_periodic_counter_capture_command_handler.xhtml#adf4c1e497ab037106ba8ae0ac077ac0f">m_CurrentPeriodValue</a> == 5000);</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; commandHandler.<a class="code" href="classarmnn_1_1gatordmock_1_1_periodic_counter_capture_command_handler.xhtml#a9626b6860f10b55ee178d0b340627a8d">m_CounterCaptureValues</a>.<a class="code" href="structarmnn_1_1gatordmock_1_1_counter_capture_values.xhtml#af697af5118a291003f6aaeb195fe67a4">m_Uids</a>.size(); ++i)</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    {</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;        BOOST_ASSERT(commandHandler.<a class="code" href="classarmnn_1_1gatordmock_1_1_periodic_counter_capture_command_handler.xhtml#a9626b6860f10b55ee178d0b340627a8d">m_CounterCaptureValues</a>.<a class="code" href="structarmnn_1_1gatordmock_1_1_counter_capture_values.xhtml#af697af5118a291003f6aaeb195fe67a4">m_Uids</a>[i] == i);</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">  105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="_gatord_mock_tests_8cpp.xhtml#a95b346e0dd2dec2ca7426bbb4d4f73dc">  106</a></span>&#160;<a class="code" href="namespacearmnn.xhtml#a10d15f3df1ab52b3b915a4be1dbf386b">BOOST_AUTO_TEST_CASE</a>(GatorDMockEndToEnd)</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;{</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    <span class="comment">// The purpose of this test is to setup both sides of the profiling service and get to the point of receiving</span></div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    <span class="comment">// performance data.</span></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;    <span class="comment">//These variables are used to wait for the profiling service</span></div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    uint32_t timeout   = 2000;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    uint32_t sleepTime = 50;</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    uint32_t timeSlept = 0;</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;    <a class="code" href="classarmnn_1_1profiling_1_1_packet_version_resolver.xhtml">profiling::PacketVersionResolver</a> packetVersionResolver;</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;    <span class="comment">// Create the Command Handler Registry</span></div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    <a class="code" href="classarmnn_1_1profiling_1_1_command_handler_registry.xhtml">profiling::CommandHandlerRegistry</a> registry;</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">// Update with derived functors</span></div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    <a class="code" href="classarmnn_1_1gatordmock_1_1_stream_metadata_command_handler.xhtml">gatordmock::StreamMetadataCommandHandler</a> streamMetadataCommandHandler(</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        0, 0, packetVersionResolver.<a class="code" href="classarmnn_1_1profiling_1_1_packet_version_resolver.xhtml#ac8ad466123304f923e64997ac096926a">ResolvePacketVersion</a>(0, 0).<a class="code" href="classarmnn_1_1profiling_1_1_version.xhtml#a0ab0d5a402c197d4093cbc5fdbf81214">GetEncodedValue</a>(), <span class="keyword">true</span>);</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    <a class="code" href="classarmnn_1_1gatordmock_1_1_periodic_counter_capture_command_handler.xhtml">gatordmock::PeriodicCounterCaptureCommandHandler</a> counterCaptureCommandHandler(</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;        0, 4, packetVersionResolver.<a class="code" href="classarmnn_1_1profiling_1_1_packet_version_resolver.xhtml#ac8ad466123304f923e64997ac096926a">ResolvePacketVersion</a>(0, 4).<a class="code" href="classarmnn_1_1profiling_1_1_version.xhtml#a0ab0d5a402c197d4093cbc5fdbf81214">GetEncodedValue</a>(), <span class="keyword">true</span>);</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    <a class="code" href="classarmnn_1_1profiling_1_1_directory_capture_command_handler.xhtml">profiling::DirectoryCaptureCommandHandler</a> directoryCaptureCommandHandler(</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;        0, 2, packetVersionResolver.<a class="code" href="classarmnn_1_1profiling_1_1_packet_version_resolver.xhtml#ac8ad466123304f923e64997ac096926a">ResolvePacketVersion</a>(0, 2).<a class="code" href="classarmnn_1_1profiling_1_1_version.xhtml#a0ab0d5a402c197d4093cbc5fdbf81214">GetEncodedValue</a>(), <span class="keyword">true</span>);</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    <a class="code" href="classarmnn_1_1timelinedecoder_1_1_timeline_directory_capture_command_handler.xhtml">timelinedecoder::TimelineDirectoryCaptureCommandHandler</a> timelineDirectoryCaptureCommandHandler(</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;        1, 0, packetVersionResolver.<a class="code" href="classarmnn_1_1profiling_1_1_packet_version_resolver.xhtml#ac8ad466123304f923e64997ac096926a">ResolvePacketVersion</a>(1, 0).<a class="code" href="classarmnn_1_1profiling_1_1_version.xhtml#a0ab0d5a402c197d4093cbc5fdbf81214">GetEncodedValue</a>(), <span class="keyword">true</span>);</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    <span class="comment">// Register different derived functors</span></div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;    registry.<a class="code" href="classarmnn_1_1profiling_1_1_command_handler_registry.xhtml#a7875d60ac5ca76c70f599367ec61261a">RegisterFunctor</a>(&amp;streamMetadataCommandHandler);</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    registry.<a class="code" href="classarmnn_1_1profiling_1_1_command_handler_registry.xhtml#a7875d60ac5ca76c70f599367ec61261a">RegisterFunctor</a>(&amp;counterCaptureCommandHandler);</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    registry.<a class="code" href="classarmnn_1_1profiling_1_1_command_handler_registry.xhtml#a7875d60ac5ca76c70f599367ec61261a">RegisterFunctor</a>(&amp;directoryCaptureCommandHandler);</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    registry.<a class="code" href="classarmnn_1_1profiling_1_1_command_handler_registry.xhtml#a7875d60ac5ca76c70f599367ec61261a">RegisterFunctor</a>(&amp;timelineDirectoryCaptureCommandHandler);</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    <span class="comment">// Setup the mock service to bind to the UDS.</span></div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;    std::string udsNamespace = <span class="stringliteral">&quot;gatord_namespace&quot;</span>;</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    <a class="code" href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml">gatordmock::GatordMockService</a> mockService(registry, <span class="keyword">false</span>);</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    mockService.<a class="code" href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#aa03af06b5336e9ad43b374a03934c0f1">OpenListeningSocket</a>(udsNamespace);</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">// Enable the profiling service.</span></div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    <a class="code" href="structarmnn_1_1_i_runtime_1_1_creation_options_1_1_external_profiling_options.xhtml">armnn::IRuntime::CreationOptions::ExternalProfilingOptions</a> <a class="code" href="_file_only_profiling_decorator_tests_8cpp.xhtml#a6560146509197f3e197d8d36f76c1347">options</a>;</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;    options.<a class="code" href="structarmnn_1_1_i_runtime_1_1_creation_options_1_1_external_profiling_options.xhtml#a26d42007440bb01a1a6d0ab3b5a657ee">m_EnableProfiling</a>                     = <span class="keyword">true</span>;</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    <a class="code" href="classarmnn_1_1profiling_1_1_profiling_service.xhtml">profiling::ProfilingService</a>&amp; <a class="code" href="_file_only_profiling_decorator_tests_8cpp.xhtml#a5ff5630fd34b2ac9c090f05c010e6839">profilingService</a> = <a class="code" href="classarmnn_1_1profiling_1_1_profiling_service.xhtml#a6d016886de3596fe67dbabf107168f97">profiling::ProfilingService::Instance</a>();</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    profilingService.<a class="code" href="classarmnn_1_1profiling_1_1_profiling_service.xhtml#ae7a3588986b93e13fda47c7ce4b0627c">ResetExternalProfilingOptions</a>(options, <span class="keyword">true</span>);</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    <span class="comment">// Bring the profiling service to the &quot;WaitingForAck&quot; state</span></div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    <a class="code" href="_file_only_profiling_decorator_tests_8cpp.xhtml#a0c262ba6f6c189a2d092d127c1b7627b">BOOST_CHECK</a>(profilingService.<a class="code" href="classarmnn_1_1profiling_1_1_profiling_service.xhtml#ad8d263669817cf577760710ff6c96bb9">GetCurrentState</a>() == <a class="code" href="namespacearmnn_1_1profiling.xhtml#acb0c054138599582d5a5f537e9798806a962074a9de1cf3d6d7b6f955a0a94820">profiling::ProfilingState::Uninitialised</a>);</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    profilingService.<a class="code" href="classarmnn_1_1profiling_1_1_profiling_service.xhtml#aec0783b5a136e042adcc47bae4fe5291">Update</a>();</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    <a class="code" href="_file_only_profiling_decorator_tests_8cpp.xhtml#a0c262ba6f6c189a2d092d127c1b7627b">BOOST_CHECK</a>(profilingService.<a class="code" href="classarmnn_1_1profiling_1_1_profiling_service.xhtml#ad8d263669817cf577760710ff6c96bb9">GetCurrentState</a>() == <a class="code" href="namespacearmnn_1_1profiling.xhtml#acb0c054138599582d5a5f537e9798806a4075072d219e061ca0f3124f8fbef463">profiling::ProfilingState::NotConnected</a>);</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    profilingService.<a class="code" href="classarmnn_1_1profiling_1_1_profiling_service.xhtml#aec0783b5a136e042adcc47bae4fe5291">Update</a>();</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;    <span class="comment">// Connect the profiling service to the mock Gatord.</span></div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    <span class="keywordtype">int</span> clientFd = mockService.<a class="code" href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a4c7dcda01e81dbdc47ceb1c82f26039b">BlockForOneClient</a>();</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    <span class="keywordflow">if</span> (-1 == clientFd)</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;        BOOST_FAIL(<span class="stringliteral">&quot;Failed to connect client&quot;</span>);</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;</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    <span class="comment">// Give the profiling service sending thread time start executing and send the stream metadata.</span></div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    <span class="keywordflow">while</span> (profilingService.<a class="code" href="classarmnn_1_1profiling_1_1_profiling_service.xhtml#ad8d263669817cf577760710ff6c96bb9">GetCurrentState</a>() != <a class="code" href="namespacearmnn_1_1profiling.xhtml#acb0c054138599582d5a5f537e9798806a1dc1edc76d5b3c0325f00002f4c841f5">profiling::ProfilingState::WaitingForAck</a>)</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;    {</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;        <span class="keywordflow">if</span> (timeSlept &gt;= timeout)</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;        {</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;            BOOST_FAIL(<span class="stringliteral">&quot;Timeout: Profiling service did not switch to WaitingForAck state&quot;</span>);</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;        }</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;        std::this_thread::sleep_for(std::chrono::milliseconds(sleepTime));</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;        timeSlept += sleepTime;</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    }</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;    profilingService.<a class="code" href="classarmnn_1_1profiling_1_1_profiling_service.xhtml#aec0783b5a136e042adcc47bae4fe5291">Update</a>();</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    <span class="comment">// Read the stream metadata on the mock side.</span></div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;    <span class="keywordflow">if</span> (!mockService.<a class="code" href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#ac07351dbc304681b2efd5df4958a6735">WaitForStreamMetaData</a>())</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    {</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;        BOOST_FAIL(<span class="stringliteral">&quot;Failed to receive StreamMetaData&quot;</span>);</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;    <span class="comment">// Send Ack from GatorD</span></div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;    mockService.<a class="code" href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a41eaa65cf4e7212f09b04d06c130cd83">SendConnectionAck</a>();</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;    timeSlept = 0;</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;    <span class="keywordflow">while</span> (profilingService.<a class="code" href="classarmnn_1_1profiling_1_1_profiling_service.xhtml#ad8d263669817cf577760710ff6c96bb9">GetCurrentState</a>() != <a class="code" href="namespacearmnn_1_1profiling.xhtml#acb0c054138599582d5a5f537e9798806a4d3d769b812b6faa6b76e1a8abaece2d">profiling::ProfilingState::Active</a>)</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="keywordflow">if</span> (timeSlept &gt;= timeout)</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;            BOOST_FAIL(<span class="stringliteral">&quot;Timeout: Profiling service did not switch to Active state&quot;</span>);</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;        std::this_thread::sleep_for(std::chrono::milliseconds(sleepTime));</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;        timeSlept += sleepTime;</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;</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;    mockService.<a class="code" href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a5175305569ecb4e58004e977abeff61a">LaunchReceivingThread</a>();</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    <span class="comment">// As part of the default startup of the profiling service a counter directory packet will be sent.</span></div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;    timeSlept = 0;</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;    <span class="keywordflow">while</span> (!directoryCaptureCommandHandler.ParsedCounterDirectory())</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;        <span class="keywordflow">if</span> (timeSlept &gt;= timeout)</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;            BOOST_FAIL(<span class="stringliteral">&quot;Timeout: MockGatord did not receive counter directory packet&quot;</span>);</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;        }</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;        std::this_thread::sleep_for(std::chrono::milliseconds(sleepTime));</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;        timeSlept += sleepTime;</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    }</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;    <span class="keyword">const</span> <a class="code" href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml">profiling::ICounterDirectory</a>&amp; serviceCounterDirectory  = profilingService.<a class="code" href="classarmnn_1_1profiling_1_1_profiling_service.xhtml#adfaa32654e05eab63b2adc34b2138475">GetCounterDirectory</a>();</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;    <span class="keyword">const</span> <a class="code" href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml">profiling::ICounterDirectory</a>&amp; receivedCounterDirectory = directoryCaptureCommandHandler.GetCounterDirectory();</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    <span class="comment">// Compare thre basics of the counter directory from the service and the one we received over the wire.</span></div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;    BOOST_ASSERT(serviceCounterDirectory.<a class="code" href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#aecd5912045fd41fe41dc96c9844f6deb">GetDeviceCount</a>() == receivedCounterDirectory.<a class="code" href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#aecd5912045fd41fe41dc96c9844f6deb">GetDeviceCount</a>());</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;    BOOST_ASSERT(serviceCounterDirectory.<a class="code" href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#aef59fdca57a5bb822e22cacfc5836fab">GetCounterSetCount</a>() == receivedCounterDirectory.<a class="code" href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#aef59fdca57a5bb822e22cacfc5836fab">GetCounterSetCount</a>());</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;    BOOST_ASSERT(serviceCounterDirectory.<a class="code" href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#ab43b0472c37fe51694977ae9b4132404">GetCategoryCount</a>() == receivedCounterDirectory.<a class="code" href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#ab43b0472c37fe51694977ae9b4132404">GetCategoryCount</a>());</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;    BOOST_ASSERT(serviceCounterDirectory.<a class="code" href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#acab78d0987a9cca5a9cac957be610a7d">GetCounterCount</a>() == receivedCounterDirectory.<a class="code" href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#acab78d0987a9cca5a9cac957be610a7d">GetCounterCount</a>());</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;    receivedCounterDirectory.<a class="code" href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#aecd5912045fd41fe41dc96c9844f6deb">GetDeviceCount</a>();</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;    serviceCounterDirectory.<a class="code" href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#aecd5912045fd41fe41dc96c9844f6deb">GetDeviceCount</a>();</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;    <span class="keyword">const</span> <a class="code" href="namespacearmnn_1_1profiling.xhtml#a3ff1066867cb9bd3b08338957c414401">profiling::Devices</a>&amp; serviceDevices = serviceCounterDirectory.<a class="code" href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#a98e6769cb933d30bfd3ca25f61bd8438">GetDevices</a>();</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;    <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; device : serviceDevices)</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;    {</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;        <span class="comment">// Find the same device in the received counter directory.</span></div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;        <span class="keyword">auto</span> foundDevice = receivedCounterDirectory.<a class="code" href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#a98e6769cb933d30bfd3ca25f61bd8438">GetDevices</a>().find(device.second-&gt;m_Uid);</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;        <a class="code" href="_file_only_profiling_decorator_tests_8cpp.xhtml#a0c262ba6f6c189a2d092d127c1b7627b">BOOST_CHECK</a>(foundDevice != receivedCounterDirectory.<a class="code" href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#a98e6769cb933d30bfd3ca25f61bd8438">GetDevices</a>().end());</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;        <a class="code" href="_file_only_profiling_decorator_tests_8cpp.xhtml#a0c262ba6f6c189a2d092d127c1b7627b">BOOST_CHECK</a>(device.second-&gt;m_Name.compare((*foundDevice).second-&gt;m_Name) == 0);</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;        <a class="code" href="_file_only_profiling_decorator_tests_8cpp.xhtml#a0c262ba6f6c189a2d092d127c1b7627b">BOOST_CHECK</a>(device.second-&gt;m_Cores == (*foundDevice).second-&gt;m_Cores);</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;    }</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;    <span class="keyword">const</span> <a class="code" href="namespacearmnn_1_1profiling.xhtml#acfe20da73b5dc66439a65b49f04f7a21">profiling::CounterSets</a>&amp; serviceCounterSets = serviceCounterDirectory.<a class="code" href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#a8908490db3b8a0003a639ac56b956cee">GetCounterSets</a>();</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;    <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; counterSet : serviceCounterSets)</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;    {</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;        <span class="comment">// Find the same counter set in the received counter directory.</span></div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;        <span class="keyword">auto</span> foundCounterSet = receivedCounterDirectory.<a class="code" href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#a8908490db3b8a0003a639ac56b956cee">GetCounterSets</a>().find(counterSet.second-&gt;m_Uid);</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;        <a class="code" href="_file_only_profiling_decorator_tests_8cpp.xhtml#a0c262ba6f6c189a2d092d127c1b7627b">BOOST_CHECK</a>(foundCounterSet != receivedCounterDirectory.<a class="code" href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#a8908490db3b8a0003a639ac56b956cee">GetCounterSets</a>().end());</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;        <a class="code" href="_file_only_profiling_decorator_tests_8cpp.xhtml#a0c262ba6f6c189a2d092d127c1b7627b">BOOST_CHECK</a>(counterSet.second-&gt;m_Name.compare((*foundCounterSet).second-&gt;m_Name) == 0);</div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;        <a class="code" href="_file_only_profiling_decorator_tests_8cpp.xhtml#a0c262ba6f6c189a2d092d127c1b7627b">BOOST_CHECK</a>(counterSet.second-&gt;m_Count == (*foundCounterSet).second-&gt;m_Count);</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;    }</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;    <span class="keyword">const</span> <a class="code" href="namespacearmnn_1_1profiling.xhtml#af55bc6e5233a4720fe8a813db470b06f">profiling::Categories</a>&amp; serviceCategories = serviceCounterDirectory.<a class="code" href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#a718a75d4c178cf3f687b3f27b8f55091">GetCategories</a>();</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;    <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; category : serviceCategories)</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    {</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; receivedCategory : receivedCounterDirectory.<a class="code" href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#a718a75d4c178cf3f687b3f27b8f55091">GetCategories</a>())</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;        {</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;            <span class="keywordflow">if</span> (receivedCategory-&gt;m_Name.compare(category-&gt;m_Name) == 0)</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;            {</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;                <span class="comment">// We&#39;ve found the matching category.</span></div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;                <span class="comment">// Now look at the interiors of the counters. Start by sorting them.</span></div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;                std::sort(category-&gt;m_Counters.begin(), category-&gt;m_Counters.end());</div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;                std::sort(receivedCategory-&gt;m_Counters.begin(), receivedCategory-&gt;m_Counters.end());</div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;                <span class="comment">// When comparing uid&#39;s here we need to translate them.</span></div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;                std::function&lt;bool(const uint16_t&amp;, const uint16_t&amp;)&gt; comparator =</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;                    [&amp;directoryCaptureCommandHandler](<span class="keyword">const</span> uint16_t&amp; first, <span class="keyword">const</span> uint16_t&amp; second) {</div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;                        uint16_t translated = directoryCaptureCommandHandler.TranslateUIDCopyToOriginal(second);</div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;                        <span class="keywordflow">if</span> (translated == first)</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;                        {</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;                            <span class="keywordflow">return</span> <span class="keyword">true</span>;</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;                        <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;                    };</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;                <span class="comment">// Then let vector == do the work.</span></div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;                <a class="code" href="_file_only_profiling_decorator_tests_8cpp.xhtml#a0c262ba6f6c189a2d092d127c1b7627b">BOOST_CHECK</a>(std::equal(category-&gt;m_Counters.begin(), category-&gt;m_Counters.end(),</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;                                       receivedCategory-&gt;m_Counters.begin(), comparator));</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;            }</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;        }</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;    }</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;    <span class="comment">// Finally check the content of the counters.</span></div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;    <span class="keyword">const</span> <a class="code" href="namespacearmnn_1_1profiling.xhtml#aeeb6904ffbae435c8d0a7138427688f4">profiling::Counters</a>&amp; receivedCounters = receivedCounterDirectory.<a class="code" href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#ad9fa9b8364fcaa2c940ef8e78eff8df2">GetCounters</a>();</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;    <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; receivedCounter : receivedCounters)</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;    {</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;        <span class="comment">// Translate the Uid and find the corresponding counter in the original counter directory.</span></div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;        <span class="comment">// Note we can&#39;t check m_MaxCounterUid here as it will likely differ between the two counter directories.</span></div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;        uint16_t translated = directoryCaptureCommandHandler.TranslateUIDCopyToOriginal(receivedCounter.first);</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;        <span class="keyword">const</span> <a class="code" href="classarmnn_1_1profiling_1_1_counter.xhtml">profiling::Counter</a>* serviceCounter = serviceCounterDirectory.<a class="code" href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#a81881e3910b23455b46ec30c8420c695">GetCounter</a>(translated);</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;        <a class="code" href="_file_only_profiling_decorator_tests_8cpp.xhtml#a0c262ba6f6c189a2d092d127c1b7627b">BOOST_CHECK</a>(serviceCounter-&gt;<a class="code" href="classarmnn_1_1profiling_1_1_counter.xhtml#af734583ef63236e643f64bc6f3f93c3d">m_DeviceUid</a> == receivedCounter.second-&gt;m_DeviceUid);</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;        <a class="code" href="_file_only_profiling_decorator_tests_8cpp.xhtml#a0c262ba6f6c189a2d092d127c1b7627b">BOOST_CHECK</a>(serviceCounter-&gt;<a class="code" href="classarmnn_1_1profiling_1_1_counter.xhtml#ab13844df5477a9ab8f13069e3d8abad6">m_Name</a>.compare(receivedCounter.second-&gt;m_Name) == 0);</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;        <a class="code" href="_file_only_profiling_decorator_tests_8cpp.xhtml#a0c262ba6f6c189a2d092d127c1b7627b">BOOST_CHECK</a>(serviceCounter-&gt;<a class="code" href="classarmnn_1_1profiling_1_1_counter.xhtml#a3b95c70c6d9c60fe7b25a4fa9bf20ea0">m_CounterSetUid</a> == receivedCounter.second-&gt;m_CounterSetUid);</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;        <a class="code" href="_file_only_profiling_decorator_tests_8cpp.xhtml#a0c262ba6f6c189a2d092d127c1b7627b">BOOST_CHECK</a>(serviceCounter-&gt;<a class="code" href="classarmnn_1_1profiling_1_1_counter.xhtml#ad5399f5bba038956f1fbde241bc44096">m_Multiplier</a> == receivedCounter.second-&gt;m_Multiplier);</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;        <a class="code" href="_file_only_profiling_decorator_tests_8cpp.xhtml#a0c262ba6f6c189a2d092d127c1b7627b">BOOST_CHECK</a>(serviceCounter-&gt;<a class="code" href="classarmnn_1_1profiling_1_1_counter.xhtml#a69719c180aafcdf5a25f81a851c74809">m_Interpolation</a> == receivedCounter.second-&gt;m_Interpolation);</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;        <a class="code" href="_file_only_profiling_decorator_tests_8cpp.xhtml#a0c262ba6f6c189a2d092d127c1b7627b">BOOST_CHECK</a>(serviceCounter-&gt;<a class="code" href="classarmnn_1_1profiling_1_1_counter.xhtml#a7aa5f39e2eddecaa9b1b5730c0481b11">m_Class</a> == receivedCounter.second-&gt;m_Class);</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;        <a class="code" href="_file_only_profiling_decorator_tests_8cpp.xhtml#a0c262ba6f6c189a2d092d127c1b7627b">BOOST_CHECK</a>(serviceCounter-&gt;<a class="code" href="classarmnn_1_1profiling_1_1_counter.xhtml#a84079a1f364c37c59230bc52332d8d19">m_Units</a>.compare(receivedCounter.second-&gt;m_Units) == 0);</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;        <a class="code" href="_file_only_profiling_decorator_tests_8cpp.xhtml#a0c262ba6f6c189a2d092d127c1b7627b">BOOST_CHECK</a>(serviceCounter-&gt;<a class="code" href="classarmnn_1_1profiling_1_1_counter.xhtml#a5edaa2326b1410fae32c5253ed0188d8">m_Description</a>.compare(receivedCounter.second-&gt;m_Description) == 0);</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;    }</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;    mockService.<a class="code" href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a93617d8640d5e93831d06a2ef3c86bef">WaitForReceivingThread</a>();</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;    options.<a class="code" href="structarmnn_1_1_i_runtime_1_1_creation_options_1_1_external_profiling_options.xhtml#a26d42007440bb01a1a6d0ab3b5a657ee">m_EnableProfiling</a> = <span class="keyword">false</span>;</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;    profilingService.<a class="code" href="classarmnn_1_1profiling_1_1_profiling_service.xhtml#ae7a3588986b93e13fda47c7ce4b0627c">ResetExternalProfilingOptions</a>(options, <span class="keyword">true</span>);</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;    <span class="comment">// Future tests here will add counters to the ProfilingService, increment values and examine</span></div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;    <span class="comment">// PeriodicCounterCapture data received. These are yet to be integrated.</span></div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;}</div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;</div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;<a class="code" href="_profiler_tests_8cpp.xhtml#af7f71af5c6c124222dd1c42c5df892f4">BOOST_AUTO_TEST_SUITE_END</a>()</div><div class="ttc" id="_output_shape_of_squeeze_8cpp_xhtml_ae3a6cb217a792718f2bd0e8f45e3ca9e"><div class="ttname"><a href="_output_shape_of_squeeze_8cpp.xhtml#ae3a6cb217a792718f2bd0e8f45e3ca9e">BOOST_AUTO_TEST_SUITE</a></div><div class="ttdeci">BOOST_AUTO_TEST_SUITE(TensorflowLiteParser)</div></div>
<div class="ttc" id="_periodic_counter_capture_command_handler_8hpp_xhtml"><div class="ttname"><a href="_periodic_counter_capture_command_handler_8hpp.xhtml">PeriodicCounterCaptureCommandHandler.hpp</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_profiling_service_xhtml_a6d016886de3596fe67dbabf107168f97"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_profiling_service.xhtml#a6d016886de3596fe67dbabf107168f97">armnn::profiling::ProfilingService::Instance</a></div><div class="ttdeci">static ProfilingService &amp; Instance()</div><div class="ttdef"><b>Definition:</b> <a href="_profiling_service_8hpp_source.xhtml#l00052">ProfilingService.hpp:52</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_1profiling_1_1_profiling_service_xhtml_ad8d263669817cf577760710ff6c96bb9"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_profiling_service.xhtml#ad8d263669817cf577760710ff6c96bb9">armnn::profiling::ProfilingService::GetCurrentState</a></div><div class="ttdeci">ProfilingState GetCurrentState() const</div><div class="ttdef"><b>Definition:</b> <a href="_profiling_service_8cpp_source.xhtml#l00209">ProfilingService.cpp:209</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#l00126">ProfilingUtils.cpp:126</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#l00119">ProfilingUtils.cpp:119</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_counter_xhtml_a69719c180aafcdf5a25f81a851c74809"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_counter.xhtml#a69719c180aafcdf5a25f81a851c74809">armnn::profiling::Counter::m_Interpolation</a></div><div class="ttdeci">uint16_t m_Interpolation</div><div class="ttdef"><b>Definition:</b> <a href="_i_counter_directory_8hpp_source.xhtml#l00128">ICounterDirectory.hpp:128</a></div></div>
<div class="ttc" id="namespacearmnn_1_1profiling_xhtml_aeeb6904ffbae435c8d0a7138427688f4"><div class="ttname"><a href="namespacearmnn_1_1profiling.xhtml#aeeb6904ffbae435c8d0a7138427688f4">armnn::profiling::Counters</a></div><div class="ttdeci">std::unordered_map&lt; uint16_t, CounterPtr &gt; Counters</div><div class="ttdef"><b>Definition:</b> <a href="_i_counter_directory_8hpp_source.xhtml#l00040">ICounterDirectory.hpp:40</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#l00036">PacketVersionResolver.hpp:36</a></div></div>
<div class="ttc" id="namespacestd_1_1this__thread_xhtml"><div class="ttname"><a href="namespacestd_1_1this__thread.xhtml">this_thread</a></div></div>
<div class="ttc" id="classarmnn_1_1gatordmock_1_1_gatord_mock_service_xhtml_aa03af06b5336e9ad43b374a03934c0f1"><div class="ttname"><a href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#aa03af06b5336e9ad43b374a03934c0f1">armnn::gatordmock::GatordMockService::OpenListeningSocket</a></div><div class="ttdeci">bool OpenListeningSocket(std::string udsNamespace)</div><div class="ttdoc">Establish the Unix domain socket and set it to listen for connections. </div><div class="ttdef"><b>Definition:</b> <a href="_gatord_mock_service_8cpp_source.xhtml#l00027">GatordMockService.cpp:27</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_i_counter_directory_xhtml_acab78d0987a9cca5a9cac957be610a7d"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#acab78d0987a9cca5a9cac957be610a7d">armnn::profiling::ICounterDirectory::GetCounterCount</a></div><div class="ttdeci">virtual uint16_t GetCounterCount() const =0</div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_counter_xhtml_a84079a1f364c37c59230bc52332d8d19"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_counter.xhtml#a84079a1f364c37c59230bc52332d8d19">armnn::profiling::Counter::m_Units</a></div><div class="ttdeci">std::string m_Units</div><div class="ttdef"><b>Definition:</b> <a href="_i_counter_directory_8hpp_source.xhtml#l00132">ICounterDirectory.hpp:132</a></div></div>
<div class="ttc" id="_stream_metadata_command_handler_8hpp_xhtml"><div class="ttname"><a href="_stream_metadata_command_handler_8hpp.xhtml">StreamMetadataCommandHandler.hpp</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_counter_xhtml"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_counter.xhtml">armnn::profiling::Counter</a></div><div class="ttdef"><b>Definition:</b> <a href="_i_counter_directory_8hpp_source.xhtml#l00095">ICounterDirectory.hpp:95</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_directory_capture_command_handler_xhtml"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_directory_capture_command_handler.xhtml">armnn::profiling::DirectoryCaptureCommandHandler</a></div><div class="ttdef"><b>Definition:</b> <a href="_directory_capture_command_handler_8hpp_source.xhtml#l00033">DirectoryCaptureCommandHandler.hpp:33</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_1profiling_1_1_i_counter_directory_xhtml_a8908490db3b8a0003a639ac56b956cee"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#a8908490db3b8a0003a639ac56b956cee">armnn::profiling::ICounterDirectory::GetCounterSets</a></div><div class="ttdeci">virtual const CounterSets &amp; GetCounterSets() const =0</div></div>
<div class="ttc" id="_file_only_profiling_decorator_tests_8cpp_xhtml_a5ff5630fd34b2ac9c090f05c010e6839"><div class="ttname"><a href="_file_only_profiling_decorator_tests_8cpp.xhtml#a5ff5630fd34b2ac9c090f05c010e6839">profilingService</a></div><div class="ttdeci">ProfilingService &amp; profilingService</div><div class="ttdef"><b>Definition:</b> <a href="_file_only_profiling_decorator_tests_8cpp_source.xhtml#l00055">FileOnlyProfilingDecoratorTests.cpp:55</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_i_counter_directory_xhtml_ab43b0472c37fe51694977ae9b4132404"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#ab43b0472c37fe51694977ae9b4132404">armnn::profiling::ICounterDirectory::GetCategoryCount</a></div><div class="ttdeci">virtual uint16_t GetCategoryCount() const =0</div></div>
<div class="ttc" id="structarmnn_1_1_i_runtime_1_1_creation_options_1_1_external_profiling_options_xhtml_a26d42007440bb01a1a6d0ab3b5a657ee"><div class="ttname"><a href="structarmnn_1_1_i_runtime_1_1_creation_options_1_1_external_profiling_options.xhtml#a26d42007440bb01a1a6d0ab3b5a657ee">armnn::IRuntime::CreationOptions::ExternalProfilingOptions::m_EnableProfiling</a></div><div class="ttdeci">bool m_EnableProfiling</div><div class="ttdef"><b>Definition:</b> <a href="_i_runtime_8hpp_source.xhtml#l00070">IRuntime.hpp:70</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_profiling_service_xhtml_aec0783b5a136e042adcc47bae4fe5291"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_profiling_service.xhtml#aec0783b5a136e042adcc47bae4fe5291">armnn::profiling::ProfilingService::Update</a></div><div class="ttdeci">void Update()</div><div class="ttdef"><b>Definition:</b> <a href="_profiling_service_8cpp_source.xhtml#l00089">ProfilingService.cpp:89</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_counter_xhtml_ad5399f5bba038956f1fbde241bc44096"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_counter.xhtml#ad5399f5bba038956f1fbde241bc44096">armnn::profiling::Counter::m_Multiplier</a></div><div class="ttdeci">double m_Multiplier</div><div class="ttdef"><b>Definition:</b> <a href="_i_counter_directory_8hpp_source.xhtml#l00129">ICounterDirectory.hpp:129</a></div></div>
<div class="ttc" id="_file_only_profiling_decorator_tests_8cpp_xhtml_a0c262ba6f6c189a2d092d127c1b7627b"><div class="ttname"><a href="_file_only_profiling_decorator_tests_8cpp.xhtml#a0c262ba6f6c189a2d092d127c1b7627b">BOOST_CHECK</a></div><div class="ttdeci">BOOST_CHECK(profilingService.GetCurrentState()==ProfilingState::WaitingForAck)</div></div>
<div class="ttc" id="namespacearmnn_1_1profiling_xhtml_acfe20da73b5dc66439a65b49f04f7a21"><div class="ttname"><a href="namespacearmnn_1_1profiling.xhtml#acfe20da73b5dc66439a65b49f04f7a21">armnn::profiling::CounterSets</a></div><div class="ttdeci">std::unordered_map&lt; uint16_t, CounterSetPtr &gt; CounterSets</div><div class="ttdef"><b>Definition:</b> <a href="_i_counter_directory_8hpp_source.xhtml#l00039">ICounterDirectory.hpp:39</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_i_counter_directory_xhtml_a718a75d4c178cf3f687b3f27b8f55091"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#a718a75d4c178cf3f687b3f27b8f55091">armnn::profiling::ICounterDirectory::GetCategories</a></div><div class="ttdeci">virtual const Categories &amp; GetCategories() const =0</div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_command_handler_registry_xhtml"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_command_handler_registry.xhtml">armnn::profiling::CommandHandlerRegistry</a></div><div class="ttdef"><b>Definition:</b> <a href="_command_handler_registry_8hpp_source.xhtml#l00032">CommandHandlerRegistry.hpp:32</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#l00069">GatordMockService.cpp:69</a></div></div>
<div class="ttc" id="structarmnn_1_1_i_runtime_1_1_creation_options_1_1_external_profiling_options_xhtml"><div class="ttname"><a href="structarmnn_1_1_i_runtime_1_1_creation_options_1_1_external_profiling_options.xhtml">armnn::IRuntime::CreationOptions::ExternalProfilingOptions</a></div><div class="ttdef"><b>Definition:</b> <a href="_i_runtime_8hpp_source.xhtml#l00060">IRuntime.hpp:60</a></div></div>
<div class="ttc" id="namespacearmnn_1_1profiling_xhtml_acb0c054138599582d5a5f537e9798806a4075072d219e061ca0f3124f8fbef463"><div class="ttname"><a href="namespacearmnn_1_1profiling.xhtml#acb0c054138599582d5a5f537e9798806a4075072d219e061ca0f3124f8fbef463">armnn::profiling::ProfilingState::NotConnected</a></div></div>
<div class="ttc" id="_directory_capture_command_handler_8hpp_xhtml"><div class="ttname"><a href="_directory_capture_command_handler_8hpp.xhtml">DirectoryCaptureCommandHandler.hpp</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_i_counter_directory_xhtml_a98e6769cb933d30bfd3ca25f61bd8438"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#a98e6769cb933d30bfd3ca25f61bd8438">armnn::profiling::ICounterDirectory::GetDevices</a></div><div class="ttdeci">virtual const Devices &amp; GetDevices() const =0</div></div>
<div class="ttc" id="namespacearmnn_1_1profiling_xhtml_acb0c054138599582d5a5f537e9798806a4d3d769b812b6faa6b76e1a8abaece2d"><div class="ttname"><a href="namespacearmnn_1_1profiling.xhtml#acb0c054138599582d5a5f537e9798806a4d3d769b812b6faa6b76e1a8abaece2d">armnn::profiling::ProfilingState::Active</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_command_handler_registry_xhtml_a7875d60ac5ca76c70f599367ec61261a"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_command_handler_registry.xhtml#a7875d60ac5ca76c70f599367ec61261a">armnn::profiling::CommandHandlerRegistry::RegisterFunctor</a></div><div class="ttdeci">void RegisterFunctor(CommandHandlerFunctor *functor, uint32_t familyId, uint32_t packetId, uint32_t version)</div><div class="ttdef"><b>Definition:</b> <a href="_command_handler_registry_8cpp_source.xhtml#l00017">CommandHandlerRegistry.cpp:17</a></div></div>
<div class="ttc" id="classarmnn_1_1gatordmock_1_1_periodic_counter_capture_command_handler_xhtml_adf4c1e497ab037106ba8ae0ac077ac0f"><div class="ttname"><a href="classarmnn_1_1gatordmock_1_1_periodic_counter_capture_command_handler.xhtml#adf4c1e497ab037106ba8ae0ac077ac0f">armnn::gatordmock::PeriodicCounterCaptureCommandHandler::m_CurrentPeriodValue</a></div><div class="ttdeci">uint64_t m_CurrentPeriodValue</div><div class="ttdef"><b>Definition:</b> <a href="_periodic_counter_capture_command_handler_8hpp_source.xhtml#l00048">PeriodicCounterCaptureCommandHandler.hpp:48</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_counter_xhtml_a3b95c70c6d9c60fe7b25a4fa9bf20ea0"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_counter.xhtml#a3b95c70c6d9c60fe7b25a4fa9bf20ea0">armnn::profiling::Counter::m_CounterSetUid</a></div><div class="ttdeci">uint16_t m_CounterSetUid</div><div class="ttdef"><b>Definition:</b> <a href="_i_counter_directory_8hpp_source.xhtml#l00136">ICounterDirectory.hpp:136</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_counter_xhtml_a7aa5f39e2eddecaa9b1b5730c0481b11"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_counter.xhtml#a7aa5f39e2eddecaa9b1b5730c0481b11">armnn::profiling::Counter::m_Class</a></div><div class="ttdeci">uint16_t m_Class</div><div class="ttdef"><b>Definition:</b> <a href="_i_counter_directory_8hpp_source.xhtml#l00127">ICounterDirectory.hpp:127</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_packet_xhtml"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_packet.xhtml">armnn::profiling::Packet</a></div><div class="ttdef"><b>Definition:</b> <a href="_packet_8hpp_source.xhtml#l00018">Packet.hpp:18</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_profiling_service_xhtml_ae7a3588986b93e13fda47c7ce4b0627c"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_profiling_service.xhtml#ae7a3588986b93e13fda47c7ce4b0627c">armnn::profiling::ProfilingService::ResetExternalProfilingOptions</a></div><div class="ttdeci">void ResetExternalProfilingOptions(const ExternalProfilingOptions &amp;options, bool resetProfilingService=false)</div><div class="ttdef"><b>Definition:</b> <a href="_profiling_service_8cpp_source.xhtml#l00020">ProfilingService.cpp:20</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_i_counter_directory_xhtml_aecd5912045fd41fe41dc96c9844f6deb"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#aecd5912045fd41fe41dc96c9844f6deb">armnn::profiling::ICounterDirectory::GetDeviceCount</a></div><div class="ttdeci">virtual uint16_t GetDeviceCount() const =0</div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_counter_xhtml_af734583ef63236e643f64bc6f3f93c3d"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_counter.xhtml#af734583ef63236e643f64bc6f3f93c3d">armnn::profiling::Counter::m_DeviceUid</a></div><div class="ttdeci">uint16_t m_DeviceUid</div><div class="ttdef"><b>Definition:</b> <a href="_i_counter_directory_8hpp_source.xhtml#l00135">ICounterDirectory.hpp:135</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a37fa39012e90d568df7f774cd6d1e956"><div class="ttname"><a href="namespacearmnn.xhtml#a37fa39012e90d568df7f774cd6d1e956">armnn::numeric_cast</a></div><div class="ttdeci">std::enable_if_t&lt; std::is_unsigned&lt; Source &gt;::value &amp;&amp;std::is_unsigned&lt; Dest &gt;::value, Dest &gt; numeric_cast(Source source)</div><div class="ttdef"><b>Definition:</b> <a href="_numeric_cast_8hpp_source.xhtml#l00033">NumericCast.hpp:33</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a10d15f3df1ab52b3b915a4be1dbf386b"><div class="ttname"><a href="namespacearmnn.xhtml#a10d15f3df1ab52b3b915a4be1dbf386b">armnn::BOOST_AUTO_TEST_CASE</a></div><div class="ttdeci">BOOST_AUTO_TEST_CASE(CheckConvolution2dLayer)</div><div class="ttdef"><b>Definition:</b> <a href="_const_tensor_layer_visitor_8cpp_source.xhtml#l00170">ConstTensorLayerVisitor.cpp:170</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_counter_xhtml_ab13844df5477a9ab8f13069e3d8abad6"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_counter.xhtml#ab13844df5477a9ab8f13069e3d8abad6">armnn::profiling::Counter::m_Name</a></div><div class="ttdeci">std::string m_Name</div><div class="ttdef"><b>Definition:</b> <a href="_i_counter_directory_8hpp_source.xhtml#l00130">ICounterDirectory.hpp:130</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#l00149">GatordMockService.cpp:149</a></div></div>
<div class="ttc" id="classarmnn_1_1gatordmock_1_1_periodic_counter_capture_command_handler_xhtml_a9626b6860f10b55ee178d0b340627a8d"><div class="ttname"><a href="classarmnn_1_1gatordmock_1_1_periodic_counter_capture_command_handler.xhtml#a9626b6860f10b55ee178d0b340627a8d">armnn::gatordmock::PeriodicCounterCaptureCommandHandler::m_CounterCaptureValues</a></div><div class="ttdeci">CounterCaptureValues m_CounterCaptureValues</div><div class="ttdef"><b>Definition:</b> <a href="_periodic_counter_capture_command_handler_8hpp_source.xhtml#l00046">PeriodicCounterCaptureCommandHandler.hpp:46</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_i_counter_directory_xhtml_a81881e3910b23455b46ec30c8420c695"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#a81881e3910b23455b46ec30c8420c695">armnn::profiling::ICounterDirectory::GetCounter</a></div><div class="ttdeci">virtual const Counter * GetCounter(uint16_t uid) const =0</div></div>
<div class="ttc" id="structarmnn_1_1gatordmock_1_1_counter_capture_values_xhtml_af697af5118a291003f6aaeb195fe67a4"><div class="ttname"><a href="structarmnn_1_1gatordmock_1_1_counter_capture_values.xhtml#af697af5118a291003f6aaeb195fe67a4">armnn::gatordmock::CounterCaptureValues::m_Uids</a></div><div class="ttdeci">std::vector&lt; uint16_t &gt; m_Uids</div><div class="ttdef"><b>Definition:</b> <a href="_periodic_counter_capture_command_handler_8hpp_source.xhtml#l00022">PeriodicCounterCaptureCommandHandler.hpp:22</a></div></div>
<div class="ttc" id="namespacearmnn_1_1profiling_xhtml_acb0c054138599582d5a5f537e9798806a1dc1edc76d5b3c0325f00002f4c841f5"><div class="ttname"><a href="namespacearmnn_1_1profiling.xhtml#acb0c054138599582d5a5f537e9798806a1dc1edc76d5b3c0325f00002f4c841f5">armnn::profiling::ProfilingState::WaitingForAck</a></div></div>
<div class="ttc" id="_timeline_directory_capture_command_handler_8hpp_xhtml"><div class="ttname"><a href="_timeline_directory_capture_command_handler_8hpp.xhtml">TimelineDirectoryCaptureCommandHandler.hpp</a></div></div>
<div class="ttc" id="classarmnn_1_1gatordmock_1_1_periodic_counter_capture_command_handler_xhtml"><div class="ttname"><a href="classarmnn_1_1gatordmock_1_1_periodic_counter_capture_command_handler.xhtml">armnn::gatordmock::PeriodicCounterCaptureCommandHandler</a></div><div class="ttdef"><b>Definition:</b> <a href="_periodic_counter_capture_command_handler_8hpp_source.xhtml#l00026">PeriodicCounterCaptureCommandHandler.hpp:26</a></div></div>
<div class="ttc" id="namespacearmnn_1_1profiling_xhtml_a79be042e55fdf16ca562f14cd15d9aa6"><div class="ttname"><a href="namespacearmnn_1_1profiling.xhtml#a79be042e55fdf16ca562f14cd15d9aa6">armnn::profiling::WriteUint64</a></div><div class="ttdeci">void WriteUint64(const std::unique_ptr&lt; IPacketBuffer &gt; &amp;packetBuffer, unsigned int offset, uint64_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="namespacearmnn_1_1profiling_xhtml_af55bc6e5233a4720fe8a813db470b06f"><div class="ttname"><a href="namespacearmnn_1_1profiling.xhtml#af55bc6e5233a4720fe8a813db470b06f">armnn::profiling::Categories</a></div><div class="ttdeci">std::unordered_set&lt; CategoryPtr &gt; Categories</div><div class="ttdef"><b>Definition:</b> <a href="_i_counter_directory_8hpp_source.xhtml#l00037">ICounterDirectory.hpp:37</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_i_counter_directory_xhtml_aef59fdca57a5bb822e22cacfc5836fab"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#aef59fdca57a5bb822e22cacfc5836fab">armnn::profiling::ICounterDirectory::GetCounterSetCount</a></div><div class="ttdeci">virtual uint16_t GetCounterSetCount() const =0</div></div>
<div class="ttc" id="namespacearmnn_1_1profiling_xhtml_acb0c054138599582d5a5f537e9798806a962074a9de1cf3d6d7b6f955a0a94820"><div class="ttname"><a href="namespacearmnn_1_1profiling.xhtml#acb0c054138599582d5a5f537e9798806a962074a9de1cf3d6d7b6f955a0a94820">armnn::profiling::ProfilingState::Uninitialised</a></div></div>
<div class="ttc" id="classarmnn_1_1gatordmock_1_1_gatord_mock_service_xhtml"><div class="ttname"><a href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml">armnn::gatordmock::GatordMockService</a></div><div class="ttdoc">A class that implements a Mock Gatord server. </div><div class="ttdef"><b>Definition:</b> <a href="_gatord_mock_service_8hpp_source.xhtml#l00037">GatordMockService.hpp:37</a></div></div>
<div class="ttc" id="_profiler_tests_8cpp_xhtml_af7f71af5c6c124222dd1c42c5df892f4"><div class="ttname"><a href="_profiler_tests_8cpp.xhtml#af7f71af5c6c124222dd1c42c5df892f4">BOOST_AUTO_TEST_SUITE_END</a></div><div class="ttdeci">BOOST_AUTO_TEST_SUITE_END()</div></div>
<div class="ttc" id="classarmnn_1_1timelinedecoder_1_1_timeline_directory_capture_command_handler_xhtml"><div class="ttname"><a href="classarmnn_1_1timelinedecoder_1_1_timeline_directory_capture_command_handler.xhtml">armnn::timelinedecoder::TimelineDirectoryCaptureCommandHandler</a></div><div class="ttdef"><b>Definition:</b> <a href="_timeline_directory_capture_command_handler_8hpp_source.xhtml#l00019">TimelineDirectoryCaptureCommandHandler.hpp:19</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_profiling_service_xhtml"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_profiling_service.xhtml">armnn::profiling::ProfilingService</a></div><div class="ttdef"><b>Definition:</b> <a href="_profiling_service_8hpp_source.xhtml#l00042">ProfilingService.hpp:42</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_counter_xhtml_a5edaa2326b1410fae32c5253ed0188d8"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_counter.xhtml#a5edaa2326b1410fae32c5253ed0188d8">armnn::profiling::Counter::m_Description</a></div><div class="ttdeci">std::string m_Description</div><div class="ttdef"><b>Definition:</b> <a href="_i_counter_directory_8hpp_source.xhtml#l00131">ICounterDirectory.hpp:131</a></div></div>
<div class="ttc" id="namespacestd_1_1chrono__literals_xhtml"><div class="ttname"><a href="namespacestd_1_1chrono__literals.xhtml">chrono_literals</a></div></div>
<div class="ttc" id="classarmnn_1_1gatordmock_1_1_stream_metadata_command_handler_xhtml"><div class="ttname"><a href="classarmnn_1_1gatordmock_1_1_stream_metadata_command_handler.xhtml">armnn::gatordmock::StreamMetadataCommandHandler</a></div><div class="ttdef"><b>Definition:</b> <a href="_stream_metadata_command_handler_8hpp_source.xhtml#l00026">StreamMetadataCommandHandler.hpp:26</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_i_counter_directory_xhtml_ad9fa9b8364fcaa2c940ef8e78eff8df2"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#ad9fa9b8364fcaa2c940ef8e78eff8df2">armnn::profiling::ICounterDirectory::GetCounters</a></div><div class="ttdeci">virtual const Counters &amp; GetCounters() const =0</div></div>
<div class="ttc" id="namespacearmnn_1_1profiling_xhtml_a3ff1066867cb9bd3b08338957c414401"><div class="ttname"><a href="namespacearmnn_1_1profiling.xhtml#a3ff1066867cb9bd3b08338957c414401">armnn::profiling::Devices</a></div><div class="ttdeci">std::unordered_map&lt; uint16_t, DevicePtr &gt; Devices</div><div class="ttdef"><b>Definition:</b> <a href="_i_counter_directory_8hpp_source.xhtml#l00038">ICounterDirectory.hpp:38</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#l00166">GatordMockService.cpp:166</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="_profiling_mocks_8hpp_xhtml"><div class="ttname"><a href="_profiling_mocks_8hpp.xhtml">ProfilingMocks.hpp</a></div></div>
<div class="ttc" id="_file_only_profiling_decorator_tests_8cpp_xhtml_a6560146509197f3e197d8d36f76c1347"><div class="ttname"><a href="_file_only_profiling_decorator_tests_8cpp.xhtml#a6560146509197f3e197d8d36f76c1347">options</a></div><div class="ttdeci">armnn::Runtime::CreationOptions::ExternalProfilingOptions options</div><div class="ttdef"><b>Definition:</b> <a href="_file_only_profiling_decorator_tests_8cpp_source.xhtml#l00045">FileOnlyProfilingDecoratorTests.cpp:45</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_profiling_service_xhtml_adfaa32654e05eab63b2adc34b2138475"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_profiling_service.xhtml#adfaa32654e05eab63b2adc34b2138475">armnn::profiling::ProfilingService::GetCounterDirectory</a></div><div class="ttdeci">const ICounterDirectory &amp; GetCounterDirectory() const</div><div class="ttdef"><b>Definition:</b> <a href="_profiling_service_8cpp_source.xhtml#l00199">ProfilingService.cpp:199</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_i_counter_directory_xhtml"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml">armnn::profiling::ICounterDirectory</a></div><div class="ttdef"><b>Definition:</b> <a href="_i_counter_directory_8hpp_source.xhtml#l00139">ICounterDirectory.hpp:139</a></div></div>
<div class="ttc" id="classarmnn_1_1gatordmock_1_1_gatord_mock_service_xhtml_a4c7dcda01e81dbdc47ceb1c82f26039b"><div class="ttname"><a href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a4c7dcda01e81dbdc47ceb1c82f26039b">armnn::gatordmock::GatordMockService::BlockForOneClient</a></div><div class="ttdeci">armnnUtils::Sockets::Socket BlockForOneClient()</div><div class="ttdoc">Block waiting to accept one client to connect to the UDS. </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_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#l00129">GatordMockService.cpp:129</a></div></div>
<div class="ttc" id="_profiling_service_8hpp_xhtml"><div class="ttname"><a href="_profiling_service_8hpp.xhtml">ProfilingService.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="dir_f1cd4d246a0ed23645c55e9fa28e525a.xhtml">tests</a></li><li class="navelem"><a class="el" href="_gatord_mock_tests_8cpp.xhtml">GatordMockTests.cpp</a></li>
    <li class="footer">Generated on Fri Mar 13 2020 16:09:13 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>