aboutsummaryrefslogtreecommitdiff
path: root/21.02/_gatord_mock_tests_8cpp.xhtml
blob: 623bcee9f37bc9a73dfe3b97e5e53b3ada466bc1 (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
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
<!-- 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 File Reference</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.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="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">GatordMockTests.cpp File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;common/include/CommandHandlerRegistry.hpp&gt;</code><br />
<code>#include &lt;server/include/basePipeServer/ConnectionHandler.hpp&gt;</code><br />
<code>#include &lt;<a class="el" href="_directory_capture_command_handler_8hpp_source.xhtml">DirectoryCaptureCommandHandler.hpp</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="_gatord_mock_service_8hpp_source.xhtml">GatordMockService.hpp</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="_labels_and_event_classes_8hpp_source.xhtml">LabelsAndEventClasses.hpp</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="_profiling_service_8hpp_source.xhtml">ProfilingService.hpp</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="_timeline_packet_writer_factory_8hpp_source.xhtml">TimelinePacketWriterFactory.hpp</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="_numeric_cast_8hpp_source.xhtml">armnn/utility/NumericCast.hpp</a>&gt;</code><br />
<code>#include &lt;server/include/timelineDecoder/TimelineDirectoryCaptureCommandHandler.hpp&gt;</code><br />
<code>#include &lt;server/include/timelineDecoder/TimelineDecoder.hpp&gt;</code><br />
<code>#include &lt;<a class="el" href="_runtime_8hpp_source.xhtml">Runtime.hpp</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="_mock_backend_8hpp_source.xhtml">MockBackend.hpp</a>&gt;</code><br />
<code>#include &lt;boost/test/test_tools.hpp&gt;</code><br />
<code>#include &lt;boost/test/unit_test_suite.hpp&gt;</code><br />
</div>
<p><a href="_gatord_mock_tests_8cpp_source.xhtml">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a8b02cdd10cf4143333b67a42304a5e76"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_gatord_mock_tests_8cpp.xhtml#a8b02cdd10cf4143333b67a42304a5e76">BOOST_AUTO_TEST_CASE</a> (CounterCaptureHandlingTest)</td></tr>
<tr class="separator:a8b02cdd10cf4143333b67a42304a5e76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7314a0227c37040f98b89c54d9bde720"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_gatord_mock_tests_8cpp.xhtml#a7314a0227c37040f98b89c54d9bde720">WaitFor</a> (std::function&lt; bool()&gt; predicate, std::string errorMsg, uint32_t timeout=2000, uint32_t sleepTime=50)</td></tr>
<tr class="separator:a7314a0227c37040f98b89c54d9bde720"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9e55a43e26d350d55ef8ed99cd0b44e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_gatord_mock_tests_8cpp.xhtml#aa9e55a43e26d350d55ef8ed99cd0b44e">CheckTimelineDirectory</a> (arm::pipe::TimelineDirectoryCaptureCommandHandler &amp;commandHandler)</td></tr>
<tr class="separator:aa9e55a43e26d350d55ef8ed99cd0b44e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a176f89f0b782dec05cef139f5b91101d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_gatord_mock_tests_8cpp.xhtml#a176f89f0b782dec05cef139f5b91101d">CheckTimelinePackets</a> (arm::pipe::TimelineDecoder &amp;timelineDecoder)</td></tr>
<tr class="separator:a176f89f0b782dec05cef139f5b91101d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95b346e0dd2dec2ca7426bbb4d4f73dc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_gatord_mock_tests_8cpp.xhtml#a95b346e0dd2dec2ca7426bbb4d4f73dc">BOOST_AUTO_TEST_CASE</a> (GatorDMockEndToEnd)</td></tr>
<tr class="separator:a95b346e0dd2dec2ca7426bbb4d4f73dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad014a997058ab83c27843525f004adcc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_gatord_mock_tests_8cpp.xhtml#ad014a997058ab83c27843525f004adcc">BOOST_AUTO_TEST_CASE</a> (GatorDMockTimeLineActivation)</td></tr>
<tr class="separator:ad014a997058ab83c27843525f004adcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a id="a8b02cdd10cf4143333b67a42304a5e76"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8b02cdd10cf4143333b67a42304a5e76">&#9670;&nbsp;</a></span>BOOST_AUTO_TEST_CASE() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">BOOST_AUTO_TEST_CASE </td>
          <td>(</td>
          <td class="paramtype">CounterCaptureHandlingTest&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_gatord_mock_tests_8cpp_source.xhtml#l00032">32</a> of file <a class="el" href="_gatord_mock_tests_8cpp_source.xhtml">GatordMockTests.cpp</a>.</p>

<p class="reference">References <a class="el" href="_assert_8hpp_source.xhtml#l00014">ARMNN_ASSERT</a>, <a class="el" href="_periodic_counter_capture_command_handler_8hpp_source.xhtml#l00046">PeriodicCounterCaptureCommandHandler::m_CounterCaptureValues</a>, <a class="el" href="_periodic_counter_capture_command_handler_8hpp_source.xhtml#l00048">PeriodicCounterCaptureCommandHandler::m_CurrentPeriodValue</a>, <a class="el" href="_periodic_counter_capture_command_handler_8hpp_source.xhtml#l00022">CounterCaptureValues::m_Uids</a>, <a class="el" href="_numeric_cast_8hpp_source.xhtml#l00035">armnn::numeric_cast()</a>, <a class="el" href="_profiling_utils_8cpp_source.xhtml#l00128">armnn::profiling::WriteUint16()</a>, <a class="el" href="_profiling_utils_8cpp_source.xhtml#l00121">armnn::profiling::WriteUint32()</a>, and <a class="el" href="_profiling_utils_8cpp_source.xhtml#l00114">armnn::profiling::WriteUint64()</a>.</p>
<div class="fragment"><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.m_CurrentPeriodValue == 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.m_CounterCaptureValues.m_Uids.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.m_CounterCaptureValues.m_Uids[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="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="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="_assert_8hpp_xhtml_a5698be69cbd5dfe6c28fcd9867e8cbed"><div class="ttname"><a href="_assert_8hpp.xhtml#a5698be69cbd5dfe6c28fcd9867e8cbed">ARMNN_ASSERT</a></div><div class="ttdeci">#define ARMNN_ASSERT(COND)</div><div class="ttdef"><b>Definition:</b> <a href="_assert_8hpp_source.xhtml#l00014">Assert.hpp:14</a></div></div>
<div class="ttc" id="classarmnn_1_1gatordmock_1_1_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_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><!-- fragment -->
</div>
</div>
<a id="a95b346e0dd2dec2ca7426bbb4d4f73dc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a95b346e0dd2dec2ca7426bbb4d4f73dc">&#9670;&nbsp;</a></span>BOOST_AUTO_TEST_CASE() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">BOOST_AUTO_TEST_CASE </td>
          <td>(</td>
          <td class="paramtype">GatorDMockEndToEnd&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_gatord_mock_tests_8cpp_source.xhtml#l00239">239</a> of file <a class="el" href="_gatord_mock_tests_8cpp_source.xhtml">GatordMockTests.cpp</a>.</p>

<p class="reference">References <a class="el" href="namespacearmnn_1_1profiling.xhtml#acb0c054138599582d5a5f537e9798806a4d3d769b812b6faa6b76e1a8abaece2d">armnn::profiling::Active</a>, <a class="el" href="_gatord_mock_tests_8cpp_source.xhtml#l00123">CheckTimelineDirectory()</a>, <a class="el" href="_gatord_mock_tests_8cpp_source.xhtml#l00187">CheckTimelinePackets()</a>, <a class="el" href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#a718a75d4c178cf3f687b3f27b8f55091">ICounterDirectory::GetCategories()</a>, <a class="el" href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#ab43b0472c37fe51694977ae9b4132404">ICounterDirectory::GetCategoryCount()</a>, <a class="el" href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#a81881e3910b23455b46ec30c8420c695">ICounterDirectory::GetCounter()</a>, <a class="el" href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#acab78d0987a9cca5a9cac957be610a7d">ICounterDirectory::GetCounterCount()</a>, <a class="el" href="_directory_capture_command_handler_8cpp_source.xhtml#l00320">DirectoryCaptureCommandHandler::GetCounterDirectory()</a>, <a class="el" href="_profiling_service_8cpp_source.xhtml#l00220">ProfilingService::GetCounterDirectory()</a>, <a class="el" href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#ad9fa9b8364fcaa2c940ef8e78eff8df2">ICounterDirectory::GetCounters()</a>, <a class="el" href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#aef59fdca57a5bb822e22cacfc5836fab">ICounterDirectory::GetCounterSetCount()</a>, <a class="el" href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#a8908490db3b8a0003a639ac56b956cee">ICounterDirectory::GetCounterSets()</a>, <a class="el" href="_profiling_service_8cpp_source.xhtml#l00230">ProfilingService::GetCurrentState()</a>, <a class="el" href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#aecd5912045fd41fe41dc96c9844f6deb">ICounterDirectory::GetDeviceCount()</a>, <a class="el" href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#a98e6769cb933d30bfd3ca25f61bd8438">ICounterDirectory::GetDevices()</a>, <a class="el" href="_gatord_mock_service_8hpp_source.xhtml#l00123">GatordMockService::GetDirectoryCaptureCommandHandler()</a>, <a class="el" href="_gatord_mock_service_8hpp_source.xhtml#l00128">GatordMockService::GetTimelineDecoder()</a>, <a class="el" href="_gatord_mock_service_8hpp_source.xhtml#l00133">GatordMockService::GetTimelineDirectoryCaptureCommandHandler()</a>, <a class="el" href="_gatord_mock_service_8cpp_source.xhtml#l00064">GatordMockService::LaunchReceivingThread()</a>, <a class="el" href="_i_counter_directory_8hpp_source.xhtml#l00125">Counter::m_Class</a>, <a class="el" href="_i_counter_directory_8hpp_source.xhtml#l00134">Counter::m_CounterSetUid</a>, <a class="el" href="_i_counter_directory_8hpp_source.xhtml#l00129">Counter::m_Description</a>, <a class="el" href="_i_counter_directory_8hpp_source.xhtml#l00133">Counter::m_DeviceUid</a>, <a class="el" href="_i_runtime_8hpp_source.xhtml#l00075">IRuntime::CreationOptions::ExternalProfilingOptions::m_EnableProfiling</a>, <a class="el" href="_i_counter_directory_8hpp_source.xhtml#l00126">Counter::m_Interpolation</a>, <a class="el" href="_i_counter_directory_8hpp_source.xhtml#l00127">Counter::m_Multiplier</a>, <a class="el" href="_i_counter_directory_8hpp_source.xhtml#l00128">Counter::m_Name</a>, <a class="el" href="_i_runtime_8hpp_source.xhtml#l00076">IRuntime::CreationOptions::ExternalProfilingOptions::m_TimelineEnabled</a>, <a class="el" href="_i_counter_directory_8hpp_source.xhtml#l00130">Counter::m_Units</a>, <a class="el" href="namespacearmnn_1_1profiling.xhtml#acb0c054138599582d5a5f537e9798806a4075072d219e061ca0f3124f8fbef463">armnn::profiling::NotConnected</a>, <a class="el" href="_directory_capture_command_handler_8hpp_source.xhtml#l00048">DirectoryCaptureCommandHandler::ParsedCounterDirectory()</a>, <a class="el" href="_profiling_service_8cpp_source.xhtml#l00039">ProfilingService::ResetExternalProfilingOptions()</a>, <a class="el" href="_gatord_mock_service_8cpp_source.xhtml#l00024">GatordMockService::SendConnectionAck()</a>, <a class="el" href="_directory_capture_command_handler_8hpp_source.xhtml#l00059">DirectoryCaptureCommandHandler::TranslateUIDCopyToOriginal()</a>, <a class="el" href="namespacearmnn_1_1profiling.xhtml#acb0c054138599582d5a5f537e9798806a962074a9de1cf3d6d7b6f955a0a94820">armnn::profiling::Uninitialised</a>, <a class="el" href="_profiling_service_8cpp_source.xhtml#l00110">ProfilingService::Update()</a>, <a class="el" href="_gatord_mock_tests_8cpp_source.xhtml#l00109">WaitFor()</a>, <a class="el" href="_gatord_mock_service_8cpp_source.xhtml#l00081">GatordMockService::WaitForReceivingThread()</a>, <a class="el" href="_gatord_mock_service_8cpp_source.xhtml#l00101">GatordMockService::WaitForStreamMetaData()</a>, and <a class="el" href="namespacearmnn_1_1profiling.xhtml#acb0c054138599582d5a5f537e9798806a1dc1edc76d5b3c0325f00002f4c841f5">armnn::profiling::WaitingForAck</a>.</p>
<div class="fragment"><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>() == profiling::ProfilingState::Uninitialised);</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>() == profiling::ProfilingState::NotConnected);</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.GetTimelineDecoder();</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.GetDirectoryCaptureCommandHandler();</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>() == profiling::ProfilingState::WaitingForAck;},</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.WaitForStreamMetaData())</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.SendConnectionAck();</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.LaunchReceivingThread();</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>() == profiling::ProfilingState::Active;},</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.GetTimelineDirectoryCaptureCommandHandler());</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.WaitForReceivingThread();</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="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="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="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="_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_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="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="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="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_1profiling_1_1_i_counter_directory_xhtml_ab43b0472c37fe51694977ae9b4132404"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_i_counter_directory.xhtml#ab43b0472c37fe51694977ae9b4132404">armnn::profiling::ICounterDirectory::GetCategoryCount</a></div><div class="ttdeci">virtual uint16_t GetCategoryCount() const =0</div></div>
<div class="ttc" id="structarmnn_1_1_i_runtime_1_1_creation_options_1_1_external_profiling_options_xhtml_a26d42007440bb01a1a6d0ab3b5a657ee"><div class="ttname"><a href="structarmnn_1_1_i_runtime_1_1_creation_options_1_1_external_profiling_options.xhtml#a26d42007440bb01a1a6d0ab3b5a657ee">armnn::IRuntime::CreationOptions::ExternalProfilingOptions::m_EnableProfiling</a></div><div class="ttdeci">bool m_EnableProfiling</div><div class="ttdef"><b>Definition:</b> <a href="_i_runtime_8hpp_source.xhtml#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_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_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="_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="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_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="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="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_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="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="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_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="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_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="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_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_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="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="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="_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_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="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><!-- fragment -->
</div>
</div>
<a id="ad014a997058ab83c27843525f004adcc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad014a997058ab83c27843525f004adcc">&#9670;&nbsp;</a></span>BOOST_AUTO_TEST_CASE() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">BOOST_AUTO_TEST_CASE </td>
          <td>(</td>
          <td class="paramtype">GatorDMockTimeLineActivation&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_gatord_mock_tests_8cpp_source.xhtml#l00391">391</a> of file <a class="el" href="_gatord_mock_tests_8cpp_source.xhtml">GatordMockTests.cpp</a>.</p>

<p class="reference">References <a class="el" href="_backend_registry_8cpp_source.xhtml#l00013">armnn::BackendRegistryInstance()</a>, <a class="el" href="_profiler_tests_8cpp.xhtml#af7f71af5c6c124222dd1c42c5df892f4">BOOST_AUTO_TEST_SUITE_END()</a>, <a class="el" href="classarmnn_1_1_i_output_slot.xhtml#ac1835f8756a9f03c02fcf9664e3a0fce">IOutputSlot::Connect()</a>, <a class="el" href="namespacearmnn.xhtml#ae2f04a162585c0a5222a537efd5456aea83c2c4e9b658ccafbcbe6309c5d84c64">armnn::CpuRef</a>, <a class="el" href="_network_8cpp_source.xhtml#l00510">INetwork::Create()</a>, <a class="el" href="_profiling_service_8cpp_source.xhtml#l00191">ProfilingService::Disconnect()</a>, <a class="el" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">armnn::Float32</a>, <a class="el" href="_mock_backend_8hpp_source.xhtml#l00129">MockBackendProfilingService::GetContext()</a>, <a class="el" href="_runtime_8hpp_source.xhtml#l00070">RuntimeImpl::GetDeviceSpec()</a>, <a class="el" href="_gatord_mock_service_8hpp_source.xhtml#l00123">GatordMockService::GetDirectoryCaptureCommandHandler()</a>, <a class="el" href="classarmnn_1_1_i_connectable_layer.xhtml#a6ec9e0eb66d7d6a01240492a0b18104c">IConnectableLayer::GetInputSlot()</a>, <a class="el" href="classarmnn_1_1_i_connectable_layer.xhtml#a80ac4eda2e7f2757ec9dd96fc96dbd16">IConnectableLayer::GetOutputSlot()</a>, <a class="el" href="_test_utils_8cpp_source.xhtml#l00035">armnn::GetProfilingService()</a>, <a class="el" href="_gatord_mock_service_8hpp_source.xhtml#l00128">GatordMockService::GetTimelineDecoder()</a>, <a class="el" href="_mock_backend_8hpp_source.xhtml#l00123">MockBackendProfilingService::Instance()</a>, <a class="el" href="_gatord_mock_service_8cpp_source.xhtml#l00064">GatordMockService::LaunchReceivingThread()</a>, <a class="el" href="_runtime_8cpp_source.xhtml#l00109">RuntimeImpl::LoadNetwork()</a>, <a class="el" href="_i_runtime_8hpp_source.xhtml#l00075">IRuntime::CreationOptions::ExternalProfilingOptions::m_EnableProfiling</a>, <a class="el" href="_i_runtime_8hpp_source.xhtml#l00084">IRuntime::CreationOptions::m_ProfilingOptions</a>, <a class="el" href="_i_runtime_8hpp_source.xhtml#l00076">IRuntime::CreationOptions::ExternalProfilingOptions::m_TimelineEnabled</a>, <a class="el" href="_network_8cpp_source.xhtml#l01502">armnn::Optimize()</a>, <a class="el" href="_directory_capture_command_handler_8hpp_source.xhtml#l00048">DirectoryCaptureCommandHandler::ParsedCounterDirectory()</a>, <a class="el" href="_gatord_mock_service_8cpp_source.xhtml#l00044">GatordMockService::SendActivateTimelinePacket()</a>, <a class="el" href="_gatord_mock_service_8cpp_source.xhtml#l00024">GatordMockService::SendConnectionAck()</a>, <a class="el" href="_gatord_mock_service_8cpp_source.xhtml#l00054">GatordMockService::SendDeactivateTimelinePacket()</a>, <a class="el" href="classarmnn_1_1_i_output_slot.xhtml#a5ee4a6c9a2481245487b1b1a70d20fd0">IOutputSlot::SetTensorInfo()</a>, <a class="el" href="_mock_backend_8hpp_source.xhtml#l00107">MockBackendProfilingContext::TimelineReportingEnabled()</a>, <a class="el" href="_gatord_mock_tests_8cpp_source.xhtml#l00109">WaitFor()</a>, <a class="el" href="_gatord_mock_service_8cpp_source.xhtml#l00081">GatordMockService::WaitForReceivingThread()</a>, and <a class="el" href="_gatord_mock_service_8cpp_source.xhtml#l00101">GatordMockService::WaitForStreamMetaData()</a>.</p>
<div class="fragment"><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.WaitForStreamMetaData())</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.SendConnectionAck();</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.LaunchReceivingThread();</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(INetwork::Create());</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 }, DataType::Float32));</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 }, DataType::Float32));</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.GetDeviceSpec());</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.GetDirectoryCaptureCommandHandler().ParsedCounterDirectory();},</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.GetTimelineDecoder();</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.SendDeactivateTimelinePacket();</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.LoadNetwork(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.SendActivateTimelinePacket();</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.SendActivateTimelinePacket();</div><div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;    mockService.SendActivateTimelinePacket();</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.WaitForReceivingThread();</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="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="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_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="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_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="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="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_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="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_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_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="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_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_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="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="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_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_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_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="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="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="_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_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="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><!-- fragment -->
</div>
</div>
<a id="aa9e55a43e26d350d55ef8ed99cd0b44e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa9e55a43e26d350d55ef8ed99cd0b44e">&#9670;&nbsp;</a></span>CheckTimelineDirectory()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CheckTimelineDirectory </td>
          <td>(</td>
          <td class="paramtype">arm::pipe::TimelineDirectoryCaptureCommandHandler &amp;&#160;</td>
          <td class="paramname"><em>commandHandler</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_gatord_mock_tests_8cpp_source.xhtml#l00123">123</a> of file <a class="el" href="_gatord_mock_tests_8cpp_source.xhtml">GatordMockTests.cpp</a>.</p>

<p class="reference">References <a class="el" href="_buffer_manager_8cpp_source.xhtml#l00116">BufferManager::GetReadableBuffer()</a>, <a class="el" href="_timeline_packet_writer_factory_8cpp_source.xhtml#l00016">TimelinePacketWriterFactory::GetSendTimelinePacket()</a>, <a class="el" href="_profiling_utils_8cpp_source.xhtml#l00181">armnn::profiling::ReadUint32()</a>, <a class="el" href="_profiling_utils_8cpp_source.xhtml#l00195">armnn::profiling::ReadUint8()</a>, and <a class="el" href="_directory_capture_command_handler_8cpp_source.xhtml#l00022">armnn::profiling::uint32_t_size</a>.</p>

<p class="reference">Referenced by <a class="el" href="_gatord_mock_tests_8cpp_source.xhtml#l00239">BOOST_AUTO_TEST_CASE()</a>.</p>
<div class="fragment"><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.GetSendTimelinePacket();</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.GetReadableBuffer();</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="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="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="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><!-- fragment -->
</div>
</div>
<a id="a176f89f0b782dec05cef139f5b91101d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a176f89f0b782dec05cef139f5b91101d">&#9670;&nbsp;</a></span>CheckTimelinePackets()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CheckTimelinePackets </td>
          <td>(</td>
          <td class="paramtype">arm::pipe::TimelineDecoder &amp;&#160;</td>
          <td class="paramname"><em>timelineDecoder</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_gatord_mock_tests_8cpp_source.xhtml#l00187">187</a> of file <a class="el" href="_gatord_mock_tests_8cpp_source.xhtml">GatordMockTests.cpp</a>.</p>

<p class="reference">References <a class="el" href="_labels_and_event_classes_8hpp_source.xhtml#l00060">LabelsAndEventClasses::ARMNN_PROFILING_EOL_EVENT_CLASS</a>, <a class="el" href="_labels_and_event_classes_8hpp_source.xhtml#l00056">LabelsAndEventClasses::ARMNN_PROFILING_SOL_EVENT_CLASS</a>, <a class="el" href="_labels_and_event_classes_8hpp_source.xhtml#l00035">LabelsAndEventClasses::BACKENDID_GUID</a>, <a class="el" href="_labels_and_event_classes_8hpp_source.xhtml#l00027">LabelsAndEventClasses::BACKENDID_LABEL</a>, <a class="el" href="_labels_and_event_classes_8hpp_source.xhtml#l00036">LabelsAndEventClasses::CHILD_GUID</a>, <a class="el" href="_labels_and_event_classes_8hpp_source.xhtml#l00028">LabelsAndEventClasses::CHILD_LABEL</a>, <a class="el" href="_labels_and_event_classes_8hpp_source.xhtml#l00044">LabelsAndEventClasses::CONNECTION</a>, <a class="el" href="_labels_and_event_classes_8hpp_source.xhtml#l00050">LabelsAndEventClasses::CONNECTION_GUID</a>, <a class="el" href="_labels_and_event_classes_8hpp_source.xhtml#l00037">LabelsAndEventClasses::EXECUTION_OF_GUID</a>, <a class="el" href="_labels_and_event_classes_8hpp_source.xhtml#l00029">LabelsAndEventClasses::EXECUTION_OF_LABEL</a>, <a class="el" href="_labels_and_event_classes_8hpp_source.xhtml#l00034">LabelsAndEventClasses::INDEX_GUID</a>, <a class="el" href="_labels_and_event_classes_8hpp_source.xhtml#l00026">LabelsAndEventClasses::INDEX_LABEL</a>, <a class="el" href="_labels_and_event_classes_8hpp_source.xhtml#l00045">LabelsAndEventClasses::INFERENCE</a>, <a class="el" href="_labels_and_event_classes_8hpp_source.xhtml#l00051">LabelsAndEventClasses::INFERENCE_GUID</a>, <a class="el" href="_labels_and_event_classes_8hpp_source.xhtml#l00041">LabelsAndEventClasses::LAYER</a>, <a class="el" href="_labels_and_event_classes_8hpp_source.xhtml#l00047">LabelsAndEventClasses::LAYER_GUID</a>, <a class="el" href="_labels_and_event_classes_8hpp_source.xhtml#l00032">LabelsAndEventClasses::NAME_GUID</a>, <a class="el" href="_labels_and_event_classes_8hpp_source.xhtml#l00024">LabelsAndEventClasses::NAME_LABEL</a>, <a class="el" href="_labels_and_event_classes_8hpp_source.xhtml#l00043">LabelsAndEventClasses::NETWORK</a>, <a class="el" href="_labels_and_event_classes_8hpp_source.xhtml#l00049">LabelsAndEventClasses::NETWORK_GUID</a>, <a class="el" href="_labels_and_event_classes_8hpp_source.xhtml#l00038">LabelsAndEventClasses::PROCESS_ID_GUID</a>, <a class="el" href="_labels_and_event_classes_8hpp_source.xhtml#l00030">LabelsAndEventClasses::PROCESS_ID_LABEL</a>, <a class="el" href="_labels_and_event_classes_8hpp_source.xhtml#l00033">LabelsAndEventClasses::TYPE_GUID</a>, <a class="el" href="_labels_and_event_classes_8hpp_source.xhtml#l00025">LabelsAndEventClasses::TYPE_LABEL</a>, <a class="el" href="_labels_and_event_classes_8hpp_source.xhtml#l00042">LabelsAndEventClasses::WORKLOAD</a>, <a class="el" href="_labels_and_event_classes_8hpp_source.xhtml#l00046">LabelsAndEventClasses::WORKLOAD_EXECUTION</a>, <a class="el" href="_labels_and_event_classes_8hpp_source.xhtml#l00052">LabelsAndEventClasses::WORKLOAD_EXECUTION_GUID</a>, and <a class="el" href="_labels_and_event_classes_8hpp_source.xhtml#l00048">LabelsAndEventClasses::WORKLOAD_GUID</a>.</p>

<p class="reference">Referenced by <a class="el" href="_gatord_mock_tests_8cpp_source.xhtml#l00239">BOOST_AUTO_TEST_CASE()</a>.</p>
<div class="fragment"><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 == profiling::LabelsAndEventClasses::NAME_GUID);</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_Labels[i++].m_Name == profiling::LabelsAndEventClasses::NAME_LABEL);</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 == profiling::LabelsAndEventClasses::TYPE_GUID);</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_Labels[i++].m_Name == profiling::LabelsAndEventClasses::TYPE_LABEL);</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 == profiling::LabelsAndEventClasses::INDEX_GUID);</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_Labels[i++].m_Name == profiling::LabelsAndEventClasses::INDEX_LABEL);</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 == profiling::LabelsAndEventClasses::BACKENDID_GUID);</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_Labels[i++].m_Name == profiling::LabelsAndEventClasses::BACKENDID_LABEL);</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 == profiling::LabelsAndEventClasses::CHILD_GUID);</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_Labels[i++].m_Name == profiling::LabelsAndEventClasses::CHILD_LABEL);</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 == profiling::LabelsAndEventClasses::EXECUTION_OF_GUID);</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;                profiling::LabelsAndEventClasses::EXECUTION_OF_LABEL);</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 == profiling::LabelsAndEventClasses::PROCESS_ID_GUID);</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;                profiling::LabelsAndEventClasses::PROCESS_ID_LABEL);</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 == profiling::LabelsAndEventClasses::LAYER_GUID);</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_Labels[i++].m_Name == profiling::LabelsAndEventClasses::LAYER);</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 == profiling::LabelsAndEventClasses::WORKLOAD_GUID);</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_Labels[i++].m_Name == profiling::LabelsAndEventClasses::WORKLOAD);</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 == profiling::LabelsAndEventClasses::NETWORK_GUID);</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_Labels[i++].m_Name == profiling::LabelsAndEventClasses::NETWORK);</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 == profiling::LabelsAndEventClasses::CONNECTION_GUID);</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_Labels[i++].m_Name == profiling::LabelsAndEventClasses::CONNECTION);</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 == profiling::LabelsAndEventClasses::INFERENCE_GUID);</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    BOOST_CHECK(timelineDecoder.GetModel().m_Labels[i++].m_Name == profiling::LabelsAndEventClasses::INFERENCE);</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;                profiling::LabelsAndEventClasses::WORKLOAD_EXECUTION_GUID);</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;                profiling::LabelsAndEventClasses::WORKLOAD_EXECUTION);</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;                profiling::LabelsAndEventClasses::ARMNN_PROFILING_SOL_EVENT_CLASS);</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;                profiling::LabelsAndEventClasses::ARMNN_PROFILING_EOL_EVENT_CLASS);</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<a id="a7314a0227c37040f98b89c54d9bde720"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7314a0227c37040f98b89c54d9bde720">&#9670;&nbsp;</a></span>WaitFor()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void WaitFor </td>
          <td>(</td>
          <td class="paramtype">std::function&lt; bool()&gt;&#160;</td>
          <td class="paramname"><em>predicate</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::string&#160;</td>
          <td class="paramname"><em>errorMsg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>timeout</em> = <code>2000</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>sleepTime</em> = <code>50</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_gatord_mock_tests_8cpp_source.xhtml#l00109">109</a> of file <a class="el" href="_gatord_mock_tests_8cpp_source.xhtml">GatordMockTests.cpp</a>.</p>

<p class="reference">Referenced by <a class="el" href="_gatord_mock_tests_8cpp_source.xhtml#l00239">BOOST_AUTO_TEST_CASE()</a>.</p>
<div class="fragment"><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><!-- fragment -->
</div>
</div>
</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:08 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>