source: flair-dev/trunk/doc/Flair/classflair_1_1core_1_1_thread.html

Last change on this file was 100, checked in by Sanahuja Guillaume, 5 years ago

doc

File size: 49.7 KB
RevLine 
[14]1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml">
3<head>
4<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5<meta http-equiv="X-UA-Compatible" content="IE=9"/>
[23]6<meta name="generator" content="Doxygen 1.8.9.1"/>
[14]7<title>Flair: flair::core::Thread Class Reference</title>
8<link href="tabs.css" rel="stylesheet" type="text/css"/>
9<script type="text/javascript" src="jquery.js"></script>
10<script type="text/javascript" src="dynsections.js"></script>
11<link href="navtree.css" rel="stylesheet" type="text/css"/>
12<script type="text/javascript" src="resize.js"></script>
[23]13<script type="text/javascript" src="navtreedata.js"></script>
[14]14<script type="text/javascript" src="navtree.js"></script>
15<script type="text/javascript">
16 $(document).ready(initResizable);
17 $(window).load(resizeHeight);
18</script>
19<link href="search/search.css" rel="stylesheet" type="text/css"/>
[23]20<script type="text/javascript" src="search/searchdata.js"></script>
[14]21<script type="text/javascript" src="search/search.js"></script>
22<script type="text/javascript">
[23]23 $(document).ready(function() { init_search(); });
[14]24</script>
25<link href="doxygen.css" rel="stylesheet" type="text/css" />
26</head>
27<body>
28<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
29<div id="titlearea">
30<table cellspacing="0" cellpadding="0">
31 <tbody>
32 <tr style="height: 56px;">
33 <td id="projectlogo"><img alt="Logo" src="logo_hds.png"/></td>
34 <td style="padding-left: 0.5em;">
35 <div id="projectname">Flair
36 </div>
37 <div id="projectbrief">Framework Libre Air</div>
38 </td>
39 </tr>
40 </tbody>
41</table>
42</div>
43<!-- end header part -->
[23]44<!-- Generated by Doxygen 1.8.9.1 -->
[14]45<script type="text/javascript">
46var searchBox = new SearchBox("searchBox", "search",false,'Search');
47</script>
48 <div id="navrow1" class="tabs">
49 <ul class="tablist">
50 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
51 <li><a href="namespaces.html"><span>Namespaces</span></a></li>
52 <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
53 <li><a href="files.html"><span>Files</span></a></li>
54 <li>
55 <div id="MSearchBox" class="MSearchBoxInactive">
56 <span class="left">
57 <img id="MSearchSelect" src="search/mag_sel.png"
58 onmouseover="return searchBox.OnSearchSelectShow()"
59 onmouseout="return searchBox.OnSearchSelectHide()"
60 alt=""/>
61 <input type="text" id="MSearchField" value="Search" accesskey="S"
62 onfocus="searchBox.OnSearchFieldFocus(true)"
63 onblur="searchBox.OnSearchFieldFocus(false)"
64 onkeyup="searchBox.OnSearchFieldChange(event)"/>
65 </span><span class="right">
66 <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
67 </span>
68 </div>
69 </li>
70 </ul>
71 </div>
72 <div id="navrow2" class="tabs2">
73 <ul class="tablist">
74 <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
75 <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
76 <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
77 <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
78 </ul>
79 </div>
80</div><!-- top -->
81<div id="side-nav" class="ui-resizable side-nav-resizable">
82 <div id="nav-tree">
83 <div id="nav-tree-contents">
84 <div id="nav-sync" class="sync"></div>
85 </div>
86 </div>
87 <div id="splitbar" style="-moz-user-select:none;"
88 class="ui-resizable-handle">
89 </div>
90</div>
91<script type="text/javascript">
92$(document).ready(function(){initNavTree('classflair_1_1core_1_1_thread.html','');});
93</script>
94<div id="doc-content">
95<!-- window showing the filter options -->
96<div id="MSearchSelectWindow"
97 onmouseover="return searchBox.OnSearchSelectShow()"
98 onmouseout="return searchBox.OnSearchSelectHide()"
99 onkeydown="return searchBox.OnSearchSelectKey(event)">
[23]100</div>
[14]101
102<!-- iframe showing the search results (closed by default) -->
103<div id="MSearchResultsWindow">
104<iframe src="javascript:void(0)" frameborder="0"
105 name="MSearchResults" id="MSearchResults">
106</iframe>
107</div>
108
109<div class="header">
110 <div class="summary">
111<a href="#pub-methods">Public Member Functions</a> &#124;
112<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
113<a href="classflair_1_1core_1_1_thread-members.html">List of all members</a> </div>
114 <div class="headertitle">
115<div class="title">flair::core::Thread Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
116</div><!--header-->
117<div class="contents">
118
119<p>Abstract class for a thread.
120 <a href="classflair_1_1core_1_1_thread.html#details">More...</a></p>
121
122<p><code>#include &lt;<a class="el" href="_thread_8h_source.html">Thread.h</a>&gt;</code></p>
123<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
124 <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for flair::core::Thread:</div>
125<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
126</div>
127<div id="dynsection-0-content" class="dyncontent" style="display:none;">
128 <div class="center">
129 <img src="classflair_1_1core_1_1_thread.png" usemap="#flair::core::Thread_map" alt=""/>
130 <map id="flair::core::Thread_map" name="flair::core::Thread_map">
[98]131<area href="classflair_1_1core_1_1_object.html" title="Base class for all Framework&#39;s classes. " alt="flair::core::Object" shape="rect" coords="0,0,229,24"/>
132<area href="classflair_1_1actuator_1_1_bl_ctrl_v2__x4__speed.html" alt="flair::actuator::BlCtrlV2_x4_speed" shape="rect" coords="239,112,468,136"/>
133<area href="classflair_1_1core_1_1_watchdog.html" title="Watchdog class. " alt="flair::core::Watchdog" shape="rect" coords="239,168,468,192"/>
134<area href="classflair_1_1meta_1_1_uav_state_machine.html" title="State machine for UAV The Thread is created with the FrameworkManager as parent. FrameworkManager mus..." alt="flair::meta::UavStateMachine" shape="rect" coords="239,224,468,248"/>
135<area href="classflair_1_1sensor_1_1_gx3__25__imu.html" title="Class for 3dmgx3-25 Imu. " alt="flair::sensor::Gx3_25_imu" shape="rect" coords="239,280,468,304"/>
136<area href="classflair_1_1sensor_1_1_hokuyo_u_t_m30_lx.html" title="Classe intégrant le telemetre laser Hokuyo UTM 30lx. " alt="flair::sensor::HokuyoUTM30Lx" shape="rect" coords="239,336,468,360"/>
137<area href="classflair_1_1sensor_1_1_host_eth_controller.html" title="Base Class for host side remote controls that talks to target side through ethernet connection..." alt="flair::sensor::HostEthController" shape="rect" coords="239,392,468,416"/>
138<area href="classflair_1_1sensor_1_1_mb800.html" title="Class for mb800 gps receiver. " alt="flair::sensor::Mb800" shape="rect" coords="239,448,468,472"/>
139<area href="classflair_1_1sensor_1_1_neo_m8_n.html" title="Class for mb800 gps receiver. " alt="flair::sensor::NeoM8N" shape="rect" coords="239,504,468,528"/>
140<area href="classflair_1_1sensor_1_1_novatel.html" title="Class for Novatel gps receiver. " alt="flair::sensor::Novatel" shape="rect" coords="239,560,468,584"/>
141<area href="classflair_1_1sensor_1_1_simulated_camera.html" title="Class for a simulation camera. " alt="flair::sensor::SimulatedCamera" shape="rect" coords="239,616,468,640"/>
142<area href="classflair_1_1sensor_1_1_simulated_gps.html" title="Class for a simulation GPS. " alt="flair::sensor::SimulatedGps" shape="rect" coords="239,672,468,696"/>
143<area href="classflair_1_1sensor_1_1_simulated_imu.html" title="Class for a simulation Imu. " alt="flair::sensor::SimulatedImu" shape="rect" coords="239,728,468,752"/>
144<area href="classflair_1_1sensor_1_1_simulated_laser.html" alt="flair::sensor::SimulatedLaser" shape="rect" coords="239,784,468,808"/>
145<area href="classflair_1_1sensor_1_1_simulated_pressure_sensor.html" title="Class for a simulation PressureSensor. " alt="flair::sensor::SimulatedPressureSensor" shape="rect" coords="239,840,468,864"/>
146<area href="classflair_1_1sensor_1_1_simulated_us.html" title="Class for a simulation UsRangeFinder. " alt="flair::sensor::SimulatedUs" shape="rect" coords="239,896,468,920"/>
147<area href="classflair_1_1sensor_1_1_srf08.html" title="Class for ultra sonic SRF08. " alt="flair::sensor::Srf08" shape="rect" coords="239,952,468,976"/>
148<area href="classflair_1_1sensor_1_1_target_controller.html" title="Base Class for target side remote controls. " alt="flair::sensor::TargetController" shape="rect" coords="239,1008,468,1032"/>
149<area href="classflair_1_1sensor_1_1_v4_l_camera.html" title="Base class for V4l camera. " alt="flair::sensor::V4LCamera" shape="rect" coords="239,1064,468,1088"/>
150<area href="classflair_1_1sensor_1_1_vrpn_client.html" title="Class to connect to a Vrpn server. The Thread is created with the FrameworkManager as parent..." alt="flair::sensor::VrpnClient" shape="rect" coords="239,1120,468,1144"/>
[14]151</map>
152 </div></div>
153<table class="memberdecls">
154<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
155Public Member Functions</h2></td></tr>
[68]156<tr class="memitem:adecd2fabe36298c43267557e7f016deb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflair_1_1core_1_1_thread.html#adecd2fabe36298c43267557e7f016deb">Thread</a> (const <a class="el" href="classflair_1_1core_1_1_object.html">Object</a> *parent, std::string name, uint8_t priority, uint32_t stackSize=1024 *128)</td></tr>
157<tr class="memdesc:adecd2fabe36298c43267557e7f016deb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <a href="#adecd2fabe36298c43267557e7f016deb">More...</a><br /></td></tr>
158<tr class="separator:adecd2fabe36298c43267557e7f016deb"><td class="memSeparator" colspan="2">&#160;</td></tr>
[14]159<tr class="memitem:a39ede97ff3addeaf48ecec09c6625655"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflair_1_1core_1_1_thread.html#a39ede97ff3addeaf48ecec09c6625655">~Thread</a> ()</td></tr>
160<tr class="memdesc:a39ede97ff3addeaf48ecec09c6625655"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <a href="#a39ede97ff3addeaf48ecec09c6625655">More...</a><br /></td></tr>
161<tr class="separator:a39ede97ff3addeaf48ecec09c6625655"><td class="memSeparator" colspan="2">&#160;</td></tr>
162<tr class="memitem:a5a4f0f27689ae4292f81bf45e22998a5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflair_1_1core_1_1_thread.html#a5a4f0f27689ae4292f81bf45e22998a5">Start</a> (void)</td></tr>
163<tr class="memdesc:a5a4f0f27689ae4292f81bf45e22998a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start the thread. <a href="#a5a4f0f27689ae4292f81bf45e22998a5">More...</a><br /></td></tr>
164<tr class="separator:a5a4f0f27689ae4292f81bf45e22998a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
165<tr class="memitem:afa1fb0f8d5b18273394502159dd5dcef"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflair_1_1core_1_1_thread.html#afa1fb0f8d5b18273394502159dd5dcef">SafeStop</a> (void)</td></tr>
166<tr class="memdesc:afa1fb0f8d5b18273394502159dd5dcef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a stop flag. <a href="#afa1fb0f8d5b18273394502159dd5dcef">More...</a><br /></td></tr>
167<tr class="separator:afa1fb0f8d5b18273394502159dd5dcef"><td class="memSeparator" colspan="2">&#160;</td></tr>
168<tr class="memitem:afcbb4a445fe287b8608b173bdc10f056"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflair_1_1core_1_1_thread.html#afcbb4a445fe287b8608b173bdc10f056">ToBeStopped</a> (void) const </td></tr>
169<tr class="memdesc:afcbb4a445fe287b8608b173bdc10f056"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a stop flag. <a href="#afcbb4a445fe287b8608b173bdc10f056">More...</a><br /></td></tr>
170<tr class="separator:afcbb4a445fe287b8608b173bdc10f056"><td class="memSeparator" colspan="2">&#160;</td></tr>
171<tr class="memitem:aba8b31e2e4c1beccb31333beb8bd41a4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflair_1_1core_1_1_thread.html#aba8b31e2e4c1beccb31333beb8bd41a4">Join</a> (void)</td></tr>
172<tr class="memdesc:aba8b31e2e4c1beccb31333beb8bd41a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Join the thread. <a href="#aba8b31e2e4c1beccb31333beb8bd41a4">More...</a><br /></td></tr>
173<tr class="separator:aba8b31e2e4c1beccb31333beb8bd41a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
174<tr class="memitem:a581ae3bdecef47c916671a6aafec9509"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflair_1_1core_1_1_thread.html#a581ae3bdecef47c916671a6aafec9509">SetPeriodUS</a> (uint32_t period_us)</td></tr>
175<tr class="memdesc:a581ae3bdecef47c916671a6aafec9509"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the period in micro second. <a href="#a581ae3bdecef47c916671a6aafec9509">More...</a><br /></td></tr>
176<tr class="separator:a581ae3bdecef47c916671a6aafec9509"><td class="memSeparator" colspan="2">&#160;</td></tr>
177<tr class="memitem:ab58a00466581b6cf88ba28b8e2118c65"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab58a00466581b6cf88ba28b8e2118c65"></a>
178uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>GetPeriodUS</b> () const </td></tr>
179<tr class="separator:ab58a00466581b6cf88ba28b8e2118c65"><td class="memSeparator" colspan="2">&#160;</td></tr>
180<tr class="memitem:a37d13f12283d69ebd092a7cc01a7d742"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflair_1_1core_1_1_thread.html#a37d13f12283d69ebd092a7cc01a7d742">SetPeriodMS</a> (uint32_t period_ms)</td></tr>
181<tr class="memdesc:a37d13f12283d69ebd092a7cc01a7d742"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the period in milli second. <a href="#a37d13f12283d69ebd092a7cc01a7d742">More...</a><br /></td></tr>
182<tr class="separator:a37d13f12283d69ebd092a7cc01a7d742"><td class="memSeparator" colspan="2">&#160;</td></tr>
183<tr class="memitem:afaa77472d57848bed10204ee5ec1d75a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afaa77472d57848bed10204ee5ec1d75a"></a>
184uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>GetPeriodMS</b> () const </td></tr>
185<tr class="separator:afaa77472d57848bed10204ee5ec1d75a"><td class="memSeparator" colspan="2">&#160;</td></tr>
186<tr class="memitem:af892a1b3025cb842cad8e7f2a11a9526"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflair_1_1core_1_1_thread.html#af892a1b3025cb842cad8e7f2a11a9526">IsPeriodSet</a> (void)</td></tr>
187<tr class="memdesc:af892a1b3025cb842cad8e7f2a11a9526"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns if period was set. <a href="#af892a1b3025cb842cad8e7f2a11a9526">More...</a><br /></td></tr>
188<tr class="separator:af892a1b3025cb842cad8e7f2a11a9526"><td class="memSeparator" colspan="2">&#160;</td></tr>
189<tr class="memitem:a50cd2ea88d538e10a30c3e6a5286a944"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflair_1_1core_1_1_thread.html#a50cd2ea88d538e10a30c3e6a5286a944">WaitPeriod</a> (void) const </td></tr>
190<tr class="memdesc:a50cd2ea88d538e10a30c3e6a5286a944"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wait the period. <a href="#a50cd2ea88d538e10a30c3e6a5286a944">More...</a><br /></td></tr>
191<tr class="separator:a50cd2ea88d538e10a30c3e6a5286a944"><td class="memSeparator" colspan="2">&#160;</td></tr>
192<tr class="memitem:a2b5b5f3cf400729419bd864b654af252"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflair_1_1core_1_1_thread.html#a2b5b5f3cf400729419bd864b654af252">WaitUpdate</a> (const <a class="el" href="classflair_1_1core_1_1_i_o_device.html">IODevice</a> *device)</td></tr>
193<tr class="memdesc:a2b5b5f3cf400729419bd864b654af252"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wait update of an <a class="el" href="classflair_1_1core_1_1_i_o_device.html" title="Abstract class for input/ouput system. ">IODevice</a>. <a href="#a2b5b5f3cf400729419bd864b654af252">More...</a><br /></td></tr>
194<tr class="separator:a2b5b5f3cf400729419bd864b654af252"><td class="memSeparator" colspan="2">&#160;</td></tr>
195<tr class="memitem:a0e5fc8919ed6042e5736a5dca5ba546b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflair_1_1core_1_1_thread.html#a0e5fc8919ed6042e5736a5dca5ba546b">Suspend</a> (void)</td></tr>
196<tr class="memdesc:a0e5fc8919ed6042e5736a5dca5ba546b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Suspend the thread. <a href="#a0e5fc8919ed6042e5736a5dca5ba546b">More...</a><br /></td></tr>
197<tr class="separator:a0e5fc8919ed6042e5736a5dca5ba546b"><td class="memSeparator" colspan="2">&#160;</td></tr>
198<tr class="memitem:af93c2461c31a6c16958bc44189ab4253"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflair_1_1core_1_1_thread.html#af93c2461c31a6c16958bc44189ab4253">SuspendUntil</a> (<a class="el" href="namespaceflair_1_1core.html#acc0fa041e08ecf73b2d1d723c339a736">Time</a> date)</td></tr>
199<tr class="memdesc:af93c2461c31a6c16958bc44189ab4253"><td class="mdescLeft">&#160;</td><td class="mdescRight">Suspend the thread with timeout. <a href="#af93c2461c31a6c16958bc44189ab4253">More...</a><br /></td></tr>
200<tr class="separator:af93c2461c31a6c16958bc44189ab4253"><td class="memSeparator" colspan="2">&#160;</td></tr>
201<tr class="memitem:ae7c46910a801f1b16302570ad8ae9580"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflair_1_1core_1_1_thread.html#ae7c46910a801f1b16302570ad8ae9580">Resume</a> (void)</td></tr>
202<tr class="memdesc:ae7c46910a801f1b16302570ad8ae9580"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resume the thread. <a href="#ae7c46910a801f1b16302570ad8ae9580">More...</a><br /></td></tr>
203<tr class="separator:ae7c46910a801f1b16302570ad8ae9580"><td class="memSeparator" colspan="2">&#160;</td></tr>
204<tr class="memitem:adac9a6d336bdb50bcfa24c66943a355a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflair_1_1core_1_1_thread.html#adac9a6d336bdb50bcfa24c66943a355a">IsSuspended</a> (void) const </td></tr>
205<tr class="memdesc:adac9a6d336bdb50bcfa24c66943a355a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is the thread suspended? <a href="#adac9a6d336bdb50bcfa24c66943a355a">More...</a><br /></td></tr>
206<tr class="separator:adac9a6d336bdb50bcfa24c66943a355a"><td class="memSeparator" colspan="2">&#160;</td></tr>
[50]207<tr class="memitem:a2a82d0ade1418111c2a4e7d0e133696c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflair_1_1core_1_1_thread.html#a2a82d0ade1418111c2a4e7d0e133696c">IsRunning</a> (void) const </td></tr>
208<tr class="memdesc:a2a82d0ade1418111c2a4e7d0e133696c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is the thread running? <a href="#a2a82d0ade1418111c2a4e7d0e133696c">More...</a><br /></td></tr>
209<tr class="separator:a2a82d0ade1418111c2a4e7d0e133696c"><td class="memSeparator" colspan="2">&#160;</td></tr>
[14]210<tr class="memitem:ac09a2d745af3dbb42371949d4c622011"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflair_1_1core_1_1_thread.html#ac09a2d745af3dbb42371949d4c622011">SleepUntil</a> (<a class="el" href="namespaceflair_1_1core.html#acc0fa041e08ecf73b2d1d723c339a736">Time</a> time) const </td></tr>
211<tr class="memdesc:ac09a2d745af3dbb42371949d4c622011"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sleep until absolute time. <a href="#ac09a2d745af3dbb42371949d4c622011">More...</a><br /></td></tr>
212<tr class="separator:ac09a2d745af3dbb42371949d4c622011"><td class="memSeparator" colspan="2">&#160;</td></tr>
213<tr class="memitem:a3479727dfaf2213f7866fccadb43eeb6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflair_1_1core_1_1_thread.html#a3479727dfaf2213f7866fccadb43eeb6">SleepUS</a> (uint32_t time_us) const </td></tr>
214<tr class="memdesc:a3479727dfaf2213f7866fccadb43eeb6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sleep for a certain time in micro second. <a href="#a3479727dfaf2213f7866fccadb43eeb6">More...</a><br /></td></tr>
215<tr class="separator:a3479727dfaf2213f7866fccadb43eeb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
216<tr class="memitem:a501e7802d7edd7e6167d111c803b8349"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflair_1_1core_1_1_thread.html#a501e7802d7edd7e6167d111c803b8349">SleepMS</a> (uint32_t time_ms) const </td></tr>
217<tr class="memdesc:a501e7802d7edd7e6167d111c803b8349"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sleep for a cartain time in milli second. <a href="#a501e7802d7edd7e6167d111c803b8349">More...</a><br /></td></tr>
218<tr class="separator:a501e7802d7edd7e6167d111c803b8349"><td class="memSeparator" colspan="2">&#160;</td></tr>
219<tr class="inherit_header pub_methods_classflair_1_1core_1_1_object"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classflair_1_1core_1_1_object')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classflair_1_1core_1_1_object.html">flair::core::Object</a></td></tr>
220<tr class="memitem:aec92383fd5bf68d9df10414862b7e95c inherit pub_methods_classflair_1_1core_1_1_object"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflair_1_1core_1_1_object.html#aec92383fd5bf68d9df10414862b7e95c">Object</a> (const <a class="el" href="classflair_1_1core_1_1_object.html">Object</a> *parent=NULL, std::string name=&quot;&quot;, std::string type=&quot;&quot;)</td></tr>
221<tr class="memdesc:aec92383fd5bf68d9df10414862b7e95c inherit pub_methods_classflair_1_1core_1_1_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <a href="#aec92383fd5bf68d9df10414862b7e95c">More...</a><br /></td></tr>
222<tr class="separator:aec92383fd5bf68d9df10414862b7e95c inherit pub_methods_classflair_1_1core_1_1_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
223<tr class="memitem:aa2bde0e6677bbef705c96c93cb06ad09 inherit pub_methods_classflair_1_1core_1_1_object"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflair_1_1core_1_1_object.html#aa2bde0e6677bbef705c96c93cb06ad09">~Object</a> ()</td></tr>
224<tr class="memdesc:aa2bde0e6677bbef705c96c93cb06ad09 inherit pub_methods_classflair_1_1core_1_1_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <a href="#aa2bde0e6677bbef705c96c93cb06ad09">More...</a><br /></td></tr>
225<tr class="separator:aa2bde0e6677bbef705c96c93cb06ad09 inherit pub_methods_classflair_1_1core_1_1_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
226<tr class="memitem:a9b0344dff7e1c05424d9152c8274523a inherit pub_methods_classflair_1_1core_1_1_object"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflair_1_1core_1_1_object.html#a9b0344dff7e1c05424d9152c8274523a">ObjectName</a> (void) const </td></tr>
227<tr class="memdesc:a9b0344dff7e1c05424d9152c8274523a inherit pub_methods_classflair_1_1core_1_1_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">Name. <a href="#a9b0344dff7e1c05424d9152c8274523a">More...</a><br /></td></tr>
228<tr class="separator:a9b0344dff7e1c05424d9152c8274523a inherit pub_methods_classflair_1_1core_1_1_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
229<tr class="memitem:a609a250ec037fbcaf8957c8f1dcbfc53 inherit pub_methods_classflair_1_1core_1_1_object"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflair_1_1core_1_1_object.html#a609a250ec037fbcaf8957c8f1dcbfc53">ObjectType</a> (void) const </td></tr>
230<tr class="memdesc:a609a250ec037fbcaf8957c8f1dcbfc53 inherit pub_methods_classflair_1_1core_1_1_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type. <a href="#a609a250ec037fbcaf8957c8f1dcbfc53">More...</a><br /></td></tr>
231<tr class="separator:a609a250ec037fbcaf8957c8f1dcbfc53 inherit pub_methods_classflair_1_1core_1_1_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
232<tr class="memitem:a360c112cc3017a5152ebf6e84d2efa70 inherit pub_methods_classflair_1_1core_1_1_object"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classflair_1_1core_1_1_object.html">Object</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflair_1_1core_1_1_object.html#a360c112cc3017a5152ebf6e84d2efa70">Parent</a> (void) const </td></tr>
233<tr class="memdesc:a360c112cc3017a5152ebf6e84d2efa70 inherit pub_methods_classflair_1_1core_1_1_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parent. <a href="#a360c112cc3017a5152ebf6e84d2efa70">More...</a><br /></td></tr>
234<tr class="separator:a360c112cc3017a5152ebf6e84d2efa70 inherit pub_methods_classflair_1_1core_1_1_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
235<tr class="memitem:ae22db4d723ec2d50b3ba48f26a6a770c inherit pub_methods_classflair_1_1core_1_1_object"><td class="memItemLeft" align="right" valign="top">std::vector&lt; const <a class="el" href="classflair_1_1core_1_1_object.html">Object</a> * &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflair_1_1core_1_1_object.html#ae22db4d723ec2d50b3ba48f26a6a770c">TypeChilds</a> (void) const </td></tr>
236<tr class="memdesc:ae22db4d723ec2d50b3ba48f26a6a770c inherit pub_methods_classflair_1_1core_1_1_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">Childs of the same type. <a href="#ae22db4d723ec2d50b3ba48f26a6a770c">More...</a><br /></td></tr>
237<tr class="separator:ae22db4d723ec2d50b3ba48f26a6a770c inherit pub_methods_classflair_1_1core_1_1_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
238<tr class="memitem:a344f81cd35805a9501098bf727ac1a10 inherit pub_methods_classflair_1_1core_1_1_object"><td class="memItemLeft" align="right" valign="top">std::vector&lt; const <a class="el" href="classflair_1_1core_1_1_object.html">Object</a> * &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflair_1_1core_1_1_object.html#a344f81cd35805a9501098bf727ac1a10">Childs</a> (void) const </td></tr>
239<tr class="memdesc:a344f81cd35805a9501098bf727ac1a10 inherit pub_methods_classflair_1_1core_1_1_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">Childs. <a href="#a344f81cd35805a9501098bf727ac1a10">More...</a><br /></td></tr>
240<tr class="separator:a344f81cd35805a9501098bf727ac1a10 inherit pub_methods_classflair_1_1core_1_1_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
241<tr class="memitem:af001feba14fc053aa778e61080a0b4cf inherit pub_methods_classflair_1_1core_1_1_object"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflair_1_1core_1_1_object.html#af001feba14fc053aa778e61080a0b4cf">Information</a> (const char *function, int line, const char *format,...) const </td></tr>
242<tr class="memdesc:af001feba14fc053aa778e61080a0b4cf inherit pub_methods_classflair_1_1core_1_1_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formatted information. <a href="#af001feba14fc053aa778e61080a0b4cf">More...</a><br /></td></tr>
243<tr class="separator:af001feba14fc053aa778e61080a0b4cf inherit pub_methods_classflair_1_1core_1_1_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
244<tr class="memitem:a168b18451b2ee6126e1e81d452005ff6 inherit pub_methods_classflair_1_1core_1_1_object"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflair_1_1core_1_1_object.html#a168b18451b2ee6126e1e81d452005ff6">Warning</a> (const char *function, const char *format,...) const </td></tr>
245<tr class="memdesc:a168b18451b2ee6126e1e81d452005ff6 inherit pub_methods_classflair_1_1core_1_1_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formatted warning. <a href="#a168b18451b2ee6126e1e81d452005ff6">More...</a><br /></td></tr>
246<tr class="separator:a168b18451b2ee6126e1e81d452005ff6 inherit pub_methods_classflair_1_1core_1_1_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
247<tr class="memitem:a3ca9694d29ec2b0491739879685df5ca inherit pub_methods_classflair_1_1core_1_1_object"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflair_1_1core_1_1_object.html#a3ca9694d29ec2b0491739879685df5ca">Error</a> (const char *function, const char *format,...) const </td></tr>
248<tr class="memdesc:a3ca9694d29ec2b0491739879685df5ca inherit pub_methods_classflair_1_1core_1_1_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formatted error. <a href="#a3ca9694d29ec2b0491739879685df5ca">More...</a><br /></td></tr>
249<tr class="separator:a3ca9694d29ec2b0491739879685df5ca inherit pub_methods_classflair_1_1core_1_1_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
250<tr class="memitem:a36cdd7f556e78b1bddd1d1fe4264bb85 inherit pub_methods_classflair_1_1core_1_1_object"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflair_1_1core_1_1_object.html#a36cdd7f556e78b1bddd1d1fe4264bb85">ErrorOccured</a> (bool recursive=true) const </td></tr>
251<tr class="memdesc:a36cdd7f556e78b1bddd1d1fe4264bb85 inherit pub_methods_classflair_1_1core_1_1_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">Has an errror occured? <a href="#a36cdd7f556e78b1bddd1d1fe4264bb85">More...</a><br /></td></tr>
252<tr class="separator:a36cdd7f556e78b1bddd1d1fe4264bb85 inherit pub_methods_classflair_1_1core_1_1_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
253</table><table class="memberdecls">
254<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
255Static Public Member Functions</h2></td></tr>
256<tr class="memitem:a7fbf5ad201e7e802f0fa127891849dc9"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflair_1_1core_1_1_thread.html#a7fbf5ad201e7e802f0fa127891849dc9">WarnUponSwitches</a> (bool enable)</td></tr>
257<tr class="memdesc:a7fbf5ad201e7e802f0fa127891849dc9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Warn if real time / non real time switches occur. <a href="#a7fbf5ad201e7e802f0fa127891849dc9">More...</a><br /></td></tr>
258<tr class="separator:a7fbf5ad201e7e802f0fa127891849dc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
259</table><table class="memberdecls">
260<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
261Additional Inherited Members</h2></td></tr>
262<tr class="inherit_header pub_types_classflair_1_1core_1_1_object"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classflair_1_1core_1_1_object')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classflair_1_1core_1_1_object.html">flair::core::Object</a></td></tr>
263<tr class="memitem:aed5fccda511f97487040fed29f4efc97 inherit pub_types_classflair_1_1core_1_1_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aed5fccda511f97487040fed29f4efc97"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>color_t</b> { <b>Auto</b> = 0,
264<b>Red</b> = 31,
265<b>Green</b> = 32,
266<b>Orange</b> = 33
267 }</td></tr>
268<tr class="separator:aed5fccda511f97487040fed29f4efc97 inherit pub_types_classflair_1_1core_1_1_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
269</table>
270<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
271<div class="textblock"><p>Abstract class for a thread. </p>
272<p>To implement a thread, Run() method must be reimplemented. <br />
273 When <a class="el" href="classflair_1_1core_1_1_thread.html#a5a4f0f27689ae4292f81bf45e22998a5" title="Start the thread. ">Start()</a> is called, it will automatically call Run() reimplemented method. A thread can be periodic, in this case <a class="el" href="classflair_1_1core_1_1_thread.html#a50cd2ea88d538e10a30c3e6a5286a944" title="Wait the period. ">WaitPeriod()</a> will block untill period is met. <a class="el" href="classflair_1_1core_1_1_thread.html" title="Abstract class for a thread. ">Thread</a> can also e synnchronized with an <a class="el" href="classflair_1_1core_1_1_i_o_device.html" title="Abstract class for input/ouput system. ">IODevice</a>, using <a class="el" href="classflair_1_1core_1_1_thread.html#a2b5b5f3cf400729419bd864b654af252" title="Wait update of an IODevice. ">WaitUpdate()</a> method. <br />
274 <a class="el" href="classflair_1_1core_1_1_thread.html" title="Abstract class for a thread. ">Thread</a> period is by default 100ms. </p>
275</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
[68]276<a class="anchor" id="adecd2fabe36298c43267557e7f016deb"></a>
[14]277<div class="memitem">
278<div class="memproto">
279 <table class="memname">
280 <tr>
281 <td class="memname">flair::core::Thread::Thread </td>
282 <td>(</td>
283 <td class="paramtype">const <a class="el" href="classflair_1_1core_1_1_object.html">Object</a> *&#160;</td>
284 <td class="paramname"><em>parent</em>, </td>
285 </tr>
286 <tr>
287 <td class="paramkey"></td>
288 <td></td>
289 <td class="paramtype">std::string&#160;</td>
290 <td class="paramname"><em>name</em>, </td>
291 </tr>
292 <tr>
293 <td class="paramkey"></td>
294 <td></td>
295 <td class="paramtype">uint8_t&#160;</td>
[68]296 <td class="paramname"><em>priority</em>, </td>
[14]297 </tr>
298 <tr>
[68]299 <td class="paramkey"></td>
[14]300 <td></td>
[68]301 <td class="paramtype">uint32_t&#160;</td>
302 <td class="paramname"><em>stackSize</em> = <code>1024&#160;*128</code>&#160;</td>
303 </tr>
304 <tr>
305 <td></td>
[14]306 <td>)</td>
307 <td></td><td></td>
308 </tr>
309 </table>
310</div><div class="memdoc">
311
312<p>Constructor. </p>
313<dl class="params"><dt>Parameters</dt><dd>
314 <table class="params">
315 <tr><td class="paramname">parent</td><td>parent </td></tr>
316 <tr><td class="paramname">name</td><td>name </td></tr>
317 <tr><td class="paramname">priority</td><td>priority, should be &gt;20 (&lt;20 is reserved for internal use) </td></tr>
[68]318 <tr><td class="paramname">stackSize</td><td>stack size in bytes </td></tr>
[14]319 </table>
320 </dd>
321</dl>
322
323</div>
324</div>
325<a class="anchor" id="a39ede97ff3addeaf48ecec09c6625655"></a>
326<div class="memitem">
327<div class="memproto">
328<table class="mlabels">
329 <tr>
330 <td class="mlabels-left">
331 <table class="memname">
332 <tr>
333 <td class="memname">virtual flair::core::Thread::~Thread </td>
334 <td>(</td>
335 <td class="paramname"></td><td>)</td>
336 <td></td>
337 </tr>
338 </table>
339 </td>
340 <td class="mlabels-right">
341<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
342 </tr>
343</table>
344</div><div class="memdoc">
345
346<p>Destructor. </p>
347<p>If thread is started, <a class="el" href="classflair_1_1core_1_1_thread.html#afa1fb0f8d5b18273394502159dd5dcef" title="Set a stop flag. ">SafeStop()</a> and <a class="el" href="classflair_1_1core_1_1_thread.html#aba8b31e2e4c1beccb31333beb8bd41a4" title="Join the thread. ">Join()</a> will be automatically called. </p>
348
349</div>
350</div>
351<h2 class="groupheader">Member Function Documentation</h2>
352<a class="anchor" id="a5a4f0f27689ae4292f81bf45e22998a5"></a>
353<div class="memitem">
354<div class="memproto">
355 <table class="memname">
356 <tr>
357 <td class="memname">void flair::core::Thread::Start </td>
358 <td>(</td>
359 <td class="paramtype">void&#160;</td>
360 <td class="paramname"></td><td>)</td>
361 <td></td>
362 </tr>
363 </table>
364</div><div class="memdoc">
365
366<p>Start the thread. </p>
367
368</div>
369</div>
370<a class="anchor" id="afa1fb0f8d5b18273394502159dd5dcef"></a>
371<div class="memitem">
372<div class="memproto">
373 <table class="memname">
374 <tr>
375 <td class="memname">void flair::core::Thread::SafeStop </td>
376 <td>(</td>
377 <td class="paramtype">void&#160;</td>
378 <td class="paramname"></td><td>)</td>
379 <td></td>
380 </tr>
381 </table>
382</div><div class="memdoc">
383
384<p>Set a stop flag. </p>
385<p><a class="el" href="classflair_1_1core_1_1_thread.html#afcbb4a445fe287b8608b173bdc10f056" title="Set a stop flag. ">ToBeStopped()</a> will return true after calling this method. </p>
386
387</div>
388</div>
389<a class="anchor" id="afcbb4a445fe287b8608b173bdc10f056"></a>
390<div class="memitem">
391<div class="memproto">
392 <table class="memname">
393 <tr>
394 <td class="memname">bool flair::core::Thread::ToBeStopped </td>
395 <td>(</td>
396 <td class="paramtype">void&#160;</td>
397 <td class="paramname"></td><td>)</td>
398 <td> const</td>
399 </tr>
400 </table>
401</div><div class="memdoc">
402
403<p>Set a stop flag. </p>
404<p>Reimplemented Run() can poll this method to determine when to stop the thread.</p>
405<dl class="section return"><dt>Returns</dt><dd>true if <a class="el" href="classflair_1_1core_1_1_thread.html#afa1fb0f8d5b18273394502159dd5dcef" title="Set a stop flag. ">SafeStop()</a> was called </dd></dl>
406
407</div>
408</div>
409<a class="anchor" id="aba8b31e2e4c1beccb31333beb8bd41a4"></a>
410<div class="memitem">
411<div class="memproto">
412 <table class="memname">
413 <tr>
414 <td class="memname">void flair::core::Thread::Join </td>
415 <td>(</td>
416 <td class="paramtype">void&#160;</td>
417 <td class="paramname"></td><td>)</td>
418 <td></td>
419 </tr>
420 </table>
421</div><div class="memdoc">
422
423<p>Join the thread. </p>
424<p>This method will block untill Run() returns. </p>
425
426</div>
427</div>
428<a class="anchor" id="a581ae3bdecef47c916671a6aafec9509"></a>
429<div class="memitem">
430<div class="memproto">
431 <table class="memname">
432 <tr>
433 <td class="memname">void flair::core::Thread::SetPeriodUS </td>
434 <td>(</td>
435 <td class="paramtype">uint32_t&#160;</td>
436 <td class="paramname"><em>period_us</em></td><td>)</td>
437 <td></td>
438 </tr>
439 </table>
440</div><div class="memdoc">
441
442<p>Set the period in micro second. </p>
443<p>After calling this method, IsPeriodSet will return true.</p>
444<dl class="params"><dt>Parameters</dt><dd>
445 <table class="params">
446 <tr><td class="paramname">period_us</td><td>period in us </td></tr>
447 </table>
448 </dd>
449</dl>
450
451</div>
452</div>
453<a class="anchor" id="a37d13f12283d69ebd092a7cc01a7d742"></a>
454<div class="memitem">
455<div class="memproto">
456 <table class="memname">
457 <tr>
458 <td class="memname">void flair::core::Thread::SetPeriodMS </td>
459 <td>(</td>
460 <td class="paramtype">uint32_t&#160;</td>
461 <td class="paramname"><em>period_ms</em></td><td>)</td>
462 <td></td>
463 </tr>
464 </table>
465</div><div class="memdoc">
466
467<p>Set the period in milli second. </p>
468<p>After calling this method, IsPeriodSet will return true.</p>
469<dl class="params"><dt>Parameters</dt><dd>
470 <table class="params">
471 <tr><td class="paramname">period_ums</td><td>period in ms </td></tr>
472 </table>
473 </dd>
474</dl>
475
476</div>
477</div>
478<a class="anchor" id="af892a1b3025cb842cad8e7f2a11a9526"></a>
479<div class="memitem">
480<div class="memproto">
481 <table class="memname">
482 <tr>
483 <td class="memname">bool flair::core::Thread::IsPeriodSet </td>
484 <td>(</td>
485 <td class="paramtype">void&#160;</td>
486 <td class="paramname"></td><td>)</td>
487 <td></td>
488 </tr>
489 </table>
490</div><div class="memdoc">
491
492<p>Returns if period was set. </p>
493<dl class="section return"><dt>Returns</dt><dd>true if a period was set using SetPeriodUS or SetPeriodMS false otherwise </dd></dl>
494
495</div>
496</div>
497<a class="anchor" id="a50cd2ea88d538e10a30c3e6a5286a944"></a>
498<div class="memitem">
499<div class="memproto">
500 <table class="memname">
501 <tr>
502 <td class="memname">void flair::core::Thread::WaitPeriod </td>
503 <td>(</td>
504 <td class="paramtype">void&#160;</td>
505 <td class="paramname"></td><td>)</td>
506 <td> const</td>
507 </tr>
508 </table>
509</div><div class="memdoc">
510
511<p>Wait the period. </p>
512<p>This method will block untill period is met. <br />
513 If no period was set (see SetPeriodUS, SetPeriodMS and IsPeriodSet), this method returns immediately. </p>
514
515</div>
516</div>
517<a class="anchor" id="a2b5b5f3cf400729419bd864b654af252"></a>
518<div class="memitem">
519<div class="memproto">
520 <table class="memname">
521 <tr>
522 <td class="memname">int flair::core::Thread::WaitUpdate </td>
523 <td>(</td>
524 <td class="paramtype">const <a class="el" href="classflair_1_1core_1_1_i_o_device.html">IODevice</a> *&#160;</td>
525 <td class="paramname"><em>device</em></td><td>)</td>
526 <td></td>
527 </tr>
528 </table>
529</div><div class="memdoc">
530
531<p>Wait update of an <a class="el" href="classflair_1_1core_1_1_i_o_device.html" title="Abstract class for input/ouput system. ">IODevice</a>. </p>
532<p>This method will block untill <a class="el" href="classflair_1_1core_1_1_i_o_device.html#a3df9057ae23eb34f1b1dae8e7a4a9efc" title="Process the childs of type IODevice, and log if needed. ">IODevice::ProcessUpdate</a> is called. <br />
533This method is usefull to synchronize a thread with an <a class="el" href="classflair_1_1core_1_1_i_o_device.html" title="Abstract class for input/ouput system. ">IODevice</a>.</p>
534<dl class="params"><dt>Parameters</dt><dd>
535 <table class="params">
536 <tr><td class="paramname">device</td><td><a class="el" href="classflair_1_1core_1_1_i_o_device.html" title="Abstract class for input/ouput system. ">IODevice</a> to wait update from </td></tr>
537 </table>
538 </dd>
539</dl>
540
541</div>
542</div>
543<a class="anchor" id="a0e5fc8919ed6042e5736a5dca5ba546b"></a>
544<div class="memitem">
545<div class="memproto">
546 <table class="memname">
547 <tr>
548 <td class="memname">void flair::core::Thread::Suspend </td>
549 <td>(</td>
550 <td class="paramtype">void&#160;</td>
551 <td class="paramname"></td><td>)</td>
552 <td></td>
553 </tr>
554 </table>
555</div><div class="memdoc">
556
557<p>Suspend the thread. </p>
558<p>This method will block untill <a class="el" href="classflair_1_1core_1_1_thread.html#ae7c46910a801f1b16302570ad8ae9580" title="Resume the thread. ">Resume()</a> is called. </p>
559
560</div>
561</div>
562<a class="anchor" id="af93c2461c31a6c16958bc44189ab4253"></a>
563<div class="memitem">
564<div class="memproto">
565 <table class="memname">
566 <tr>
567 <td class="memname">bool flair::core::Thread::SuspendUntil </td>
568 <td>(</td>
569 <td class="paramtype"><a class="el" href="namespaceflair_1_1core.html#acc0fa041e08ecf73b2d1d723c339a736">Time</a>&#160;</td>
570 <td class="paramname"><em>date</em></td><td>)</td>
571 <td></td>
572 </tr>
573 </table>
574</div><div class="memdoc">
575
576<p>Suspend the thread with timeout. </p>
577<p>This method will block until <a class="el" href="classflair_1_1core_1_1_thread.html#ae7c46910a801f1b16302570ad8ae9580" title="Resume the thread. ">Resume()</a> is called or the absolute date specified occurs</p>
578<dl class="params"><dt>Parameters</dt><dd>
579 <table class="params">
580 <tr><td class="paramname">date</td><td>absolute date in ns </td></tr>
581 </table>
582 </dd>
583</dl>
584<dl class="section return"><dt>Returns</dt><dd>true if thread is woken up by a call to Resume, false otherwise </dd></dl>
585
586</div>
587</div>
588<a class="anchor" id="ae7c46910a801f1b16302570ad8ae9580"></a>
589<div class="memitem">
590<div class="memproto">
591 <table class="memname">
592 <tr>
593 <td class="memname">void flair::core::Thread::Resume </td>
594 <td>(</td>
595 <td class="paramtype">void&#160;</td>
596 <td class="paramname"></td><td>)</td>
597 <td></td>
598 </tr>
599 </table>
600</div><div class="memdoc">
601
602<p>Resume the thread. </p>
603<p>This method will unblock the call to <a class="el" href="classflair_1_1core_1_1_thread.html#a0e5fc8919ed6042e5736a5dca5ba546b" title="Suspend the thread. ">Suspend()</a>. </p>
604
605</div>
606</div>
607<a class="anchor" id="adac9a6d336bdb50bcfa24c66943a355a"></a>
608<div class="memitem">
609<div class="memproto">
610 <table class="memname">
611 <tr>
612 <td class="memname">bool flair::core::Thread::IsSuspended </td>
613 <td>(</td>
614 <td class="paramtype">void&#160;</td>
615 <td class="paramname"></td><td>)</td>
616 <td> const</td>
617 </tr>
618 </table>
619</div><div class="memdoc">
620
621<p>Is the thread suspended? </p>
622<dl class="section return"><dt>Returns</dt><dd>true if thread is suspended </dd></dl>
623
624</div>
625</div>
[50]626<a class="anchor" id="a2a82d0ade1418111c2a4e7d0e133696c"></a>
627<div class="memitem">
628<div class="memproto">
629 <table class="memname">
630 <tr>
631 <td class="memname">bool flair::core::Thread::IsRunning </td>
632 <td>(</td>
633 <td class="paramtype">void&#160;</td>
634 <td class="paramname"></td><td>)</td>
635 <td> const</td>
636 </tr>
637 </table>
638</div><div class="memdoc">
639
640<p>Is the thread running? </p>
641<dl class="section return"><dt>Returns</dt><dd>true if thread is running (call to Start). A suspended thread is running. </dd></dl>
642
643</div>
644</div>
[14]645<a class="anchor" id="ac09a2d745af3dbb42371949d4c622011"></a>
646<div class="memitem">
647<div class="memproto">
648 <table class="memname">
649 <tr>
650 <td class="memname">void flair::core::Thread::SleepUntil </td>
651 <td>(</td>
652 <td class="paramtype"><a class="el" href="namespaceflair_1_1core.html#acc0fa041e08ecf73b2d1d723c339a736">Time</a>&#160;</td>
653 <td class="paramname"><em>time</em></td><td>)</td>
654 <td> const</td>
655 </tr>
656 </table>
657</div><div class="memdoc">
658
659<p>Sleep until absolute time. </p>
660<p>This method will block untill time is reached.</p>
661<dl class="params"><dt>Parameters</dt><dd>
662 <table class="params">
663 <tr><td class="paramname">time</td><td>absolute time </td></tr>
664 </table>
665 </dd>
666</dl>
667
668</div>
669</div>
670<a class="anchor" id="a3479727dfaf2213f7866fccadb43eeb6"></a>
671<div class="memitem">
672<div class="memproto">
673 <table class="memname">
674 <tr>
675 <td class="memname">void flair::core::Thread::SleepUS </td>
676 <td>(</td>
677 <td class="paramtype">uint32_t&#160;</td>
678 <td class="paramname"><em>time_us</em></td><td>)</td>
679 <td> const</td>
680 </tr>
681 </table>
682</div><div class="memdoc">
683
684<p>Sleep for a certain time in micro second. </p>
685<p>This method will block untill time is elapsed.</p>
686<dl class="params"><dt>Parameters</dt><dd>
687 <table class="params">
688 <tr><td class="paramname">time_us</td><td>time to wait in micro second </td></tr>
689 </table>
690 </dd>
691</dl>
692
693</div>
694</div>
695<a class="anchor" id="a501e7802d7edd7e6167d111c803b8349"></a>
696<div class="memitem">
697<div class="memproto">
698 <table class="memname">
699 <tr>
700 <td class="memname">void flair::core::Thread::SleepMS </td>
701 <td>(</td>
702 <td class="paramtype">uint32_t&#160;</td>
703 <td class="paramname"><em>time_ms</em></td><td>)</td>
704 <td> const</td>
705 </tr>
706 </table>
707</div><div class="memdoc">
708
709<p>Sleep for a cartain time in milli second. </p>
710<p>This method will block untill time is elapsed.</p>
711<dl class="params"><dt>Parameters</dt><dd>
712 <table class="params">
713 <tr><td class="paramname">time_ms</td><td>time to wait in milli second </td></tr>
714 </table>
715 </dd>
716</dl>
717
718</div>
719</div>
720<a class="anchor" id="a7fbf5ad201e7e802f0fa127891849dc9"></a>
721<div class="memitem">
722<div class="memproto">
723<table class="mlabels">
724 <tr>
725 <td class="mlabels-left">
726 <table class="memname">
727 <tr>
728 <td class="memname">static void flair::core::Thread::WarnUponSwitches </td>
729 <td>(</td>
730 <td class="paramtype">bool&#160;</td>
731 <td class="paramname"><em>enable</em></td><td>)</td>
732 <td></td>
733 </tr>
734 </table>
735 </td>
736 <td class="mlabels-right">
737<span class="mlabels"><span class="mlabel">static</span></span> </td>
738 </tr>
739</table>
740</div><div class="memdoc">
741
742<p>Warn if real time / non real time switches occur. </p>
743<p>If enabled, a message with the call stack will be displayed in case of real time / non real time switches. <br />
744This method can help to debug application and see if switches occur. <br />
745Note that it as no effect if this method is called from the non real time Framework library.</p>
746<dl class="params"><dt>Parameters</dt><dd>
747 <table class="params">
748 <tr><td class="paramname">enable</td><td>enable or disable warns </td></tr>
749 </table>
750 </dd>
751</dl>
752
753</div>
754</div>
755</div><!-- contents -->
756</div><!-- doc-content -->
757<!-- start footer part -->
758<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
759 <ul>
760 <li class="navelem"><a class="el" href="namespaceflair.html">flair</a></li><li class="navelem"><a class="el" href="namespaceflair_1_1core.html">core</a></li><li class="navelem"><a class="el" href="classflair_1_1core_1_1_thread.html">Thread</a></li>
[100]761 <li class="footer">Generated on Thu Jan 31 2019 12:34:23 for Flair by
[14]762 <a href="http://www.doxygen.org/index.html">
[23]763 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
[14]764 </ul>
765</div>
766</body>
767</html>
Note: See TracBrowser for help on using the repository browser.