aboutsummaryrefslogtreecommitdiff
path: root/21.02/classarmnn_1_1profiling_1_1_test_timeline_packet_handler.xhtml
diff options
context:
space:
mode:
authorJan Eilers <jan.eilers@arm.com>2021-02-25 17:44:00 +0000
committerJan Eilers <jan.eilers@arm.com>2021-02-25 18:27:49 +0000
commitfd627ffaec8fd8801d980b4c91ee7c0607ab6aaf (patch)
treeeb4bc8f9b411f30c7655616142b5a4bdd3a1acd0 /21.02/classarmnn_1_1profiling_1_1_test_timeline_packet_handler.xhtml
parentfb14ebbd68e04876809145296af96f6f41857418 (diff)
downloadarmnn-fd627ffaec8fd8801d980b4c91ee7c0607ab6aaf.tar.gz
IVGCVSW-5687 Update Doxygen Docu
* Update Doxygen Documentation for 21.02 release Signed-off-by: Jan Eilers <jan.eilers@arm.com> Change-Id: I9ed2f9caab038836ea99d7b378d7899fe431a4e5
Diffstat (limited to '21.02/classarmnn_1_1profiling_1_1_test_timeline_packet_handler.xhtml')
-rw-r--r--21.02/classarmnn_1_1profiling_1_1_test_timeline_packet_handler.xhtml375
1 files changed, 375 insertions, 0 deletions
diff --git a/21.02/classarmnn_1_1profiling_1_1_test_timeline_packet_handler.xhtml b/21.02/classarmnn_1_1profiling_1_1_test_timeline_packet_handler.xhtml
new file mode 100644
index 0000000000..6f4246038c
--- /dev/null
+++ b/21.02/classarmnn_1_1profiling_1_1_test_timeline_packet_handler.xhtml
@@ -0,0 +1,375 @@
+<!-- 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: TestTimelinePacketHandler Class 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('classarmnn_1_1profiling_1_1_test_timeline_packet_handler.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="#pub-methods">Public Member Functions</a> &#124;
+<a href="classarmnn_1_1profiling_1_1_test_timeline_packet_handler-members.xhtml">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">TestTimelinePacketHandler Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include &lt;<a class="el" href="_test_timeline_packet_handler_8hpp_source.xhtml">TestTimelinePacketHandler.hpp</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for TestTimelinePacketHandler:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classarmnn_1_1profiling_1_1_test_timeline_packet_handler.png" usemap="#TestTimelinePacketHandler_map" alt=""/>
+ <map id="TestTimelinePacketHandler_map" name="TestTimelinePacketHandler_map">
+<area href="classarmnn_1_1profiling_1_1_i_local_packet_handler.xhtml" alt="ILocalPacketHandler" shape="rect" coords="0,0,164,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a1335cc5552c5a86ecfe9cc19642f10f8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1profiling_1_1_test_timeline_packet_handler.xhtml#a1335cc5552c5a86ecfe9cc19642f10f8">TestTimelinePacketHandler</a> ()</td></tr>
+<tr class="separator:a1335cc5552c5a86ecfe9cc19642f10f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0729ebfcf0d2e4717b94f212fac0bc0c"><td class="memItemLeft" align="right" valign="top">virtual std::vector&lt; uint32_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1profiling_1_1_test_timeline_packet_handler.xhtml#a0729ebfcf0d2e4717b94f212fac0bc0c">GetHeadersAccepted</a> () override</td></tr>
+<tr class="separator:a0729ebfcf0d2e4717b94f212fac0bc0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9cb2d435819c130a15f14feffab24688"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1profiling_1_1_test_timeline_packet_handler.xhtml#a9cb2d435819c130a15f14feffab24688">HandlePacket</a> (const arm::pipe::Packet &amp;packet) override</td></tr>
+<tr class="memdesc:a9cb2d435819c130a15f14feffab24688"><td class="mdescLeft">&#160;</td><td class="mdescRight">process the packet <a href="#a9cb2d435819c130a15f14feffab24688">More...</a><br /></td></tr>
+<tr class="separator:a9cb2d435819c130a15f14feffab24688"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a17a237457e57625296e6b24feb19c60a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1profiling_1_1_test_timeline_packet_handler.xhtml#a17a237457e57625296e6b24feb19c60a">Stop</a> ()</td></tr>
+<tr class="separator:a17a237457e57625296e6b24feb19c60a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a72dbf07f5a1765ef4b046bfa932578d0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1profiling_1_1_test_timeline_packet_handler.xhtml#a72dbf07f5a1765ef4b046bfa932578d0">WaitOnInferenceCompletion</a> (unsigned int timeout)</td></tr>
+<tr class="separator:a72dbf07f5a1765ef4b046bfa932578d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1187d00f0fed291d622c85e47a68673d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1profiling_1_1_test_timeline_packet_handler.xhtml#a1187d00f0fed291d622c85e47a68673d">SetInferenceComplete</a> ()</td></tr>
+<tr class="separator:a1187d00f0fed291d622c85e47a68673d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0df1f236af1d810c22098adbfc00a1a3"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1profiling_1_1_timeline_model.xhtml">TimelineModel</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1profiling_1_1_test_timeline_packet_handler.xhtml#a0df1f236af1d810c22098adbfc00a1a3">GetTimelineModel</a> () const</td></tr>
+<tr class="separator:a0df1f236af1d810c22098adbfc00a1a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa5289afd4406402dd2437a9a278c0479"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1profiling_1_1_test_timeline_packet_handler.xhtml#aa5289afd4406402dd2437a9a278c0479">SetConnection</a> (<a class="el" href="classarmnn_1_1profiling_1_1_i_internal_profiling_connection.xhtml">IInternalProfilingConnection</a> *profilingConnection) override</td></tr>
+<tr class="memdesc:aa5289afd4406402dd2437a9a278c0479"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a profiling connection on the handler. <a href="#aa5289afd4406402dd2437a9a278c0479">More...</a><br /></td></tr>
+<tr class="separator:aa5289afd4406402dd2437a9a278c0479"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classarmnn_1_1profiling_1_1_i_local_packet_handler"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classarmnn_1_1profiling_1_1_i_local_packet_handler')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classarmnn_1_1profiling_1_1_i_local_packet_handler.xhtml">ILocalPacketHandler</a></td></tr>
+<tr class="memitem:a9bef5ba2e8c6e4a7ca3397a51ad98159 inherit pub_methods_classarmnn_1_1profiling_1_1_i_local_packet_handler"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1profiling_1_1_i_local_packet_handler.xhtml#a9bef5ba2e8c6e4a7ca3397a51ad98159">~ILocalPacketHandler</a> ()</td></tr>
+<tr class="separator:a9bef5ba2e8c6e4a7ca3397a51ad98159 inherit pub_methods_classarmnn_1_1profiling_1_1_i_local_packet_handler"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p class="definition">Definition at line <a class="el" href="_test_timeline_packet_handler_8hpp_source.xhtml#l00046">46</a> of file <a class="el" href="_test_timeline_packet_handler_8hpp_source.xhtml">TestTimelinePacketHandler.hpp</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="a1335cc5552c5a86ecfe9cc19642f10f8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1335cc5552c5a86ecfe9cc19642f10f8">&#9670;&nbsp;</a></span>TestTimelinePacketHandler()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classarmnn_1_1profiling_1_1_test_timeline_packet_handler.xhtml">TestTimelinePacketHandler</a> </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_test_timeline_packet_handler_8hpp_source.xhtml#l00049">49</a> of file <a class="el" href="_test_timeline_packet_handler_8hpp_source.xhtml">TestTimelinePacketHandler.hpp</a>.</p>
+<div class="fragment"><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; :</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; m_Connection(<span class="keyword">nullptr</span>),</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; m_InferenceCompleted(<span class="keyword">false</span>),</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; m_DirectoryHeader(<a class="code" href="namespacearmnn_1_1profiling.xhtml#aca8b4bad45009e1d42dc8de69a0b7e2c">CreateTimelinePacketHeader</a>(1, 0, 0, 0, 0, 0).first),</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; m_MessageHeader(<a class="code" href="namespacearmnn_1_1profiling.xhtml#aca8b4bad45009e1d42dc8de69a0b7e2c">CreateTimelinePacketHeader</a>(1, 0, 1, 0, 0, 0).first),</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; m_MessageDecoder(m_TimelineModel),</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; m_Decoder(1, 1, 0, m_MessageDecoder),</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; m_DirectoryDecoder(1, 0, 0, m_Decoder, <span class="keyword">true</span>)</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; { m_MessageDecoder.<a class="code" href="classarmnn_1_1profiling_1_1_timeline_message_decoder.xhtml#a4c9001443cf99036dde79d9d3f657772">SetPacketHandler</a>(<span class="keyword">this</span>); }</div><div class="ttc" id="namespacearmnn_1_1profiling_xhtml_aca8b4bad45009e1d42dc8de69a0b7e2c"><div class="ttname"><a href="namespacearmnn_1_1profiling.xhtml#aca8b4bad45009e1d42dc8de69a0b7e2c">armnn::profiling::CreateTimelinePacketHeader</a></div><div class="ttdeci">std::pair&lt; uint32_t, uint32_t &gt; CreateTimelinePacketHeader(uint32_t packetFamily, uint32_t packetClass, uint32_t packetType, uint32_t streamId, uint32_t sequenceNumbered, uint32_t dataLength)</div><div class="ttdoc">Creates a timeline packet header. </div><div class="ttdef"><b>Definition:</b> <a href="_profiling_utils_8cpp_source.xhtml#l00263">ProfilingUtils.cpp:263</a></div></div>
+<div class="ttc" id="classarmnn_1_1profiling_1_1_timeline_message_decoder_xhtml_a4c9001443cf99036dde79d9d3f657772"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_timeline_message_decoder.xhtml#a4c9001443cf99036dde79d9d3f657772">armnn::profiling::TimelineMessageDecoder::SetPacketHandler</a></div><div class="ttdeci">void SetPacketHandler(TestTimelinePacketHandler *packetHandler)</div><div class="ttdef"><b>Definition:</b> <a href="_test_timeline_packet_handler_8hpp_source.xhtml#l00040">TestTimelinePacketHandler.hpp:40</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="a0729ebfcf0d2e4717b94f212fac0bc0c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0729ebfcf0d2e4717b94f212fac0bc0c">&#9670;&nbsp;</a></span>GetHeadersAccepted()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::vector&lt; uint32_t &gt; GetHeadersAccepted </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<dl class="section return"><dt>Returns</dt><dd>lists the headers of the packets that this handler accepts only these packets will get sent to this handler. If this function returns an empty list then ALL packets will be sent to the PacketHandler i.e. a universal handler. </dd></dl>
+
+<p>Implements <a class="el" href="classarmnn_1_1profiling_1_1_i_local_packet_handler.xhtml#a798760e433b8fe7801de8427169004ca">ILocalPacketHandler</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_test_timeline_packet_handler_8cpp_source.xhtml#l00019">19</a> of file <a class="el" href="_test_timeline_packet_handler_8cpp_source.xhtml">TestTimelinePacketHandler.cpp</a>.</p>
+<div class="fragment"><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;{</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; std::vector&lt;uint32_t&gt; headers;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; headers.push_back(m_DirectoryHeader); <span class="comment">// message directory</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; headers.push_back(m_MessageHeader); <span class="comment">// message</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordflow">return</span> headers;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;}</div></div><!-- fragment -->
+</div>
+</div>
+<a id="a0df1f236af1d810c22098adbfc00a1a3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0df1f236af1d810c22098adbfc00a1a3">&#9670;&nbsp;</a></span>GetTimelineModel()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">const <a class="el" href="classarmnn_1_1profiling_1_1_timeline_model.xhtml">TimelineModel</a>&amp; GetTimelineModel </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_test_timeline_packet_handler_8hpp_source.xhtml#l00068">68</a> of file <a class="el" href="_test_timeline_packet_handler_8hpp_source.xhtml">TestTimelinePacketHandler.hpp</a>.</p>
+<div class="fragment"><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;{<span class="keywordflow">return</span> m_TimelineModel;}</div></div><!-- fragment -->
+</div>
+</div>
+<a id="a9cb2d435819c130a15f14feffab24688"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9cb2d435819c130a15f14feffab24688">&#9670;&nbsp;</a></span>HandlePacket()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">void HandlePacket </td>
+ <td>(</td>
+ <td class="paramtype">const arm::pipe::Packet &amp;&#160;</td>
+ <td class="paramname"><em>packet</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>process the packet </p>
+
+<p>Implements <a class="el" href="classarmnn_1_1profiling_1_1_i_local_packet_handler.xhtml#a1bd52eef0ca1c697e9ec9bc8d144a4e5">ILocalPacketHandler</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_test_timeline_packet_handler_8cpp_source.xhtml#l00027">27</a> of file <a class="el" href="_test_timeline_packet_handler_8cpp_source.xhtml">TestTimelinePacketHandler.cpp</a>.</p>
+<div class="fragment"><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;{</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">if</span> (packet.GetHeader() == m_DirectoryHeader)</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; {</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; ProcessDirectoryPacket(packet);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; }</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (packet.GetHeader() == m_MessageHeader)</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; {</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; ProcessMessagePacket(packet);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; }</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; {</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; std::stringstream ss;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; ss &lt;&lt; <span class="stringliteral">&quot;Received a packet with unknown header [&quot;</span> &lt;&lt; packet.GetHeader() &lt;&lt; <span class="stringliteral">&quot;]&quot;</span>;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_exception.xhtml">armnn::Exception</a>(ss.str());</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; }</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;}</div><div class="ttc" id="classarmnn_1_1_exception_xhtml"><div class="ttname"><a href="classarmnn_1_1_exception.xhtml">armnn::Exception</a></div><div class="ttdoc">Base class for all ArmNN exceptions so that users can filter to just those. </div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00046">Exceptions.hpp:46</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a id="aa5289afd4406402dd2437a9a278c0479"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa5289afd4406402dd2437a9a278c0479">&#9670;&nbsp;</a></span>SetConnection()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void SetConnection </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classarmnn_1_1profiling_1_1_i_internal_profiling_connection.xhtml">IInternalProfilingConnection</a> *&#160;</td>
+ <td class="paramname"><em>profilingConnection</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Set a profiling connection on the handler. </p>
+<p>Only need to implement this function if the handler will be writing data back to the profiled application. </p>
+
+<p>Reimplemented from <a class="el" href="classarmnn_1_1profiling_1_1_i_local_packet_handler.xhtml#ac95cb7bd37a701a47439795add2d6d7b">ILocalPacketHandler</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_test_timeline_packet_handler_8hpp_source.xhtml#l00070">70</a> of file <a class="el" href="_test_timeline_packet_handler_8hpp_source.xhtml">TestTimelinePacketHandler.hpp</a>.</p>
+<div class="fragment"><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; m_Connection = profilingConnection;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; }</div></div><!-- fragment -->
+</div>
+</div>
+<a id="a1187d00f0fed291d622c85e47a68673d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1187d00f0fed291d622c85e47a68673d">&#9670;&nbsp;</a></span>SetInferenceComplete()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void SetInferenceComplete </td>
+ <td>(</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="_test_timeline_packet_handler_8cpp_source.xhtml#l00070">70</a> of file <a class="el" href="_test_timeline_packet_handler_8cpp_source.xhtml">TestTimelinePacketHandler.cpp</a>.</p>
+<div class="fragment"><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; { <span class="comment">// only lock when we are updating the inference completed variable</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; std::unique_lock&lt;std::mutex&gt; lck(m_InferenceCompletedMutex);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; m_InferenceCompleted = <span class="keyword">true</span>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; m_InferenceCompletedConditionVariable.notify_one();</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;}</div></div><!-- fragment -->
+</div>
+</div>
+<a id="a17a237457e57625296e6b24feb19c60a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a17a237457e57625296e6b24feb19c60a">&#9670;&nbsp;</a></span>Stop()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Stop </td>
+ <td>(</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="_test_timeline_packet_handler_8cpp_source.xhtml#l00045">45</a> of file <a class="el" href="_test_timeline_packet_handler_8cpp_source.xhtml">TestTimelinePacketHandler.cpp</a>.</p>
+
+<p class="reference">References <a class="el" href="classarmnn_1_1profiling_1_1_i_internal_profiling_connection.xhtml#aacb6d0e5e6d570cdc2b0da14c3921ff0">IInternalProfilingConnection::Close()</a>.</p>
+<div class="fragment"><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; m_Connection-&gt;<a class="code" href="classarmnn_1_1profiling_1_1_i_internal_profiling_connection.xhtml#aacb6d0e5e6d570cdc2b0da14c3921ff0">Close</a>();</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;}</div><div class="ttc" id="classarmnn_1_1profiling_1_1_i_internal_profiling_connection_xhtml_aacb6d0e5e6d570cdc2b0da14c3921ff0"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_i_internal_profiling_connection.xhtml#aacb6d0e5e6d570cdc2b0da14c3921ff0">armnn::profiling::IInternalProfilingConnection::Close</a></div><div class="ttdeci">virtual void Close()=0</div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a id="a72dbf07f5a1765ef4b046bfa932578d0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a72dbf07f5a1765ef4b046bfa932578d0">&#9670;&nbsp;</a></span>WaitOnInferenceCompletion()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void WaitOnInferenceCompletion </td>
+ <td>(</td>
+ <td class="paramtype">unsigned int&#160;</td>
+ <td class="paramname"><em>timeout</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_test_timeline_packet_handler_8cpp_source.xhtml#l00050">50</a> of file <a class="el" href="_test_timeline_packet_handler_8cpp_source.xhtml">TestTimelinePacketHandler.cpp</a>.</p>
+<div class="fragment"><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; std::unique_lock&lt;std::mutex&gt; lck(m_InferenceCompletedMutex);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">auto</span> start = std::chrono::high_resolution_clock::now();</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="comment">// Here we we will go back to sleep after a spurious wake up if</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="comment">// m_InferenceCompleted is not yet true.</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">if</span> (!m_InferenceCompletedConditionVariable.wait_for(lck,</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; std::chrono::milliseconds(timeout),</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; [&amp;]{return m_InferenceCompleted == true;}))</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">auto</span> finish = std::chrono::high_resolution_clock::now();</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; std::chrono::duration&lt;double, std::milli&gt; elapsed = finish - start;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; std::stringstream ss;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; ss &lt;&lt; <span class="stringliteral">&quot;Timed out waiting on inference completion for &quot;</span> &lt;&lt; elapsed.count() &lt;&lt; <span class="stringliteral">&quot; ms&quot;</span>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_timeout_exception.xhtml">armnn::TimeoutException</a>(ss.str());</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;}</div><div class="ttc" id="classarmnn_1_1_timeout_exception_xhtml"><div class="ttname"><a href="classarmnn_1_1_timeout_exception.xhtml">armnn::TimeoutException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00135">Exceptions.hpp:135</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>src/profiling/test/<a class="el" href="_test_timeline_packet_handler_8hpp_source.xhtml">TestTimelinePacketHandler.hpp</a></li>
+<li>src/profiling/test/<a class="el" href="_test_timeline_packet_handler_8cpp_source.xhtml">TestTimelinePacketHandler.cpp</a></li>
+</ul>
+</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="namespacearmnn.xhtml">armnn</a></li><li class="navelem"><a class="el" href="namespacearmnn_1_1profiling.xhtml">profiling</a></li><li class="navelem"><a class="el" href="classarmnn_1_1profiling_1_1_test_timeline_packet_handler.xhtml">TestTimelinePacketHandler</a></li>
+ <li class="footer">Generated on Thu Feb 25 2021 17:28:02 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>