aboutsummaryrefslogtreecommitdiff
path: root/21.02/_gatord_mock_tests_8cpp_source.xhtml
blob: de54f17fab467803e6bd2908ad86b8c9ed303c1d (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
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
<!-- 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">21.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 and Contributors. 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;common/include/CommandHandlerRegistry.hpp&gt;</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &lt;server/include/basePipeServer/ConnectionHandler.hpp&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="_directory_capture_command_handler_8hpp.xhtml">DirectoryCaptureCommandHandler.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="_labels_and_event_classes_8hpp.xhtml">LabelsAndEventClasses.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="_profiling_service_8hpp.xhtml">ProfilingService.hpp</a>&gt;</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_timeline_packet_writer_factory_8hpp.xhtml">TimelinePacketWriterFactory.hpp</a>&gt;</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_numeric_cast_8hpp.xhtml">armnn/utility/NumericCast.hpp</a>&gt;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &lt;server/include/timelineDecoder/TimelineDirectoryCaptureCommandHandler.hpp&gt;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &lt;server/include/timelineDecoder/TimelineDecoder.hpp&gt;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_runtime_8hpp.xhtml">Runtime.hpp</a>&gt;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_mock_backend_8hpp.xhtml">MockBackend.hpp</a>&gt;</span></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="preprocessor">#include &lt;boost/test/test_tools.hpp&gt;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;boost/test/unit_test_suite.hpp&gt;</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</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="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacearmnn.xhtml">armnn</a>;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacestd_1_1this__thread.xhtml">std::this_thread</a>;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</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="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="_gatord_mock_tests_8cpp.xhtml#a8b02cdd10cf4143333b67a42304a5e76">   32</a></span>&#160;<a class="code" href="namespacearmnn.xhtml#a10d15f3df1ab52b3b915a4be1dbf386b">BOOST_AUTO_TEST_CASE</a>(CounterCaptureHandlingTest)</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;{</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    arm::pipe::PacketVersionResolver packetVersionResolver;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    <span class="comment">// Data with timestamp, counter idx &amp; counter values</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    std::vector&lt;std::pair&lt;uint16_t, uint32_t&gt;&gt; indexValuePairs;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    indexValuePairs.reserve(5);</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;(0, 100));</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;(1, 200));</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    indexValuePairs.emplace_back(std::make_pair&lt;uint16_t, uint32_t&gt;(2, 300));</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    indexValuePairs.emplace_back(std::make_pair&lt;uint16_t, uint32_t&gt;(3, 400));</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    indexValuePairs.emplace_back(std::make_pair&lt;uint16_t, uint32_t&gt;(4, 500));</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">// ((uint16_t (2 bytes) + uint32_t (4 bytes)) * 5) + word1 + word2</span></div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    uint32_t dataLength = 38;</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    <span class="comment">// Simulate two different packets incoming 500 ms apart</span></div><div class="line"><a name="l00049"></a><span class="lineno">   49</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="l00050"></a><span class="lineno">   50</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="l00051"></a><span class="lineno">   51</span>&#160;            .count());</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    uint64_t time2 = time + 5000;</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    <span class="comment">// UniqueData required for Packet class</span></div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    std::unique_ptr&lt;unsigned char[]&gt; uniqueData1 = 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>* 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="l00058"></a><span class="lineno">   58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    std::unique_ptr&lt;unsigned char[]&gt; uniqueData2 = std::make_unique&lt;unsigned char[]&gt;(dataLength);</div><div class="line"><a name="l00060"></a><span class="lineno">   60</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="l00061"></a><span class="lineno">   61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    uint32_t sizeOfUint64 = <a class="code" href="namespacearmnn.xhtml#a375ca3cff9f1b005d1412dc5f3cf5b6e">armnn::numeric_cast</a>&lt;uint32_t&gt;(<span class="keyword">sizeof</span>(uint64_t));</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    uint32_t sizeOfUint32 = <a class="code" href="namespacearmnn.xhtml#a375ca3cff9f1b005d1412dc5f3cf5b6e">armnn::numeric_cast</a>&lt;uint32_t&gt;(<span class="keyword">sizeof</span>(uint32_t));</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    uint32_t sizeOfUint16 = <a class="code" href="namespacearmnn.xhtml#a375ca3cff9f1b005d1412dc5f3cf5b6e">armnn::numeric_cast</a>&lt;uint32_t&gt;(<span class="keyword">sizeof</span>(uint16_t));</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    <span class="comment">// Offset index to point to mem address</span></div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    uint32_t offset = 0;</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    <a class="code" href="namespacearmnn_1_1profiling.xhtml#a79be042e55fdf16ca562f14cd15d9aa6">profiling::WriteUint64</a>(data1, offset, time);</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    offset += sizeOfUint64;</div><div class="line"><a name="l00070"></a><span class="lineno">   70</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="l00071"></a><span class="lineno">   71</span>&#160;    {</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;        <a class="code" href="namespacearmnn_1_1profiling.xhtml#ae5ace88c65e65ab7cf5572613601a60d">profiling::WriteUint16</a>(data1, offset, pair.first);</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;        offset += sizeOfUint16;</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;        <a class="code" href="namespacearmnn_1_1profiling.xhtml#a3e638748a39d46e2943dfcef94dcb828">profiling::WriteUint32</a>(data1, offset, pair.second);</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;        offset += sizeOfUint32;</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;</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    offset = 0;</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    <a class="code" href="namespacearmnn_1_1profiling.xhtml#a79be042e55fdf16ca562f14cd15d9aa6">profiling::WriteUint64</a>(data2, offset, time2);</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    offset += sizeOfUint64;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</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="l00083"></a><span class="lineno">   83</span>&#160;    {</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;        <a class="code" href="namespacearmnn_1_1profiling.xhtml#ae5ace88c65e65ab7cf5572613601a60d">profiling::WriteUint16</a>(data2, offset, pair.first);</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        offset += sizeOfUint16;</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;        <a class="code" href="namespacearmnn_1_1profiling.xhtml#a3e638748a39d46e2943dfcef94dcb828">profiling::WriteUint32</a>(data2, offset, pair.second);</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;        offset += sizeOfUint32;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    }</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    uint32_t headerWord1 = packetVersionResolver.ResolvePacketVersion(0, 4).GetEncodedValue();</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    <span class="comment">// Create packet to send through to the command functor</span></div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    arm::pipe::Packet packet1(headerWord1, dataLength, uniqueData1);</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    arm::pipe::Packet packet2(headerWord1, dataLength, uniqueData2);</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    <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="l00096"></a><span class="lineno">   96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    <span class="comment">// Simulate two separate packets coming in to calculate period</span></div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    commandHandler(packet1);</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    commandHandler(packet2);</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    <a class="code" href="_assert_8hpp.xhtml#a5698be69cbd5dfe6c28fcd9867e8cbed">ARMNN_ASSERT</a>(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="l00102"></a><span class="lineno">  102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno">  103</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="l00104"></a><span class="lineno">  104</span>&#160;    {</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;        <a class="code" href="_assert_8hpp.xhtml#a5698be69cbd5dfe6c28fcd9867e8cbed">ARMNN_ASSERT</a>(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="l00106"></a><span class="lineno">  106</span>&#160;    }</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;</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="_gatord_mock_tests_8cpp.xhtml#a7314a0227c37040f98b89c54d9bde720">  109</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="_gatord_mock_tests_8cpp.xhtml#a7314a0227c37040f98b89c54d9bde720">WaitFor</a>(std::function&lt;<span class="keywordtype">bool</span>()&gt; predicate, std::string errorMsg, uint32_t timeout = 2000, uint32_t sleepTime = 50)</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;    uint32_t timeSlept = 0;</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    <span class="keywordflow">while</span> (!predicate())</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    {</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        <span class="keywordflow">if</span> (timeSlept &gt;= timeout)</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;            BOOST_FAIL(<span class="stringliteral">&quot;Timeout: &quot;</span> + errorMsg);</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;        }</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;        std::this_thread::sleep_for(std::chrono::milliseconds(sleepTime));</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;        timeSlept += sleepTime;</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;}</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="_gatord_mock_tests_8cpp.xhtml#aa9e55a43e26d350d55ef8ed99cd0b44e">  123</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="_gatord_mock_tests_8cpp.xhtml#aa9e55a43e26d350d55ef8ed99cd0b44e">CheckTimelineDirectory</a>(arm::pipe::TimelineDirectoryCaptureCommandHandler&amp; commandHandler)</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;    uint32_t uint8_t_size  = <span class="keyword">sizeof</span>(uint8_t);</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    uint32_t <a class="code" href="namespacearmnn_1_1profiling.xhtml#aabcf5c25522e8a0542c95174056cfcac">uint32_t_size</a> = <span class="keyword">sizeof</span>(uint32_t);</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    uint32_t uint64_t_size = <span class="keyword">sizeof</span>(uint64_t);</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    uint32_t threadId_size = <span class="keyword">sizeof</span>(int);</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    <a class="code" href="classarmnn_1_1profiling_1_1_buffer_manager.xhtml">profiling::BufferManager</a> bufferManager(5);</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    <a class="code" href="classarmnn_1_1profiling_1_1_timeline_packet_writer_factory.xhtml">profiling::TimelinePacketWriterFactory</a> timelinePacketWriterFactory(bufferManager);</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;    std::unique_ptr&lt;profiling::ISendTimelinePacket&gt; sendTimelinePacket =</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;            timelinePacketWriterFactory.<a class="code" href="classarmnn_1_1profiling_1_1_timeline_packet_writer_factory.xhtml#a169a8836d1862bc9ed922e124e905302">GetSendTimelinePacket</a>();</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    sendTimelinePacket-&gt;SendTimelineMessageDirectoryPackage();</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    sendTimelinePacket-&gt;Commit();</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    std::vector&lt;arm::pipe::SwTraceMessage&gt; swTraceBufferMessages;</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> offset = uint32_t_size * 2;</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    std::unique_ptr&lt;profiling::IPacketBuffer&gt; packetBuffer = bufferManager.<a class="code" href="classarmnn_1_1profiling_1_1_buffer_manager.xhtml#abce8709dc1b666a26f427ba7ff08b737">GetReadableBuffer</a>();</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    uint8_t readStreamVersion = <a class="code" href="namespacearmnn_1_1profiling.xhtml#a74b483b652cc32f03151b10a1366d607">ReadUint8</a>(packetBuffer, offset);</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;    BOOST_CHECK(readStreamVersion == 4);</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    offset += uint8_t_size;</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    uint8_t readPointerBytes = <a class="code" href="namespacearmnn_1_1profiling.xhtml#a74b483b652cc32f03151b10a1366d607">ReadUint8</a>(packetBuffer, offset);</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    BOOST_CHECK(readPointerBytes == uint64_t_size);</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    offset += uint8_t_size;</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    uint8_t readThreadIdBytes = <a class="code" href="namespacearmnn_1_1profiling.xhtml#a74b483b652cc32f03151b10a1366d607">ReadUint8</a>(packetBuffer, offset);</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    BOOST_CHECK(readThreadIdBytes == threadId_size);</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    offset += uint8_t_size;</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    uint32_t declarationSize = <a class="code" href="namespacearmnn_1_1profiling.xhtml#ad56f4c3ea5e88279bb6ef1f31d9dc6df">profiling::ReadUint32</a>(packetBuffer, offset);</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;    offset += <a class="code" href="namespacearmnn_1_1profiling.xhtml#aabcf5c25522e8a0542c95174056cfcac">uint32_t_size</a>;</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    <span class="keywordflow">for</span>(uint32_t i = 0; i &lt; declarationSize; ++i)</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    {</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;        swTraceBufferMessages.push_back(arm::pipe::ReadSwTraceMessage(packetBuffer-&gt;GetReadableData(),</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;                                                                      offset,</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;                                                                      packetBuffer-&gt;GetSize()));</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;</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    <span class="keywordflow">for</span>(uint32_t index = 0; index &lt; declarationSize; ++index)</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;        arm::pipe::SwTraceMessage&amp; bufferMessage = swTraceBufferMessages[index];</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;        arm::pipe::SwTraceMessage&amp; handlerMessage = commandHandler.m_SwTraceMessages[index];</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;        BOOST_CHECK(bufferMessage.m_Name == handlerMessage.m_Name);</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;        BOOST_CHECK(bufferMessage.m_UiName == handlerMessage.m_UiName);</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;        BOOST_CHECK(bufferMessage.m_Id == handlerMessage.m_Id);</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;        BOOST_CHECK(bufferMessage.m_ArgTypes.size() == handlerMessage.m_ArgTypes.size());</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;        <span class="keywordflow">for</span>(uint32_t i = 0; i &lt; bufferMessage.m_ArgTypes.size(); ++i)</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;        {</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;            BOOST_CHECK(bufferMessage.m_ArgTypes[i] == handlerMessage.m_ArgTypes[i]);</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;</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;        BOOST_CHECK(bufferMessage.m_ArgNames.size() == handlerMessage.m_ArgNames.size());</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;        <span class="keywordflow">for</span>(uint32_t i = 0; i &lt; bufferMessage.m_ArgNames.size(); ++i)</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;        {</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;            BOOST_CHECK(bufferMessage.m_ArgNames[i] == handlerMessage.m_ArgNames[i]);</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;        }</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;    }</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;</div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="_gatord_mock_tests_8cpp.xhtml#a176f89f0b782dec05cef139f5b91101d">  187</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="_gatord_mock_tests_8cpp.xhtml#a176f89f0b782dec05cef139f5b91101d">CheckTimelinePackets</a>(arm::pipe::TimelineDecoder&amp; timelineDecoder)</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;{</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; <span class="comment">// Use a postfix increment to avoid changing indexes each time the packet gets updated.</span></div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_Labels[i].m_Guid == <a class="code" href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#af22d8b04133c4b68f4320d6c98dc9502">profiling::LabelsAndEventClasses::NAME_GUID</a>);</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_Labels[i++].m_Name == <a class="code" href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#a62c5a90dbe514aaaf8a39ef435eeb3a8">profiling::LabelsAndEventClasses::NAME_LABEL</a>);</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;    BOOST_CHECK(timelineDecoder.GetModel().m_Labels[i].m_Guid == <a class="code" href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#adb91c720887d6f0e45daf196741a5a0b">profiling::LabelsAndEventClasses::TYPE_GUID</a>);</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_Labels[i++].m_Name == <a class="code" href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#abe9d22d5da1348183894c0b8d1db9fad">profiling::LabelsAndEventClasses::TYPE_LABEL</a>);</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_Labels[i].m_Guid == <a class="code" href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#a28bee8fd642c7718de3df93e0342644f">profiling::LabelsAndEventClasses::INDEX_GUID</a>);</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_Labels[i++].m_Name == <a class="code" href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#ada8a8ab1d037ceced96d7fc62ab80c2d">profiling::LabelsAndEventClasses::INDEX_LABEL</a>);</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;    BOOST_CHECK(timelineDecoder.GetModel().m_Labels[i].m_Guid == <a class="code" href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#ade2233e4c4600c2353dbdd1729977872">profiling::LabelsAndEventClasses::BACKENDID_GUID</a>);</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_Labels[i++].m_Name == <a class="code" href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#aca2c34e798557b2efa2a81a852449e99">profiling::LabelsAndEventClasses::BACKENDID_LABEL</a>);</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_Labels[i].m_Guid == <a class="code" href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#a1caad872d87e206434faf5ca051cf36c">profiling::LabelsAndEventClasses::CHILD_GUID</a>);</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_Labels[i++].m_Name == <a class="code" href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#a17635e315ec5b74687b521a0135bd759">profiling::LabelsAndEventClasses::CHILD_LABEL</a>);</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_Labels[i].m_Guid == <a class="code" href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#a9b431866f8b82e77c6ed26c119078ff8">profiling::LabelsAndEventClasses::EXECUTION_OF_GUID</a>);</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_Labels[i++].m_Name ==</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;                <a class="code" href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#a3bb2c8f84189e71a6b9e96156f590665">profiling::LabelsAndEventClasses::EXECUTION_OF_LABEL</a>);</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_Labels[i].m_Guid == <a class="code" href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#a0c786c3e4560c019deef4d6fc63b847b">profiling::LabelsAndEventClasses::PROCESS_ID_GUID</a>);</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_Labels[i++].m_Name ==</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;                <a class="code" href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#a32781b19f1f956b2d8c0c703b093f93f">profiling::LabelsAndEventClasses::PROCESS_ID_LABEL</a>);</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_Labels[i].m_Guid == <a class="code" href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#a939d115d7a078087c7a826bf2c65bcb4">profiling::LabelsAndEventClasses::LAYER_GUID</a>);</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_Labels[i++].m_Name == <a class="code" href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#a12eb35b84849b5d5c895481f6b09a282">profiling::LabelsAndEventClasses::LAYER</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;    BOOST_CHECK(timelineDecoder.GetModel().m_Labels[i].m_Guid == <a class="code" href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#a6d5d1a547ba9c92694347fc71ddf0e18">profiling::LabelsAndEventClasses::WORKLOAD_GUID</a>);</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_Labels[i++].m_Name == <a class="code" href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#a45ee4859ef7343e8748154aef20e5873">profiling::LabelsAndEventClasses::WORKLOAD</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;    BOOST_CHECK(timelineDecoder.GetModel().m_Labels[i].m_Guid == <a class="code" href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#a2803368c101910905392bc7edd4c9cc5">profiling::LabelsAndEventClasses::NETWORK_GUID</a>);</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_Labels[i++].m_Name == <a class="code" href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#aedf6dd387391b88ee403e922ec73af0e">profiling::LabelsAndEventClasses::NETWORK</a>);</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;    BOOST_CHECK(timelineDecoder.GetModel().m_Labels[i].m_Guid == <a class="code" href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#ab2c48043328356b5ec556dd5284a4138">profiling::LabelsAndEventClasses::CONNECTION_GUID</a>);</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_Labels[i++].m_Name == <a class="code" href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#ade6c7354c6b3091676e9aa493406cba1">profiling::LabelsAndEventClasses::CONNECTION</a>);</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_Labels[i].m_Guid == <a class="code" href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#ae3da9252fb4310cb359c5d64a5573926">profiling::LabelsAndEventClasses::INFERENCE_GUID</a>);</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_Labels[i++].m_Name == <a class="code" href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#a91cd46752a820295fde06a27f90383ac">profiling::LabelsAndEventClasses::INFERENCE</a>);</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;    BOOST_CHECK(timelineDecoder.GetModel().m_Labels[i].m_Guid ==</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;                <a class="code" href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#a793b484a75929738ea46016d2190ab5c">profiling::LabelsAndEventClasses::WORKLOAD_EXECUTION_GUID</a>);</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_Labels[i++].m_Name ==</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;                <a class="code" href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#a7b8bdeba7d18219009027bbac26a1af4">profiling::LabelsAndEventClasses::WORKLOAD_EXECUTION</a>);</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_EventClasses[0].m_Guid ==</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;                <a class="code" href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#a75123df426e55b7e9c218704cb52120f">profiling::LabelsAndEventClasses::ARMNN_PROFILING_SOL_EVENT_CLASS</a>);</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_EventClasses[1].m_Guid ==</div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;                <a class="code" href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#abff887aa42263e0816432cdd0987e27d">profiling::LabelsAndEventClasses::ARMNN_PROFILING_EOL_EVENT_CLASS</a>);</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"><a class="line" href="_gatord_mock_tests_8cpp.xhtml#a95b346e0dd2dec2ca7426bbb4d4f73dc">  239</a></span>&#160;<a class="code" href="namespacearmnn.xhtml#a10d15f3df1ab52b3b915a4be1dbf386b">BOOST_AUTO_TEST_CASE</a>(GatorDMockEndToEnd)</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;{</div><div class="line"><a name="l00241"></a><span class="lineno">  241</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="l00242"></a><span class="lineno">  242</span>&#160;    <span class="comment">// performance data.</span></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="comment">// Setup the mock service to bind to the UDS.</span></div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;    std::string udsNamespace = <span class="stringliteral">&quot;gatord_namespace&quot;</span>;</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;    BOOST_CHECK_NO_THROW(arm::pipe::ConnectionHandler connectionHandler(udsNamespace, <span class="keyword">false</span>));</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;    arm::pipe::ConnectionHandler connectionHandler(udsNamespace, <span class="keyword">false</span>);</div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;    <span class="comment">// Enable the profiling service.</span></div><div class="line"><a name="l00252"></a><span class="lineno">  252</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> options;</div><div class="line"><a name="l00253"></a><span class="lineno">  253</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="l00254"></a><span class="lineno">  254</span>&#160;    options.<a class="code" href="structarmnn_1_1_i_runtime_1_1_creation_options_1_1_external_profiling_options.xhtml#a5b304d775657afbf1fb724af57add374">m_TimelineEnabled</a> = <span class="keyword">true</span>;</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;    <a class="code" href="classarmnn_1_1profiling_1_1_profiling_service.xhtml">armnn::profiling::ProfilingService</a> profilingService;</div><div class="line"><a name="l00257"></a><span class="lineno">  257</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="l00258"></a><span class="lineno">  258</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;    <span class="comment">// Bring the profiling service to the &quot;WaitingForAck&quot; state</span></div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;    BOOST_CHECK(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="l00261"></a><span class="lineno">  261</span>&#160;    profilingService.<a class="code" href="classarmnn_1_1profiling_1_1_profiling_service.xhtml#aec0783b5a136e042adcc47bae4fe5291">Update</a>();</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;    BOOST_CHECK(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="l00263"></a><span class="lineno">  263</span>&#160;    profilingService.<a class="code" href="classarmnn_1_1profiling_1_1_profiling_service.xhtml#aec0783b5a136e042adcc47bae4fe5291">Update</a>();</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;    <span class="comment">// Connect the profiling service</span></div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;    <span class="keyword">auto</span> basePipeServer = connectionHandler.GetNewBasePipeServer(<span class="keyword">false</span>);</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">// Connect the profiling service to the mock Gatord.</span></div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;    <a class="code" href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml">gatordmock::GatordMockService</a> mockService(std::move(basePipeServer), <span class="keyword">false</span>);</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;    arm::pipe::TimelineDecoder&amp; timelineDecoder = mockService.<a class="code" href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#ae52624d07e7ca9bd28070467217caba9">GetTimelineDecoder</a>();</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;    <a class="code" href="classarmnn_1_1profiling_1_1_directory_capture_command_handler.xhtml">profiling::DirectoryCaptureCommandHandler</a>&amp; directoryCaptureCommandHandler =</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;         mockService.<a class="code" href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a7f980dbcb21ac67ae197f2781d67532c">GetDirectoryCaptureCommandHandler</a>();</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;</div><div class="line"><a name="l00275"></a><span class="lineno">  275</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="l00276"></a><span class="lineno">  276</span>&#160;    <a class="code" href="_gatord_mock_tests_8cpp.xhtml#a7314a0227c37040f98b89c54d9bde720">WaitFor</a>([&amp;](){<span class="keywordflow">return</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="l00277"></a><span class="lineno">  277</span>&#160;            <span class="stringliteral">&quot;Profiling service did not switch to WaitingForAck state&quot;</span>);</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;    profilingService.<a class="code" href="classarmnn_1_1profiling_1_1_profiling_service.xhtml#aec0783b5a136e042adcc47bae4fe5291">Update</a>();</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;    <span class="comment">// Read the stream metadata on the mock side.</span></div><div class="line"><a name="l00281"></a><span class="lineno">  281</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="l00282"></a><span class="lineno">  282</span>&#160;    {</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;        BOOST_FAIL(<span class="stringliteral">&quot;Failed to receive StreamMetaData&quot;</span>);</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;    <span class="comment">// Send Ack from GatorD</span></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#a41eaa65cf4e7212f09b04d06c130cd83">SendConnectionAck</a>();</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;    <span class="comment">// And start to listen for packets</span></div><div class="line"><a name="l00288"></a><span class="lineno">  288</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="l00289"></a><span class="lineno">  289</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;    <a class="code" href="_gatord_mock_tests_8cpp.xhtml#a7314a0227c37040f98b89c54d9bde720">WaitFor</a>([&amp;](){<span class="keywordflow">return</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="l00291"></a><span class="lineno">  291</span>&#160;            <span class="stringliteral">&quot;Profiling service did not switch to Active state&quot;</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;    <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="l00294"></a><span class="lineno">  294</span>&#160;    <a class="code" href="_gatord_mock_tests_8cpp.xhtml#a7314a0227c37040f98b89c54d9bde720">WaitFor</a>([&amp;](){<span class="keywordflow">return</span> directoryCaptureCommandHandler.<a class="code" href="classarmnn_1_1profiling_1_1_directory_capture_command_handler.xhtml#a7877b37f88f6d9d8743b492a2970c837">ParsedCounterDirectory</a>();},</div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;            <span class="stringliteral">&quot;MockGatord did not receive counter directory packet&quot;</span>);</div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;</div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;    <span class="comment">// Following that we will receive a collection of well known timeline labels and event classes</span></div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;    <a class="code" href="_gatord_mock_tests_8cpp.xhtml#a7314a0227c37040f98b89c54d9bde720">WaitFor</a>([&amp;](){<span class="keywordflow">return</span> timelineDecoder.GetModel().m_EventClasses.size() &gt;= 2;},</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;            <span class="stringliteral">&quot;MockGatord did not receive well known timeline labels and event classes&quot;</span>);</div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;    <a class="code" href="_gatord_mock_tests_8cpp.xhtml#aa9e55a43e26d350d55ef8ed99cd0b44e">CheckTimelineDirectory</a>(mockService.<a class="code" href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a450b29f889e2693f7f7a88cc8af12b6e">GetTimelineDirectoryCaptureCommandHandler</a>());</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;    <span class="comment">// Verify the commonly used timeline packets sent when the profiling service enters the active state</span></div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;    <a class="code" href="_gatord_mock_tests_8cpp.xhtml#a176f89f0b782dec05cef139f5b91101d">CheckTimelinePackets</a>(timelineDecoder);</div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;</div><div class="line"><a name="l00305"></a><span class="lineno">  305</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="l00306"></a><span class="lineno">  306</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.<a class="code" href="classarmnn_1_1profiling_1_1_directory_capture_command_handler.xhtml#adfaa32654e05eab63b2adc34b2138475">GetCounterDirectory</a>();</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;</div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;    <span class="comment">// Compare the basics of the counter directory from the service and the one we received over the wire.</span></div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;    BOOST_CHECK(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="l00310"></a><span class="lineno">  310</span>&#160;    BOOST_CHECK(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="l00311"></a><span class="lineno">  311</span>&#160;    BOOST_CHECK(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="l00312"></a><span class="lineno">  312</span>&#160;    BOOST_CHECK(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="l00313"></a><span class="lineno">  313</span>&#160;</div><div class="line"><a name="l00314"></a><span class="lineno">  314</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="l00315"></a><span class="lineno">  315</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="l00316"></a><span class="lineno">  316</span>&#160;</div><div class="line"><a name="l00317"></a><span class="lineno">  317</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="l00318"></a><span class="lineno">  318</span>&#160;    <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; device : serviceDevices)</div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;    {</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;        <span class="comment">// Find the same device in the received counter directory.</span></div><div class="line"><a name="l00321"></a><span class="lineno">  321</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="l00322"></a><span class="lineno">  322</span>&#160;        BOOST_CHECK(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="l00323"></a><span class="lineno">  323</span>&#160;        BOOST_CHECK(device.second-&gt;m_Name.compare((*foundDevice).second-&gt;m_Name) == 0);</div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;        BOOST_CHECK(device.second-&gt;m_Cores == (*foundDevice).second-&gt;m_Cores);</div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;    }</div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;</div><div class="line"><a name="l00327"></a><span class="lineno">  327</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="l00328"></a><span class="lineno">  328</span>&#160;    <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; counterSet : serviceCounterSets)</div><div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;    {</div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;        <span class="comment">// Find the same counter set in the received counter directory.</span></div><div class="line"><a name="l00331"></a><span class="lineno">  331</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="l00332"></a><span class="lineno">  332</span>&#160;        BOOST_CHECK(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="l00333"></a><span class="lineno">  333</span>&#160;        BOOST_CHECK(counterSet.second-&gt;m_Name.compare((*foundCounterSet).second-&gt;m_Name) == 0);</div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;        BOOST_CHECK(counterSet.second-&gt;m_Count == (*foundCounterSet).second-&gt;m_Count);</div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;    }</div><div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;</div><div class="line"><a name="l00337"></a><span class="lineno">  337</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="l00338"></a><span class="lineno">  338</span>&#160;    <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; category : serviceCategories)</div><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;    {</div><div class="line"><a name="l00340"></a><span class="lineno">  340</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="l00341"></a><span class="lineno">  341</span>&#160;        {</div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;            <span class="keywordflow">if</span> (receivedCategory-&gt;m_Name.compare(category-&gt;m_Name) == 0)</div><div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;            {</div><div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;                <span class="comment">// We&#39;ve found the matching category.</span></div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;                <span class="comment">// Now look at the interiors of the counters. Start by sorting them.</span></div><div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;                std::sort(category-&gt;m_Counters.begin(), category-&gt;m_Counters.end());</div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;                std::sort(receivedCategory-&gt;m_Counters.begin(), receivedCategory-&gt;m_Counters.end());</div><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;                <span class="comment">// When comparing uid&#39;s here we need to translate them.</span></div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;                std::function&lt;bool(const uint16_t&amp;, const uint16_t&amp;)&gt; comparator =</div><div class="line"><a name="l00350"></a><span class="lineno">  350</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="l00351"></a><span class="lineno">  351</span>&#160;                        uint16_t translated = directoryCaptureCommandHandler.<a class="code" href="classarmnn_1_1profiling_1_1_directory_capture_command_handler.xhtml#a41a25ce1deeb5ac0ddbaa99bba961dc6">TranslateUIDCopyToOriginal</a>(second);</div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;                        <span class="keywordflow">if</span> (translated == first)</div><div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;                        {</div><div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;                            <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;                        }</div><div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;                        <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;                    };</div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;                <span class="comment">// Then let vector == do the work.</span></div><div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;                BOOST_CHECK(std::equal(category-&gt;m_Counters.begin(), category-&gt;m_Counters.end(),</div><div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;                                       receivedCategory-&gt;m_Counters.begin(), comparator));</div><div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;            }</div><div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;        }</div><div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;    }</div><div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;</div><div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;    <span class="comment">// Finally check the content of the counters.</span></div><div class="line"><a name="l00367"></a><span class="lineno">  367</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="l00368"></a><span class="lineno">  368</span>&#160;    <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; receivedCounter : receivedCounters)</div><div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;    {</div><div class="line"><a name="l00370"></a><span class="lineno">  370</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="l00371"></a><span class="lineno">  371</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="l00372"></a><span class="lineno">  372</span>&#160;        uint16_t translated = directoryCaptureCommandHandler.<a class="code" href="classarmnn_1_1profiling_1_1_directory_capture_command_handler.xhtml#a41a25ce1deeb5ac0ddbaa99bba961dc6">TranslateUIDCopyToOriginal</a>(receivedCounter.first);</div><div class="line"><a name="l00373"></a><span class="lineno">  373</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="l00374"></a><span class="lineno">  374</span>&#160;        BOOST_CHECK(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="l00375"></a><span class="lineno">  375</span>&#160;        BOOST_CHECK(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="l00376"></a><span class="lineno">  376</span>&#160;        BOOST_CHECK(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="l00377"></a><span class="lineno">  377</span>&#160;        BOOST_CHECK(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="l00378"></a><span class="lineno">  378</span>&#160;        BOOST_CHECK(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="l00379"></a><span class="lineno">  379</span>&#160;        BOOST_CHECK(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="l00380"></a><span class="lineno">  380</span>&#160;        BOOST_CHECK(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="l00381"></a><span class="lineno">  381</span>&#160;        BOOST_CHECK(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="l00382"></a><span class="lineno">  382</span>&#160;    }</div><div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;</div><div class="line"><a name="l00384"></a><span class="lineno">  384</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="l00385"></a><span class="lineno">  385</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="l00386"></a><span class="lineno">  386</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="l00387"></a><span class="lineno">  387</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="l00388"></a><span class="lineno">  388</span>&#160;    <span class="comment">// PeriodicCounterCapture data received. These are yet to be integrated.</span></div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;}</div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;</div><div class="line"><a name="l00391"></a><span class="lineno"><a class="line" href="_gatord_mock_tests_8cpp.xhtml#ad014a997058ab83c27843525f004adcc">  391</a></span>&#160;<a class="code" href="namespacearmnn.xhtml#a10d15f3df1ab52b3b915a4be1dbf386b">BOOST_AUTO_TEST_CASE</a>(GatorDMockTimeLineActivation)</div><div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;{</div><div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;    <span class="comment">// This test requires the CpuRef backend to be enabled</span></div><div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;    <span class="keywordflow">if</span>(!<a class="code" href="namespacearmnn.xhtml#ac2807505b850738bc8a1991ce669dd47">BackendRegistryInstance</a>().IsBackendRegistered(<span class="stringliteral">&quot;CpuRef&quot;</span>))</div><div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;    {</div><div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;    }</div><div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;    <a class="code" href="classarmnn_1_1_mock_backend_initialiser.xhtml">armnn::MockBackendInitialiser</a> initialiser;</div><div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;    <span class="comment">// Setup the mock service to bind to the UDS.</span></div><div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;    std::string udsNamespace = <span class="stringliteral">&quot;gatord_namespace&quot;</span>;</div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;</div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;    arm::pipe::ConnectionHandler connectionHandler(udsNamespace, <span class="keyword">false</span>);</div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;</div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;    <a class="code" href="structarmnn_1_1_i_runtime_1_1_creation_options.xhtml">armnn::IRuntime::CreationOptions</a> options;</div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;    options.<a class="code" href="structarmnn_1_1_i_runtime_1_1_creation_options.xhtml#a30412a91cadff138686eaeb12f5357cc">m_ProfilingOptions</a>.<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="l00406"></a><span class="lineno">  406</span>&#160;    options.<a class="code" href="structarmnn_1_1_i_runtime_1_1_creation_options.xhtml#a30412a91cadff138686eaeb12f5357cc">m_ProfilingOptions</a>.<a class="code" href="structarmnn_1_1_i_runtime_1_1_creation_options_1_1_external_profiling_options.xhtml#a5b304d775657afbf1fb724af57add374">m_TimelineEnabled</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;    <a class="code" href="structarmnn_1_1_runtime_impl.xhtml">armnn::RuntimeImpl</a> runtime(options);</div><div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;</div><div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;    <span class="keyword">auto</span> basePipeServer = connectionHandler.GetNewBasePipeServer(<span class="keyword">false</span>);</div><div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;    <a class="code" href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml">gatordmock::GatordMockService</a> mockService(std::move(basePipeServer), <span class="keyword">false</span>);</div><div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;</div><div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;    <span class="comment">// Read the stream metadata on the mock side.</span></div><div class="line"><a name="l00413"></a><span class="lineno">  413</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="l00414"></a><span class="lineno">  414</span>&#160;    {</div><div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;        BOOST_FAIL(<span class="stringliteral">&quot;Failed to receive StreamMetaData&quot;</span>);</div><div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;    }</div><div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;</div><div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;    <a class="code" href="classarmnn_1_1_mock_backend_profiling_service.xhtml">armnn::MockBackendProfilingService</a> mockProfilingService = <a class="code" href="classarmnn_1_1_mock_backend_profiling_service.xhtml#a15a5e913e48840d7b767a4453d83f361">armnn::MockBackendProfilingService::Instance</a>();</div><div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;    <a class="code" href="classarmnn_1_1_mock_backend_profiling_context.xhtml">armnn::MockBackendProfilingContext</a> *mockBackEndProfilingContext = mockProfilingService.<a class="code" href="classarmnn_1_1_mock_backend_profiling_service.xhtml#ae0e8de63fb5fb93f646543e89a0e1386">GetContext</a>();</div><div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;</div><div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;    <span class="comment">// Send Ack from GatorD</span></div><div class="line"><a name="l00422"></a><span class="lineno">  422</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="l00423"></a><span class="lineno">  423</span>&#160;    <span class="comment">// And start to listen for packets</span></div><div class="line"><a name="l00424"></a><span class="lineno">  424</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="l00425"></a><span class="lineno">  425</span>&#160;</div><div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;    <span class="comment">// Build and optimize a simple network while we wait</span></div><div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;    <a class="code" href="namespacearmnn.xhtml#ace74f6f9feb95a964a49d79458232703">INetworkPtr</a> net(<a class="code" href="classarmnn_1_1_i_network.xhtml#a464f0ff87b1aabf71febaa71321dd40b">INetwork::Create</a>());</div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;</div><div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;    <a class="code" href="classarmnn_1_1_i_connectable_layer.xhtml">IConnectableLayer</a>* input = net-&gt;AddInputLayer(0, <span class="stringliteral">&quot;input&quot;</span>);</div><div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;</div><div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;    <a class="code" href="structarmnn_1_1_normalization_descriptor.xhtml">NormalizationDescriptor</a> descriptor;</div><div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;    <a class="code" href="classarmnn_1_1_i_connectable_layer.xhtml">IConnectableLayer</a>* normalize = net-&gt;AddNormalizationLayer(descriptor, <span class="stringliteral">&quot;normalization&quot;</span>);</div><div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;</div><div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;    <a class="code" href="classarmnn_1_1_i_connectable_layer.xhtml">IConnectableLayer</a>* output = net-&gt;AddOutputLayer(0, <span class="stringliteral">&quot;output&quot;</span>);</div><div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;</div><div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;    input-&gt;<a class="code" href="classarmnn_1_1_i_connectable_layer.xhtml#a80ac4eda2e7f2757ec9dd96fc96dbd16">GetOutputSlot</a>(0).<a class="code" href="classarmnn_1_1_i_output_slot.xhtml#ac1835f8756a9f03c02fcf9664e3a0fce">Connect</a>(normalize-&gt;<a class="code" href="classarmnn_1_1_i_connectable_layer.xhtml#a6ec9e0eb66d7d6a01240492a0b18104c">GetInputSlot</a>(0));</div><div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;    normalize-&gt;<a class="code" href="classarmnn_1_1_i_connectable_layer.xhtml#a80ac4eda2e7f2757ec9dd96fc96dbd16">GetOutputSlot</a>(0).<a class="code" href="classarmnn_1_1_i_output_slot.xhtml#ac1835f8756a9f03c02fcf9664e3a0fce">Connect</a>(output-&gt;<a class="code" href="classarmnn_1_1_i_connectable_layer.xhtml#a6ec9e0eb66d7d6a01240492a0b18104c">GetInputSlot</a>(0));</div><div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;</div><div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;    input-&gt;<a class="code" href="classarmnn_1_1_i_connectable_layer.xhtml#a80ac4eda2e7f2757ec9dd96fc96dbd16">GetOutputSlot</a>(0).<a class="code" href="classarmnn_1_1_i_output_slot.xhtml#a5ee4a6c9a2481245487b1b1a70d20fd0">SetTensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>({ 1, 1, 4, 4 }, <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>));</div><div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;    normalize-&gt;<a class="code" href="classarmnn_1_1_i_connectable_layer.xhtml#a80ac4eda2e7f2757ec9dd96fc96dbd16">GetOutputSlot</a>(0).<a class="code" href="classarmnn_1_1_i_output_slot.xhtml#a5ee4a6c9a2481245487b1b1a70d20fd0">SetTensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>({ 1, 1, 4, 4 }, <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>));</div><div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;</div><div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;    std::vector&lt;armnn::BackendId&gt; backends = { <a class="code" href="namespacearmnn.xhtml#ae2f04a162585c0a5222a537efd5456aea83c2c4e9b658ccafbcbe6309c5d84c64">armnn::Compute::CpuRef</a> };</div><div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a674efcf6cbdb9e831d653ff0e821fb38">IOptimizedNetworkPtr</a> optNet = <a class="code" href="namespacearmnn.xhtml#a82e98ef05fd67036d1195ba17174d685">Optimize</a>(*net, backends, runtime.<a class="code" href="structarmnn_1_1_runtime_impl.xhtml#ace3a3fbd42ff981af628e91fbeb254d5">GetDeviceSpec</a>());</div><div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;</div><div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;    <a class="code" href="_gatord_mock_tests_8cpp.xhtml#a7314a0227c37040f98b89c54d9bde720">WaitFor</a>([&amp;](){<span class="keywordflow">return</span> mockService.<a class="code" href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a7f980dbcb21ac67ae197f2781d67532c">GetDirectoryCaptureCommandHandler</a>().<a class="code" href="classarmnn_1_1profiling_1_1_directory_capture_command_handler.xhtml#a7877b37f88f6d9d8743b492a2970c837">ParsedCounterDirectory</a>();},</div><div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;            <span class="stringliteral">&quot;MockGatord did not receive counter directory packet&quot;</span>);</div><div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;</div><div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;    arm::pipe::TimelineDecoder&amp; timelineDecoder = mockService.<a class="code" href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#ae52624d07e7ca9bd28070467217caba9">GetTimelineDecoder</a>();</div><div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;</div><div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;    <a class="code" href="_gatord_mock_tests_8cpp.xhtml#a7314a0227c37040f98b89c54d9bde720">WaitFor</a>([&amp;](){<span class="keywordflow">return</span> timelineDecoder.GetModel().m_EventClasses.size() &gt;= 2;},</div><div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;            <span class="stringliteral">&quot;MockGatord did not receive well known timeline labels&quot;</span>);</div><div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;</div><div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;    <a class="code" href="_gatord_mock_tests_8cpp.xhtml#a7314a0227c37040f98b89c54d9bde720">WaitFor</a>([&amp;](){<span class="keywordflow">return</span> timelineDecoder.GetModel().m_Entities.size() &gt;= 1;},</div><div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;            <span class="stringliteral">&quot;MockGatord did not receive mock backend test entity&quot;</span>);</div><div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;</div><div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;    <span class="comment">// Packets we expect from SendWellKnownLabelsAndEventClassesTest</span></div><div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_Entities.size() == 1);</div><div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_EventClasses.size()  == 2);</div><div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_Labels.size()  == 15);</div><div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_Relationships.size()  == 0);</div><div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_Events.size()  == 0);</div><div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;</div><div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;    mockService.<a class="code" href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a0fa494c4df7426405e756b74656381ec">SendDeactivateTimelinePacket</a>();</div><div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;</div><div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;    <a class="code" href="_gatord_mock_tests_8cpp.xhtml#a7314a0227c37040f98b89c54d9bde720">WaitFor</a>([&amp;](){<span class="keywordflow">return</span> !mockBackEndProfilingContext-&gt;<a class="code" href="classarmnn_1_1_mock_backend_profiling_context.xhtml#af2c108bdd805535a58a13553b5848f31">TimelineReportingEnabled</a>();},</div><div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;            <span class="stringliteral">&quot;Timeline packets were not deactivated&quot;</span>);</div><div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;</div><div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;    <span class="comment">// Load the network into runtime now that timeline reporting is disabled</span></div><div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a83015160d8c67d5d77735eb0d4033d9a">armnn::NetworkId</a> netId;</div><div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;    runtime.<a class="code" href="structarmnn_1_1_runtime_impl.xhtml#af92b5ae61208a778571bcea7e6aac7b4">LoadNetwork</a>(netId, std::move(optNet));</div><div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;</div><div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;    <span class="comment">// Now activate timeline packets</span></div><div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;    mockService.<a class="code" href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a3833c5c6bec750969b5050c031032637">SendActivateTimelinePacket</a>();</div><div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;</div><div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;    <a class="code" href="_gatord_mock_tests_8cpp.xhtml#a7314a0227c37040f98b89c54d9bde720">WaitFor</a>([&amp;](){<span class="keywordflow">return</span> mockBackEndProfilingContext-&gt;<a class="code" href="classarmnn_1_1_mock_backend_profiling_context.xhtml#af2c108bdd805535a58a13553b5848f31">TimelineReportingEnabled</a>();},</div><div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;            <span class="stringliteral">&quot;Timeline packets were not activated&quot;</span>);</div><div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;</div><div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;    <span class="comment">// Once TimelineReporting is Enabled additional activateTimelinePackets should be ignored</span></div><div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;    mockService.<a class="code" href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a3833c5c6bec750969b5050c031032637">SendActivateTimelinePacket</a>();</div><div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;    mockService.<a class="code" href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a3833c5c6bec750969b5050c031032637">SendActivateTimelinePacket</a>();</div><div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;</div><div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;    <span class="comment">// Once timeline packets have been reactivated the ActivateTimelineReportingCommandHandler will resend the</span></div><div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;    <span class="comment">// SendWellKnownLabelsAndEventClasses and then send the structure of any loaded networks</span></div><div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;    <a class="code" href="_gatord_mock_tests_8cpp.xhtml#a7314a0227c37040f98b89c54d9bde720">WaitFor</a>([&amp;](){<span class="keywordflow">return</span> timelineDecoder.GetModel().m_Labels.size() &gt;= 24;},</div><div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;            <span class="stringliteral">&quot;MockGatord did not receive well known timeline labels&quot;</span>);</div><div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;</div><div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;    <span class="comment">// Packets we expect from SendWellKnownLabelsAndEventClassesTest * 2 + network above (input, norm, backend, output)</span></div><div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_Entities.size() == 6);</div><div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_EventClasses.size()  == 4);</div><div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_Labels.size()  == 34);</div><div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_Relationships.size()  == 15);</div><div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_Events.size()  == 0);</div><div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;</div><div class="line"><a name="l00494"></a><span class="lineno">  494</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="l00495"></a><span class="lineno">  495</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a22f1d90f329261a58e14827f99090e93">GetProfilingService</a>(&amp;runtime).<a class="code" href="classarmnn_1_1profiling_1_1_profiling_service.xhtml#a65d18fa17ec0238d7e72f6c8f5c880b6">Disconnect</a>();</div><div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;}</div><div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;</div><div class="line"><a name="l00498"></a><span class="lineno">  498</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="classarmnn_1_1profiling_1_1_labels_and_event_classes_xhtml_ae3da9252fb4310cb359c5d64a5573926"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#ae3da9252fb4310cb359c5d64a5573926">armnn::profiling::LabelsAndEventClasses::INFERENCE_GUID</a></div><div class="ttdeci">static ARMNN_DLLEXPORT ProfilingStaticGuid INFERENCE_GUID</div><div class="ttdef"><b>Definition:</b> <a href="_labels_and_event_classes_8hpp_source.xhtml#l00051">LabelsAndEventClasses.hpp:51</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a22f1d90f329261a58e14827f99090e93"><div class="ttname"><a href="namespacearmnn.xhtml#a22f1d90f329261a58e14827f99090e93">armnn::GetProfilingService</a></div><div class="ttdeci">profiling::ProfilingService &amp; GetProfilingService(armnn::RuntimeImpl *runtime)</div><div class="ttdef"><b>Definition:</b> <a href="_test_utils_8cpp_source.xhtml#l00035">TestUtils.cpp:35</a></div></div>
<div class="ttc" id="classarmnn_1_1_i_connectable_layer_xhtml"><div class="ttname"><a href="classarmnn_1_1_i_connectable_layer.xhtml">armnn::IConnectableLayer</a></div><div class="ttdoc">Interface for a layer that is connectable to other layers via InputSlots and OutputSlots. </div><div class="ttdef"><b>Definition:</b> <a href="_i_network_8hpp_source.xhtml#l00062">INetwork.hpp:62</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_labels_and_event_classes_xhtml_a7b8bdeba7d18219009027bbac26a1af4"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#a7b8bdeba7d18219009027bbac26a1af4">armnn::profiling::LabelsAndEventClasses::WORKLOAD_EXECUTION</a></div><div class="ttdeci">static ARMNN_DLLEXPORT std::string WORKLOAD_EXECUTION</div><div class="ttdef"><b>Definition:</b> <a href="_labels_and_event_classes_8hpp_source.xhtml#l00046">LabelsAndEventClasses.hpp:46</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_labels_and_event_classes_xhtml_abe9d22d5da1348183894c0b8d1db9fad"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#abe9d22d5da1348183894c0b8d1db9fad">armnn::profiling::LabelsAndEventClasses::TYPE_LABEL</a></div><div class="ttdeci">static ARMNN_DLLEXPORT std::string TYPE_LABEL</div><div class="ttdef"><b>Definition:</b> <a href="_labels_and_event_classes_8hpp_source.xhtml#l00025">LabelsAndEventClasses.hpp:25</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_ae2f04a162585c0a5222a537efd5456aea83c2c4e9b658ccafbcbe6309c5d84c64"><div class="ttname"><a href="namespacearmnn.xhtml#ae2f04a162585c0a5222a537efd5456aea83c2c4e9b658ccafbcbe6309c5d84c64">armnn::Compute::CpuRef</a></div><div class="ttdoc">CPU Execution: Reference C++ kernels. </div></div>
<div class="ttc" id="classarmnn_1_1gatordmock_1_1_gatord_mock_service_xhtml_a450b29f889e2693f7f7a88cc8af12b6e"><div class="ttname"><a href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a450b29f889e2693f7f7a88cc8af12b6e">armnn::gatordmock::GatordMockService::GetTimelineDirectoryCaptureCommandHandler</a></div><div class="ttdeci">arm::pipe::TimelineDirectoryCaptureCommandHandler &amp; GetTimelineDirectoryCaptureCommandHandler()</div><div class="ttdef"><b>Definition:</b> <a href="_gatord_mock_service_8hpp_source.xhtml#l00133">GatordMockService.hpp:133</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#l00230">ProfilingService.cpp:230</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_directory_capture_command_handler_xhtml_a41a25ce1deeb5ac0ddbaa99bba961dc6"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_directory_capture_command_handler.xhtml#a41a25ce1deeb5ac0ddbaa99bba961dc6">armnn::profiling::DirectoryCaptureCommandHandler::TranslateUIDCopyToOriginal</a></div><div class="ttdeci">uint16_t TranslateUIDCopyToOriginal(uint16_t copyUid)</div><div class="ttdoc">Given a Uid that came from a copy of the counter directory translate it to the original. </div><div class="ttdef"><b>Definition:</b> <a href="_directory_capture_command_handler_8hpp_source.xhtml#l00059">DirectoryCaptureCommandHandler.hpp:59</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#l00128">ProfilingUtils.cpp:128</a></div></div>
<div class="ttc" id="classarmnn_1_1_tensor_info_xhtml"><div class="ttname"><a href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00152">Tensor.hpp:152</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#l00121">ProfilingUtils.cpp:121</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#l00126">ICounterDirectory.hpp:126</a></div></div>
<div class="ttc" id="classarmnn_1_1_mock_backend_profiling_service_xhtml"><div class="ttname"><a href="classarmnn_1_1_mock_backend_profiling_service.xhtml">armnn::MockBackendProfilingService</a></div><div class="ttdef"><b>Definition:</b> <a href="_mock_backend_8hpp_source.xhtml#l00119">MockBackend.hpp:119</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#l00038">ICounterDirectory.hpp:38</a></div></div>
<div class="ttc" id="_mock_backend_8hpp_xhtml"><div class="ttname"><a href="_mock_backend_8hpp.xhtml">MockBackend.hpp</a></div></div>
<div class="ttc" id="_runtime_8hpp_xhtml"><div class="ttname"><a href="_runtime_8hpp.xhtml">Runtime.hpp</a></div></div>
<div class="ttc" id="_gatord_mock_tests_8cpp_xhtml_a176f89f0b782dec05cef139f5b91101d"><div class="ttname"><a href="_gatord_mock_tests_8cpp.xhtml#a176f89f0b782dec05cef139f5b91101d">CheckTimelinePackets</a></div><div class="ttdeci">void CheckTimelinePackets(arm::pipe::TimelineDecoder &amp;timelineDecoder)</div><div class="ttdef"><b>Definition:</b> <a href="_gatord_mock_tests_8cpp_source.xhtml#l00187">GatordMockTests.cpp:187</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_labels_and_event_classes_xhtml_a62c5a90dbe514aaaf8a39ef435eeb3a8"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#a62c5a90dbe514aaaf8a39ef435eeb3a8">armnn::profiling::LabelsAndEventClasses::NAME_LABEL</a></div><div class="ttdeci">static ARMNN_DLLEXPORT std::string NAME_LABEL</div><div class="ttdef"><b>Definition:</b> <a href="_labels_and_event_classes_8hpp_source.xhtml#l00024">LabelsAndEventClasses.hpp:24</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_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#l00130">ICounterDirectory.hpp:130</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_ac2807505b850738bc8a1991ce669dd47"><div class="ttname"><a href="namespacearmnn.xhtml#ac2807505b850738bc8a1991ce669dd47">armnn::BackendRegistryInstance</a></div><div class="ttdeci">BackendRegistry &amp; BackendRegistryInstance()</div><div class="ttdef"><b>Definition:</b> <a href="_backend_registry_8cpp_source.xhtml#l00013">BackendRegistry.cpp:13</a></div></div>
<div class="ttc" id="structarmnn_1_1_runtime_impl_xhtml_af92b5ae61208a778571bcea7e6aac7b4"><div class="ttname"><a href="structarmnn_1_1_runtime_impl.xhtml#af92b5ae61208a778571bcea7e6aac7b4">armnn::RuntimeImpl::LoadNetwork</a></div><div class="ttdeci">Status LoadNetwork(NetworkId &amp;networkIdOut, IOptimizedNetworkPtr network)</div><div class="ttdoc">Loads a complete network into the Runtime. </div><div class="ttdef"><b>Definition:</b> <a href="_runtime_8cpp_source.xhtml#l00109">Runtime.cpp:109</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#l00093">ICounterDirectory.hpp:93</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a83015160d8c67d5d77735eb0d4033d9a"><div class="ttname"><a href="namespacearmnn.xhtml#a83015160d8c67d5d77735eb0d4033d9a">armnn::NetworkId</a></div><div class="ttdeci">int NetworkId</div><div class="ttdef"><b>Definition:</b> <a href="_i_runtime_8hpp_source.xhtml#l00020">IRuntime.hpp:20</a></div></div>
<div class="ttc" id="namespacearmnn_1_1profiling_xhtml_a74b483b652cc32f03151b10a1366d607"><div class="ttname"><a href="namespacearmnn_1_1profiling.xhtml#a74b483b652cc32f03151b10a1366d607">armnn::profiling::ReadUint8</a></div><div class="ttdeci">uint8_t ReadUint8(const IPacketBufferPtr &amp;packetBuffer, unsigned int offset)</div><div class="ttdef"><b>Definition:</b> <a href="_profiling_utils_8cpp_source.xhtml#l00195">ProfilingUtils.cpp:195</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#l00034">DirectoryCaptureCommandHandler.hpp:34</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) 2021 ARM Limited and Contributors. </div><div class="ttdef"><b>Definition:</b> <a href="01__00__software__tools_8dox_source.xhtml#l00006">01_00_software_tools.dox:6</a></div></div>
<div class="ttc" id="classarmnn_1_1gatordmock_1_1_gatord_mock_service_xhtml_a0fa494c4df7426405e756b74656381ec"><div class="ttname"><a href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a0fa494c4df7426405e756b74656381ec">armnn::gatordmock::GatordMockService::SendDeactivateTimelinePacket</a></div><div class="ttdeci">void SendDeactivateTimelinePacket()</div><div class="ttdoc">Send a deactivate timeline packet back to the client. </div><div class="ttdef"><b>Definition:</b> <a href="_gatord_mock_service_8cpp_source.xhtml#l00054">GatordMockService.cpp:54</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="classarmnn_1_1_mock_backend_profiling_context_xhtml"><div class="ttname"><a href="classarmnn_1_1_mock_backend_profiling_context.xhtml">armnn::MockBackendProfilingContext</a></div><div class="ttdef"><b>Definition:</b> <a href="_mock_backend_8hpp_source.xhtml#l00029">MockBackend.hpp:29</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_labels_and_event_classes_xhtml_aca2c34e798557b2efa2a81a852449e99"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#aca2c34e798557b2efa2a81a852449e99">armnn::profiling::LabelsAndEventClasses::BACKENDID_LABEL</a></div><div class="ttdeci">static ARMNN_DLLEXPORT std::string BACKENDID_LABEL</div><div class="ttdef"><b>Definition:</b> <a href="_labels_and_event_classes_8hpp_source.xhtml#l00027">LabelsAndEventClasses.hpp:27</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_profiling_service_xhtml_a65d18fa17ec0238d7e72f6c8f5c880b6"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_profiling_service.xhtml#a65d18fa17ec0238d7e72f6c8f5c880b6">armnn::profiling::ProfilingService::Disconnect</a></div><div class="ttdeci">void Disconnect()</div><div class="ttdef"><b>Definition:</b> <a href="_profiling_service_8cpp_source.xhtml#l00191">ProfilingService.cpp:191</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="classarmnn_1_1profiling_1_1_labels_and_event_classes_xhtml_ab2c48043328356b5ec556dd5284a4138"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#ab2c48043328356b5ec556dd5284a4138">armnn::profiling::LabelsAndEventClasses::CONNECTION_GUID</a></div><div class="ttdeci">static ARMNN_DLLEXPORT ProfilingStaticGuid CONNECTION_GUID</div><div class="ttdef"><b>Definition:</b> <a href="_labels_and_event_classes_8hpp_source.xhtml#l00050">LabelsAndEventClasses.hpp:50</a></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#l00075">IRuntime.hpp:75</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#l00110">ProfilingService.cpp:110</a></div></div>
<div class="ttc" id="classarmnn_1_1gatordmock_1_1_gatord_mock_service_xhtml_a3833c5c6bec750969b5050c031032637"><div class="ttname"><a href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a3833c5c6bec750969b5050c031032637">armnn::gatordmock::GatordMockService::SendActivateTimelinePacket</a></div><div class="ttdeci">void SendActivateTimelinePacket()</div><div class="ttdoc">Send a activate timeline packet back to the client. </div><div class="ttdef"><b>Definition:</b> <a href="_gatord_mock_service_8cpp_source.xhtml#l00044">GatordMockService.cpp:44</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#l00127">ICounterDirectory.hpp:127</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_labels_and_event_classes_xhtml_a6d5d1a547ba9c92694347fc71ddf0e18"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#a6d5d1a547ba9c92694347fc71ddf0e18">armnn::profiling::LabelsAndEventClasses::WORKLOAD_GUID</a></div><div class="ttdeci">static ARMNN_DLLEXPORT ProfilingStaticGuid WORKLOAD_GUID</div><div class="ttdef"><b>Definition:</b> <a href="_labels_and_event_classes_8hpp_source.xhtml#l00048">LabelsAndEventClasses.hpp:48</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_labels_and_event_classes_xhtml_a3bb2c8f84189e71a6b9e96156f590665"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#a3bb2c8f84189e71a6b9e96156f590665">armnn::profiling::LabelsAndEventClasses::EXECUTION_OF_LABEL</a></div><div class="ttdeci">static ARMNN_DLLEXPORT std::string EXECUTION_OF_LABEL</div><div class="ttdef"><b>Definition:</b> <a href="_labels_and_event_classes_8hpp_source.xhtml#l00029">LabelsAndEventClasses.hpp:29</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_labels_and_event_classes_xhtml_a793b484a75929738ea46016d2190ab5c"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#a793b484a75929738ea46016d2190ab5c">armnn::profiling::LabelsAndEventClasses::WORKLOAD_EXECUTION_GUID</a></div><div class="ttdeci">static ARMNN_DLLEXPORT ProfilingStaticGuid WORKLOAD_EXECUTION_GUID</div><div class="ttdef"><b>Definition:</b> <a href="_labels_and_event_classes_8hpp_source.xhtml#l00052">LabelsAndEventClasses.hpp:52</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_directory_capture_command_handler_xhtml_a7877b37f88f6d9d8743b492a2970c837"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_directory_capture_command_handler.xhtml#a7877b37f88f6d9d8743b492a2970c837">armnn::profiling::DirectoryCaptureCommandHandler::ParsedCounterDirectory</a></div><div class="ttdeci">bool ParsedCounterDirectory()</div><div class="ttdef"><b>Definition:</b> <a href="_directory_capture_command_handler_8hpp_source.xhtml#l00048">DirectoryCaptureCommandHandler.hpp:48</a></div></div>
<div class="ttc" id="classarmnn_1_1_mock_backend_initialiser_xhtml"><div class="ttname"><a href="classarmnn_1_1_mock_backend_initialiser.xhtml">armnn::MockBackendInitialiser</a></div><div class="ttdef"><b>Definition:</b> <a href="_mock_backend_8hpp_source.xhtml#l00022">MockBackend.hpp:22</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_labels_and_event_classes_xhtml_abff887aa42263e0816432cdd0987e27d"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#abff887aa42263e0816432cdd0987e27d">armnn::profiling::LabelsAndEventClasses::ARMNN_PROFILING_EOL_EVENT_CLASS</a></div><div class="ttdeci">static ARMNN_DLLEXPORT ProfilingStaticGuid ARMNN_PROFILING_EOL_EVENT_CLASS</div><div class="ttdef"><b>Definition:</b> <a href="_labels_and_event_classes_8hpp_source.xhtml#l00060">LabelsAndEventClasses.hpp:60</a></div></div>
<div class="ttc" id="_gatord_mock_tests_8cpp_xhtml_aa9e55a43e26d350d55ef8ed99cd0b44e"><div class="ttname"><a href="_gatord_mock_tests_8cpp.xhtml#aa9e55a43e26d350d55ef8ed99cd0b44e">CheckTimelineDirectory</a></div><div class="ttdeci">void CheckTimelineDirectory(arm::pipe::TimelineDirectoryCaptureCommandHandler &amp;commandHandler)</div><div class="ttdef"><b>Definition:</b> <a href="_gatord_mock_tests_8cpp_source.xhtml#l00123">GatordMockTests.cpp:123</a></div></div>
<div class="ttc" id="classarmnn_1_1_i_output_slot_xhtml_a5ee4a6c9a2481245487b1b1a70d20fd0"><div class="ttname"><a href="classarmnn_1_1_i_output_slot.xhtml#a5ee4a6c9a2481245487b1b1a70d20fd0">armnn::IOutputSlot::SetTensorInfo</a></div><div class="ttdeci">virtual void SetTensorInfo(const TensorInfo &amp;tensorInfo)=0</div></div>
<div class="ttc" id="_numeric_cast_8hpp_xhtml"><div class="ttname"><a href="_numeric_cast_8hpp.xhtml">NumericCast.hpp</a></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#l00037">ICounterDirectory.hpp:37</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_labels_and_event_classes_xhtml_af22d8b04133c4b68f4320d6c98dc9502"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#af22d8b04133c4b68f4320d6c98dc9502">armnn::profiling::LabelsAndEventClasses::NAME_GUID</a></div><div class="ttdeci">static ARMNN_DLLEXPORT ProfilingStaticGuid NAME_GUID</div><div class="ttdef"><b>Definition:</b> <a href="_labels_and_event_classes_8hpp_source.xhtml#l00032">LabelsAndEventClasses.hpp:32</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_labels_and_event_classes_xhtml_a75123df426e55b7e9c218704cb52120f"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#a75123df426e55b7e9c218704cb52120f">armnn::profiling::LabelsAndEventClasses::ARMNN_PROFILING_SOL_EVENT_CLASS</a></div><div class="ttdeci">static ARMNN_DLLEXPORT ProfilingStaticGuid ARMNN_PROFILING_SOL_EVENT_CLASS</div><div class="ttdef"><b>Definition:</b> <a href="_labels_and_event_classes_8hpp_source.xhtml#l00056">LabelsAndEventClasses.hpp:56</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_labels_and_event_classes_xhtml_aedf6dd387391b88ee403e922ec73af0e"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#aedf6dd387391b88ee403e922ec73af0e">armnn::profiling::LabelsAndEventClasses::NETWORK</a></div><div class="ttdeci">static ARMNN_DLLEXPORT std::string NETWORK</div><div class="ttdef"><b>Definition:</b> <a href="_labels_and_event_classes_8hpp_source.xhtml#l00043">LabelsAndEventClasses.hpp:43</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#l00101">GatordMockService.cpp:101</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#l00062">IRuntime.hpp:62</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="_labels_and_event_classes_8hpp_xhtml"><div class="ttname"><a href="_labels_and_event_classes_8hpp.xhtml">LabelsAndEventClasses.hpp</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="classarmnn_1_1profiling_1_1_labels_and_event_classes_xhtml_a939d115d7a078087c7a826bf2c65bcb4"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#a939d115d7a078087c7a826bf2c65bcb4">armnn::profiling::LabelsAndEventClasses::LAYER_GUID</a></div><div class="ttdeci">static ARMNN_DLLEXPORT ProfilingStaticGuid LAYER_GUID</div><div class="ttdef"><b>Definition:</b> <a href="_labels_and_event_classes_8hpp_source.xhtml#l00047">LabelsAndEventClasses.hpp:47</a></div></div>
<div class="ttc" id="classarmnn_1_1gatordmock_1_1_gatord_mock_service_xhtml_ae52624d07e7ca9bd28070467217caba9"><div class="ttname"><a href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#ae52624d07e7ca9bd28070467217caba9">armnn::gatordmock::GatordMockService::GetTimelineDecoder</a></div><div class="ttdeci">arm::pipe::TimelineDecoder &amp; GetTimelineDecoder()</div><div class="ttdef"><b>Definition:</b> <a href="_gatord_mock_service_8hpp_source.xhtml#l00128">GatordMockService.hpp:128</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a82e98ef05fd67036d1195ba17174d685"><div class="ttname"><a href="namespacearmnn.xhtml#a82e98ef05fd67036d1195ba17174d685">armnn::Optimize</a></div><div class="ttdeci">IOptimizedNetworkPtr Optimize(const INetwork &amp;network, const std::vector&lt; BackendId &gt; &amp;backendPreferences, const IDeviceSpec &amp;deviceSpec, const OptimizerOptions &amp;options=OptimizerOptions(), Optional&lt; std::vector&lt; std::string &gt; &amp;&gt; messages=EmptyOptional())</div><div class="ttdoc">Create an optimized version of the network. </div><div class="ttdef"><b>Definition:</b> <a href="_network_8cpp_source.xhtml#l01502">Network.cpp:1502</a></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="structarmnn_1_1_runtime_impl_xhtml_ace3a3fbd42ff981af628e91fbeb254d5"><div class="ttname"><a href="structarmnn_1_1_runtime_impl.xhtml#ace3a3fbd42ff981af628e91fbeb254d5">armnn::RuntimeImpl::GetDeviceSpec</a></div><div class="ttdeci">const IDeviceSpec &amp; GetDeviceSpec() const</div><div class="ttdef"><b>Definition:</b> <a href="_runtime_8hpp_source.xhtml#l00070">Runtime.hpp:70</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_labels_and_event_classes_xhtml_a9b431866f8b82e77c6ed26c119078ff8"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#a9b431866f8b82e77c6ed26c119078ff8">armnn::profiling::LabelsAndEventClasses::EXECUTION_OF_GUID</a></div><div class="ttdeci">static ARMNN_DLLEXPORT ProfilingStaticGuid EXECUTION_OF_GUID</div><div class="ttdef"><b>Definition:</b> <a href="_labels_and_event_classes_8hpp_source.xhtml#l00037">LabelsAndEventClasses.hpp:37</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_labels_and_event_classes_xhtml_a45ee4859ef7343e8748154aef20e5873"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#a45ee4859ef7343e8748154aef20e5873">armnn::profiling::LabelsAndEventClasses::WORKLOAD</a></div><div class="ttdeci">static ARMNN_DLLEXPORT std::string WORKLOAD</div><div class="ttdef"><b>Definition:</b> <a href="_labels_and_event_classes_8hpp_source.xhtml#l00042">LabelsAndEventClasses.hpp:42</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#l00134">ICounterDirectory.hpp:134</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#l00125">ICounterDirectory.hpp:125</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a674efcf6cbdb9e831d653ff0e821fb38"><div class="ttname"><a href="namespacearmnn.xhtml#a674efcf6cbdb9e831d653ff0e821fb38">armnn::IOptimizedNetworkPtr</a></div><div class="ttdeci">std::unique_ptr&lt; IOptimizedNetwork, void(*)(IOptimizedNetwork *network)&gt; IOptimizedNetworkPtr</div><div class="ttdef"><b>Definition:</b> <a href="_i_network_8hpp_source.xhtml#l00174">INetwork.hpp:174</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_labels_and_event_classes_xhtml_ada8a8ab1d037ceced96d7fc62ab80c2d"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#ada8a8ab1d037ceced96d7fc62ab80c2d">armnn::profiling::LabelsAndEventClasses::INDEX_LABEL</a></div><div class="ttdeci">static ARMNN_DLLEXPORT std::string INDEX_LABEL</div><div class="ttdef"><b>Definition:</b> <a href="_labels_and_event_classes_8hpp_source.xhtml#l00026">LabelsAndEventClasses.hpp:26</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#l00039">ProfilingService.cpp:39</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#l00133">ICounterDirectory.hpp:133</a></div></div>
<div class="ttc" id="_assert_8hpp_xhtml_a5698be69cbd5dfe6c28fcd9867e8cbed"><div class="ttname"><a href="_assert_8hpp.xhtml#a5698be69cbd5dfe6c28fcd9867e8cbed">ARMNN_ASSERT</a></div><div class="ttdeci">#define ARMNN_ASSERT(COND)</div><div class="ttdef"><b>Definition:</b> <a href="_assert_8hpp_source.xhtml#l00014">Assert.hpp:14</a></div></div>
<div class="ttc" id="_timeline_packet_writer_factory_8hpp_xhtml"><div class="ttname"><a href="_timeline_packet_writer_factory_8hpp.xhtml">TimelinePacketWriterFactory.hpp</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#l00268">ConstTensorLayerVisitor.cpp:268</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#l00128">ICounterDirectory.hpp:128</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#l00064">GatordMockService.cpp:64</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_buffer_manager_xhtml_abce8709dc1b666a26f427ba7ff08b737"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_buffer_manager.xhtml#abce8709dc1b666a26f427ba7ff08b737">armnn::profiling::BufferManager::GetReadableBuffer</a></div><div class="ttdeci">IPacketBufferPtr GetReadableBuffer() override</div><div class="ttdef"><b>Definition:</b> <a href="_buffer_manager_8cpp_source.xhtml#l00116">BufferManager.cpp:116</a></div></div>
<div class="ttc" id="classarmnn_1_1_mock_backend_profiling_service_xhtml_a15a5e913e48840d7b767a4453d83f361"><div class="ttname"><a href="classarmnn_1_1_mock_backend_profiling_service.xhtml#a15a5e913e48840d7b767a4453d83f361">armnn::MockBackendProfilingService::Instance</a></div><div class="ttdeci">static MockBackendProfilingService &amp; Instance()</div><div class="ttdef"><b>Definition:</b> <a href="_mock_backend_8hpp_source.xhtml#l00123">MockBackend.hpp:123</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="structarmnn_1_1_runtime_impl_xhtml"><div class="ttname"><a href="structarmnn_1_1_runtime_impl.xhtml">armnn::RuntimeImpl</a></div><div class="ttdef"><b>Definition:</b> <a href="_runtime_8hpp_source.xhtml#l00030">Runtime.hpp:30</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="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#l00114">ProfilingUtils.cpp:114</a></div></div>
<div class="ttc" id="namespacearmnn_1_1profiling_xhtml_ad56f4c3ea5e88279bb6ef1f31d9dc6df"><div class="ttname"><a href="namespacearmnn_1_1profiling.xhtml#ad56f4c3ea5e88279bb6ef1f31d9dc6df">armnn::profiling::ReadUint32</a></div><div class="ttdeci">uint32_t ReadUint32(const IPacketBufferPtr &amp;packetBuffer, unsigned int offset)</div><div class="ttdef"><b>Definition:</b> <a href="_profiling_utils_8cpp_source.xhtml#l00181">ProfilingUtils.cpp:181</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#l00035">ICounterDirectory.hpp:35</a></div></div>
<div class="ttc" id="classarmnn_1_1gatordmock_1_1_gatord_mock_service_xhtml_a7f980dbcb21ac67ae197f2781d67532c"><div class="ttname"><a href="classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a7f980dbcb21ac67ae197f2781d67532c">armnn::gatordmock::GatordMockService::GetDirectoryCaptureCommandHandler</a></div><div class="ttdeci">profiling::DirectoryCaptureCommandHandler &amp; GetDirectoryCaptureCommandHandler()</div><div class="ttdef"><b>Definition:</b> <a href="_gatord_mock_service_8hpp_source.xhtml#l00123">GatordMockService.hpp:123</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="structarmnn_1_1_i_runtime_1_1_creation_options_xhtml"><div class="ttname"><a href="structarmnn_1_1_i_runtime_1_1_creation_options.xhtml">armnn::IRuntime::CreationOptions</a></div><div class="ttdef"><b>Definition:</b> <a href="_i_runtime_8hpp_source.xhtml#l00043">IRuntime.hpp:43</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_labels_and_event_classes_xhtml_a2803368c101910905392bc7edd4c9cc5"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#a2803368c101910905392bc7edd4c9cc5">armnn::profiling::LabelsAndEventClasses::NETWORK_GUID</a></div><div class="ttdeci">static ARMNN_DLLEXPORT ProfilingStaticGuid NETWORK_GUID</div><div class="ttdef"><b>Definition:</b> <a href="_labels_and_event_classes_8hpp_source.xhtml#l00049">LabelsAndEventClasses.hpp:49</a></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#l00038">GatordMockService.hpp:38</a></div></div>
<div class="ttc" id="classarmnn_1_1_mock_backend_profiling_service_xhtml_ae0e8de63fb5fb93f646543e89a0e1386"><div class="ttname"><a href="classarmnn_1_1_mock_backend_profiling_service.xhtml#ae0e8de63fb5fb93f646543e89a0e1386">armnn::MockBackendProfilingService::GetContext</a></div><div class="ttdeci">MockBackendProfilingContext * GetContext()</div><div class="ttdef"><b>Definition:</b> <a href="_mock_backend_8hpp_source.xhtml#l00129">MockBackend.hpp:129</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_labels_and_event_classes_xhtml_ade6c7354c6b3091676e9aa493406cba1"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#ade6c7354c6b3091676e9aa493406cba1">armnn::profiling::LabelsAndEventClasses::CONNECTION</a></div><div class="ttdeci">static ARMNN_DLLEXPORT std::string CONNECTION</div><div class="ttdef"><b>Definition:</b> <a href="_labels_and_event_classes_8hpp_source.xhtml#l00044">LabelsAndEventClasses.hpp:44</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_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#l00049">ProfilingService.hpp:49</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_labels_and_event_classes_xhtml_a32781b19f1f956b2d8c0c703b093f93f"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#a32781b19f1f956b2d8c0c703b093f93f">armnn::profiling::LabelsAndEventClasses::PROCESS_ID_LABEL</a></div><div class="ttdeci">static ARMNN_DLLEXPORT std::string PROCESS_ID_LABEL</div><div class="ttdef"><b>Definition:</b> <a href="_labels_and_event_classes_8hpp_source.xhtml#l00030">LabelsAndEventClasses.hpp:30</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_labels_and_event_classes_xhtml_a28bee8fd642c7718de3df93e0342644f"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#a28bee8fd642c7718de3df93e0342644f">armnn::profiling::LabelsAndEventClasses::INDEX_GUID</a></div><div class="ttdeci">static ARMNN_DLLEXPORT ProfilingStaticGuid INDEX_GUID</div><div class="ttdef"><b>Definition:</b> <a href="_labels_and_event_classes_8hpp_source.xhtml#l00034">LabelsAndEventClasses.hpp:34</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#l00129">ICounterDirectory.hpp:129</a></div></div>
<div class="ttc" id="classarmnn_1_1_mock_backend_profiling_context_xhtml_af2c108bdd805535a58a13553b5848f31"><div class="ttname"><a href="classarmnn_1_1_mock_backend_profiling_context.xhtml#af2c108bdd805535a58a13553b5848f31">armnn::MockBackendProfilingContext::TimelineReportingEnabled</a></div><div class="ttdeci">bool TimelineReportingEnabled()</div><div class="ttdef"><b>Definition:</b> <a href="_mock_backend_8hpp_source.xhtml#l00107">MockBackend.hpp:107</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_labels_and_event_classes_xhtml_adb91c720887d6f0e45daf196741a5a0b"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#adb91c720887d6f0e45daf196741a5a0b">armnn::profiling::LabelsAndEventClasses::TYPE_GUID</a></div><div class="ttdeci">static ARMNN_DLLEXPORT ProfilingStaticGuid TYPE_GUID</div><div class="ttdef"><b>Definition:</b> <a href="_labels_and_event_classes_8hpp_source.xhtml#l00033">LabelsAndEventClasses.hpp:33</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_timeline_packet_writer_factory_xhtml"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_timeline_packet_writer_factory.xhtml">armnn::profiling::TimelinePacketWriterFactory</a></div><div class="ttdef"><b>Definition:</b> <a href="_timeline_packet_writer_factory_8hpp_source.xhtml#l00019">TimelinePacketWriterFactory.hpp:19</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_buffer_manager_xhtml"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_buffer_manager.xhtml">armnn::profiling::BufferManager</a></div><div class="ttdef"><b>Definition:</b> <a href="_buffer_manager_8hpp_source.xhtml#l00022">BufferManager.hpp:22</a></div></div>
<div class="ttc" id="namespacearmnn_1_1profiling_xhtml_aabcf5c25522e8a0542c95174056cfcac"><div class="ttname"><a href="namespacearmnn_1_1profiling.xhtml#aabcf5c25522e8a0542c95174056cfcac">armnn::profiling::uint32_t_size</a></div><div class="ttdeci">uint32_t uint32_t_size</div><div class="ttdef"><b>Definition:</b> <a href="_directory_capture_command_handler_8cpp_source.xhtml#l00022">DirectoryCaptureCommandHandler.cpp:22</a></div></div>
<div class="ttc" id="classarmnn_1_1_i_connectable_layer_xhtml_a6ec9e0eb66d7d6a01240492a0b18104c"><div class="ttname"><a href="classarmnn_1_1_i_connectable_layer.xhtml#a6ec9e0eb66d7d6a01240492a0b18104c">armnn::IConnectableLayer::GetInputSlot</a></div><div class="ttdeci">virtual const IInputSlot &amp; GetInputSlot(unsigned int index) const =0</div><div class="ttdoc">Get a const input slot handle by slot index. </div></div>
<div class="ttc" id="namespacearmnn_xhtml_a375ca3cff9f1b005d1412dc5f3cf5b6e"><div class="ttname"><a href="namespacearmnn.xhtml#a375ca3cff9f1b005d1412dc5f3cf5b6e">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#l00035">NumericCast.hpp:35</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="structarmnn_1_1_i_runtime_1_1_creation_options_1_1_external_profiling_options_xhtml_a5b304d775657afbf1fb724af57add374"><div class="ttname"><a href="structarmnn_1_1_i_runtime_1_1_creation_options_1_1_external_profiling_options.xhtml#a5b304d775657afbf1fb724af57add374">armnn::IRuntime::CreationOptions::ExternalProfilingOptions::m_TimelineEnabled</a></div><div class="ttdeci">bool m_TimelineEnabled</div><div class="ttdef"><b>Definition:</b> <a href="_i_runtime_8hpp_source.xhtml#l00076">IRuntime.hpp:76</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204"><div class="ttname"><a href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">armnn::DataType::Float32</a></div></div>
<div class="ttc" id="classarmnn_1_1_i_connectable_layer_xhtml_a80ac4eda2e7f2757ec9dd96fc96dbd16"><div class="ttname"><a href="classarmnn_1_1_i_connectable_layer.xhtml#a80ac4eda2e7f2757ec9dd96fc96dbd16">armnn::IConnectableLayer::GetOutputSlot</a></div><div class="ttdeci">virtual const IOutputSlot &amp; GetOutputSlot(unsigned int index) const =0</div><div class="ttdoc">Get the const output slot handle by slot index. </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="classarmnn_1_1profiling_1_1_labels_and_event_classes_xhtml_a17635e315ec5b74687b521a0135bd759"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#a17635e315ec5b74687b521a0135bd759">armnn::profiling::LabelsAndEventClasses::CHILD_LABEL</a></div><div class="ttdeci">static ARMNN_DLLEXPORT std::string CHILD_LABEL</div><div class="ttdef"><b>Definition:</b> <a href="_labels_and_event_classes_8hpp_source.xhtml#l00028">LabelsAndEventClasses.hpp:28</a></div></div>
<div class="ttc" id="_gatord_mock_tests_8cpp_xhtml_a7314a0227c37040f98b89c54d9bde720"><div class="ttname"><a href="_gatord_mock_tests_8cpp.xhtml#a7314a0227c37040f98b89c54d9bde720">WaitFor</a></div><div class="ttdeci">void WaitFor(std::function&lt; bool()&gt; predicate, std::string errorMsg, uint32_t timeout=2000, uint32_t sleepTime=50)</div><div class="ttdef"><b>Definition:</b> <a href="_gatord_mock_tests_8cpp_source.xhtml#l00109">GatordMockTests.cpp:109</a></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#l00036">ICounterDirectory.hpp:36</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#l00081">GatordMockService.cpp:81</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_ace74f6f9feb95a964a49d79458232703"><div class="ttname"><a href="namespacearmnn.xhtml#ace74f6f9feb95a964a49d79458232703">armnn::INetworkPtr</a></div><div class="ttdeci">std::unique_ptr&lt; INetwork, void(*)(INetwork *network)&gt; INetworkPtr</div><div class="ttdef"><b>Definition:</b> <a href="_i_network_8hpp_source.xhtml#l00173">INetwork.hpp:173</a></div></div>
<div class="ttc" id="classarmnn_1_1_i_output_slot_xhtml_ac1835f8756a9f03c02fcf9664e3a0fce"><div class="ttname"><a href="classarmnn_1_1_i_output_slot.xhtml#ac1835f8756a9f03c02fcf9664e3a0fce">armnn::IOutputSlot::Connect</a></div><div class="ttdeci">virtual int Connect(IInputSlot &amp;destination)=0</div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_timeline_packet_writer_factory_xhtml_a169a8836d1862bc9ed922e124e905302"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_timeline_packet_writer_factory.xhtml#a169a8836d1862bc9ed922e124e905302">armnn::profiling::TimelinePacketWriterFactory::GetSendTimelinePacket</a></div><div class="ttdeci">std::unique_ptr&lt; ISendTimelinePacket &gt; GetSendTimelinePacket() const</div><div class="ttdef"><b>Definition:</b> <a href="_timeline_packet_writer_factory_8cpp_source.xhtml#l00016">TimelinePacketWriterFactory.cpp:16</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_labels_and_event_classes_xhtml_a0c786c3e4560c019deef4d6fc63b847b"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#a0c786c3e4560c019deef4d6fc63b847b">armnn::profiling::LabelsAndEventClasses::PROCESS_ID_GUID</a></div><div class="ttdeci">static ARMNN_DLLEXPORT ProfilingStaticGuid PROCESS_ID_GUID</div><div class="ttdef"><b>Definition:</b> <a href="_labels_and_event_classes_8hpp_source.xhtml#l00038">LabelsAndEventClasses.hpp:38</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_directory_capture_command_handler_xhtml_adfaa32654e05eab63b2adc34b2138475"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_directory_capture_command_handler.xhtml#adfaa32654e05eab63b2adc34b2138475">armnn::profiling::DirectoryCaptureCommandHandler::GetCounterDirectory</a></div><div class="ttdeci">const ICounterDirectory &amp; GetCounterDirectory() const</div><div class="ttdef"><b>Definition:</b> <a href="_directory_capture_command_handler_8cpp_source.xhtml#l00320">DirectoryCaptureCommandHandler.cpp:320</a></div></div>
<div class="ttc" id="structarmnn_1_1_normalization_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_normalization_descriptor.xhtml">armnn::NormalizationDescriptor</a></div><div class="ttdoc">A NormalizationDescriptor for the NormalizationLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00567">Descriptors.hpp:567</a></div></div>
<div class="ttc" id="structarmnn_1_1_i_runtime_1_1_creation_options_xhtml_a30412a91cadff138686eaeb12f5357cc"><div class="ttname"><a href="structarmnn_1_1_i_runtime_1_1_creation_options.xhtml#a30412a91cadff138686eaeb12f5357cc">armnn::IRuntime::CreationOptions::m_ProfilingOptions</a></div><div class="ttdeci">ExternalProfilingOptions m_ProfilingOptions</div><div class="ttdef"><b>Definition:</b> <a href="_i_runtime_8hpp_source.xhtml#l00084">IRuntime.hpp:84</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#l00220">ProfilingService.cpp:220</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#l00137">ICounterDirectory.hpp:137</a></div></div>
<div class="ttc" id="classarmnn_1_1_i_network_xhtml_a464f0ff87b1aabf71febaa71321dd40b"><div class="ttname"><a href="classarmnn_1_1_i_network.xhtml#a464f0ff87b1aabf71febaa71321dd40b">armnn::INetwork::Create</a></div><div class="ttdeci">static INetworkPtr Create(NetworkOptions networkOptions={})</div><div class="ttdef"><b>Definition:</b> <a href="_network_8cpp_source.xhtml#l00510">Network.cpp:510</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_labels_and_event_classes_xhtml_ade2233e4c4600c2353dbdd1729977872"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#ade2233e4c4600c2353dbdd1729977872">armnn::profiling::LabelsAndEventClasses::BACKENDID_GUID</a></div><div class="ttdeci">static ARMNN_DLLEXPORT ProfilingStaticGuid BACKENDID_GUID</div><div class="ttdef"><b>Definition:</b> <a href="_labels_and_event_classes_8hpp_source.xhtml#l00035">LabelsAndEventClasses.hpp:35</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#l00024">GatordMockService.cpp:24</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_labels_and_event_classes_xhtml_a91cd46752a820295fde06a27f90383ac"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#a91cd46752a820295fde06a27f90383ac">armnn::profiling::LabelsAndEventClasses::INFERENCE</a></div><div class="ttdeci">static ARMNN_DLLEXPORT std::string INFERENCE</div><div class="ttdef"><b>Definition:</b> <a href="_labels_and_event_classes_8hpp_source.xhtml#l00045">LabelsAndEventClasses.hpp:45</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_labels_and_event_classes_xhtml_a1caad872d87e206434faf5ca051cf36c"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#a1caad872d87e206434faf5ca051cf36c">armnn::profiling::LabelsAndEventClasses::CHILD_GUID</a></div><div class="ttdeci">static ARMNN_DLLEXPORT ProfilingStaticGuid CHILD_GUID</div><div class="ttdef"><b>Definition:</b> <a href="_labels_and_event_classes_8hpp_source.xhtml#l00036">LabelsAndEventClasses.hpp:36</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 class="ttc" id="classarmnn_1_1profiling_1_1_labels_and_event_classes_xhtml_a12eb35b84849b5d5c895481f6b09a282"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_labels_and_event_classes.xhtml#a12eb35b84849b5d5c895481f6b09a282">armnn::profiling::LabelsAndEventClasses::LAYER</a></div><div class="ttdeci">static ARMNN_DLLEXPORT std::string LAYER</div><div class="ttdef"><b>Definition:</b> <a href="_labels_and_event_classes_8hpp_source.xhtml#l00041">LabelsAndEventClasses.hpp:41</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 19 2021 15:26:05 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>