mirror of
https://github.com/CDevJoud/Minecraft-Community-Edition.git
synced 2026-07-16 15:50:55 +00:00
253 lines
35 KiB
HTML
253 lines
35 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
|
<meta name="generator" content="Doxygen 1.16.1"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>Minecraft Community Edition: Core/Thread.hpp Source File</title>
|
|
<link rel="icon" href="logo channel.png" type="image/x-icon" />
|
|
<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>
|
|
<script type="text/javascript" src="clipboard.js"></script>
|
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="navtreedata.js"></script>
|
|
<script type="text/javascript" src="navtree.js"></script>
|
|
<script type="text/javascript" src="cookie.js"></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>
|
|
<link href="doxygen.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 id="projectrow">
|
|
<td id="projectalign">
|
|
<div id="projectname">Minecraft Community Edition<span id="projectnumber"> 0.1.0</span>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.16.1 -->
|
|
<script type="text/javascript">
|
|
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
|
</script>
|
|
<script type="text/javascript">
|
|
$(function() { codefold.init(); });
|
|
</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',true);
|
|
$(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">
|
|
$(function(){initNavTree('_thread_8hpp_source.html','',''); });
|
|
</script>
|
|
<div id="container">
|
|
<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">
|
|
<div id="MSearchResults">
|
|
<div class="SRPage">
|
|
<div id="SRIndex">
|
|
<div id="SRResults"></div>
|
|
<div class="SRStatus" id="Loading">Loading...</div>
|
|
<div class="SRStatus" id="Searching">Searching...</div>
|
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="header">
|
|
<div class="headertitle"><div class="title">Thread.hpp</div></div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<a href="_thread_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#pragma once</span></div>
|
|
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#include "<a class="code" href="_q_event_bus_8hpp.html">QEventBus.hpp</a>"</span></div>
|
|
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span></div>
|
|
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> </div>
|
|
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="keyword">namespace </span>mce {</div>
|
|
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> <span class="keyword">class </span><a class="code hl_class" href="classmce_1_1_thread_impl.html">ThreadImpl</a>;</div>
|
|
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span></div>
|
|
<div class="foldopen" id="foldopen00022" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"><a class="line" href="structmce_1_1_thread_func.html"> 22</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structmce_1_1_thread_func.html">ThreadFunc</a> {</div>
|
|
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"><a class="line" href="structmce_1_1_thread_func.html#a326effacbebaefebd61fd3b57a480d39"> 26</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="structmce_1_1_thread_func.html#a326effacbebaefebd61fd3b57a480d39">~ThreadFunc</a>() {}</div>
|
|
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span></div>
|
|
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"><a class="line" href="structmce_1_1_thread_func.html#a845789c58b4cd7e73c7a99d15c2337f6"> 33</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmce_1_1_thread_func.html#a845789c58b4cd7e73c7a99d15c2337f6">run</a>() = 0;</div>
|
|
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span></div>
|
|
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">template</span><<span class="keyword">typename</span> F></div>
|
|
<div class="foldopen" id="foldopen00041" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"><a class="line" href="structmce_1_1_thread_functor.html"> 41</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structmce_1_1_thread_functor.html#adf20b2d25c1d267d6201abc5ee019112">ThreadFunctor</a> : <a class="code hl_struct" href="structmce_1_1_thread_func.html">ThreadFunc</a> {</div>
|
|
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="structmce_1_1_thread_functor.html#adf20b2d25c1d267d6201abc5ee019112"> 46</a></span> <a class="code hl_function" href="structmce_1_1_thread_functor.html#adf20b2d25c1d267d6201abc5ee019112">ThreadFunctor</a>(F <a class="code hl_variable" href="structmce_1_1_thread_functor.html#a9146327d84308e61f348693894cc4345">functor</a>) : <a class="code hl_variable" href="structmce_1_1_thread_functor.html#a9146327d84308e61f348693894cc4345">functor</a>(<a class="code hl_variable" href="structmce_1_1_thread_functor.html#a9146327d84308e61f348693894cc4345">functor</a>) {}</div>
|
|
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span></div>
|
|
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="structmce_1_1_thread_functor.html#a15516d7b0dbda4d412ffdbea0eb2bc30"> 51</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmce_1_1_thread_functor.html#a15516d7b0dbda4d412ffdbea0eb2bc30">run</a>()<span class="keyword"> override </span>{ <a class="code hl_variable" href="structmce_1_1_thread_functor.html#a9146327d84308e61f348693894cc4345">functor</a>(); };</div>
|
|
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span></div>
|
|
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"><a class="line" href="structmce_1_1_thread_functor.html#a9146327d84308e61f348693894cc4345"> 54</a></span> F <a class="code hl_variable" href="structmce_1_1_thread_functor.html#a9146327d84308e61f348693894cc4345">functor</a>;</div>
|
|
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span></div>
|
|
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">template</span><<span class="keyword">typename</span> C></div>
|
|
<div class="foldopen" id="foldopen00062" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="structmce_1_1_thread_member_functor.html"> 62</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structmce_1_1_thread_member_functor.html#a1dc618e61e73f82c5898e873e486e480">ThreadMemberFunctor</a> : <a class="code hl_struct" href="structmce_1_1_thread_func.html">ThreadFunc</a> {</div>
|
|
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"><a class="line" href="structmce_1_1_thread_member_functor.html#a1dc618e61e73f82c5898e873e486e480"> 68</a></span> <a class="code hl_function" href="structmce_1_1_thread_member_functor.html#a1dc618e61e73f82c5898e873e486e480">ThreadMemberFunctor</a>(<span class="keywordtype">void</span>(C::* function)(), C* <span class="keywordtype">object</span>) : <a class="code hl_variable" href="structmce_1_1_thread_member_functor.html#a3720c4df81fb32687f5b836232b7f044">functor</a>(function), <a class="code hl_variable" href="structmce_1_1_thread_member_functor.html#a6cf5ef7fac6e9cca36187edc9e52c6c6">object</a>(<a class="code hl_variable" href="structmce_1_1_thread_member_functor.html#a6cf5ef7fac6e9cca36187edc9e52c6c6">object</a>) {}</div>
|
|
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span></div>
|
|
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"><a class="line" href="structmce_1_1_thread_member_functor.html#a53486e3258e69a89e50a62e47ab3edfd"> 76</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmce_1_1_thread_member_functor.html#a53486e3258e69a89e50a62e47ab3edfd">run</a>()<span class="keyword"> override </span>{ <a class="code hl_variable" href="structmce_1_1_thread_member_functor.html#a3720c4df81fb32687f5b836232b7f044">functor</a>(); };</div>
|
|
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span></div>
|
|
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"><a class="line" href="structmce_1_1_thread_member_functor.html#a3720c4df81fb32687f5b836232b7f044"> 79</a></span> void(C::* <a class="code hl_variable" href="structmce_1_1_thread_member_functor.html#a3720c4df81fb32687f5b836232b7f044">functor</a>)();</div>
|
|
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span></div>
|
|
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"><a class="line" href="structmce_1_1_thread_member_functor.html#a6cf5ef7fac6e9cca36187edc9e52c6c6"> 82</a></span> C* <a class="code hl_variable" href="structmce_1_1_thread_member_functor.html#a6cf5ef7fac6e9cca36187edc9e52c6c6">object</a>;</div>
|
|
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span></div>
|
|
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <span class="keyword">template</span><<span class="keyword">typename</span> C, <span class="keyword">typename</span>... Args></div>
|
|
<div class="foldopen" id="foldopen00091" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"><a class="line" href="structmce_1_1_thread_member_functor_with_args.html"> 91</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structmce_1_1_thread_member_functor_with_args.html#ad7b3374d69d6e0a3c606a299c47ccdf4">ThreadMemberFunctorWithArgs</a> : <a class="code hl_struct" href="structmce_1_1_thread_func.html">ThreadFunc</a> {</div>
|
|
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"><a class="line" href="structmce_1_1_thread_member_functor_with_args.html#ad7b3374d69d6e0a3c606a299c47ccdf4"> 98</a></span> <a class="code hl_function" href="structmce_1_1_thread_member_functor_with_args.html#ad7b3374d69d6e0a3c606a299c47ccdf4">ThreadMemberFunctorWithArgs</a>(<span class="keywordtype">void</span>(C::* function)(Args...), C* <span class="keywordtype">object</span>, Args&&... <a class="code hl_variable" href="structmce_1_1_thread_member_functor_with_args.html#a8256fbf40767aa3a44a6362d4575e540">args</a>) : <a class="code hl_variable" href="structmce_1_1_thread_member_functor_with_args.html#a437472525ce47993742f5063277aa3c5">functor</a>(<a class="code hl_variable" href="structmce_1_1_thread_member_functor_with_args.html#a437472525ce47993742f5063277aa3c5">functor</a>), <a class="code hl_variable" href="structmce_1_1_thread_member_functor_with_args.html#a5719012094127c1e0808b71f3b668038">object</a>(<a class="code hl_variable" href="structmce_1_1_thread_member_functor_with_args.html#a5719012094127c1e0808b71f3b668038">object</a>) {}</div>
|
|
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span></div>
|
|
<div class="foldopen" id="foldopen00103" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"><a class="line" href="structmce_1_1_thread_member_functor_with_args.html#aff17a973bcfacc0ee487458c0ca5f228"> 103</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmce_1_1_thread_member_functor_with_args.html#aff17a973bcfacc0ee487458c0ca5f228">run</a>()<span class="keyword"> override </span>{</div>
|
|
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> call(std::index_sequence_for<Args...>{});</div>
|
|
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span></div>
|
|
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"><a class="line" href="structmce_1_1_thread_member_functor_with_args.html#a437472525ce47993742f5063277aa3c5"> 108</a></span> void(C::* <a class="code hl_variable" href="structmce_1_1_thread_member_functor_with_args.html#a437472525ce47993742f5063277aa3c5">functor</a>)(Args...);</div>
|
|
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span></div>
|
|
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"><a class="line" href="structmce_1_1_thread_member_functor_with_args.html#a5719012094127c1e0808b71f3b668038"> 111</a></span> C* <a class="code hl_variable" href="structmce_1_1_thread_member_functor_with_args.html#a5719012094127c1e0808b71f3b668038">object</a>;</div>
|
|
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span></div>
|
|
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"><a class="line" href="structmce_1_1_thread_member_functor_with_args.html#a8256fbf40767aa3a44a6362d4575e540"> 114</a></span> std::tuple<Args...> <a class="code hl_variable" href="structmce_1_1_thread_member_functor_with_args.html#a8256fbf40767aa3a44a6362d4575e540">args</a>;</div>
|
|
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> <span class="keyword">template</span> <std::size_t... I></div>
|
|
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> <span class="keywordtype">void</span> call(std::index_sequence<I...>) {</div>
|
|
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> (<span class="keywordtype">object</span>->*<a class="code hl_variable" href="structmce_1_1_thread_member_functor_with_args.html#a437472525ce47993742f5063277aa3c5">functor</a>)(std::get<I>(<a class="code hl_variable" href="structmce_1_1_thread_member_functor_with_args.html#a8256fbf40767aa3a44a6362d4575e540">args</a>)...);</div>
|
|
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> }</div>
|
|
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span></div>
|
|
<div class="foldopen" id="foldopen00134" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"><a class="line" href="classmce_1_1_thread.html"> 134</a></span> <span class="keyword">class </span><a class="code hl_function" href="classmce_1_1_thread.html#a90e3636f9c64c36a6935a849445b17c1">Thread</a> {</div>
|
|
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <span class="keyword">template</span><<span class="keyword">typename</span> F></div>
|
|
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <a class="code hl_function" href="classmce_1_1_thread.html#a90e3636f9c64c36a6935a849445b17c1">Thread</a>(<a class="code hl_class" href="classmce_1_1_q_event_bus.html">QEventBus</a>& qBus, F function);</div>
|
|
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span></div>
|
|
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <span class="keyword">template</span><<span class="keyword">typename</span> C></div>
|
|
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <a class="code hl_function" href="classmce_1_1_thread.html#a90e3636f9c64c36a6935a849445b17c1">Thread</a>(<a class="code hl_class" href="classmce_1_1_q_event_bus.html">QEventBus</a>& qBus, <span class="keywordtype">void</span>(C::* function)(), C* <span class="keywordtype">object</span>);</div>
|
|
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span></div>
|
|
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> <span class="keyword">template</span><<span class="keyword">typename</span> C, <span class="keyword">typename</span>... Args></div>
|
|
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> <a class="code hl_function" href="classmce_1_1_thread.html#a90e3636f9c64c36a6935a849445b17c1">Thread</a>(<a class="code hl_class" href="classmce_1_1_q_event_bus.html">QEventBus</a>& qBus, <span class="keywordtype">void</span>(C::* function)(), C* <span class="keywordtype">object</span>, Args&&... args);</div>
|
|
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span></div>
|
|
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> <a class="code hl_function" href="classmce_1_1_thread.html#ad53fb135e59203bea7469f8ec3bde46b">~Thread</a>();</div>
|
|
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span></div>
|
|
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmce_1_1_thread.html#a6857a0007eb44e985a11b76e8b2ab81d">launch</a>();</div>
|
|
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span></div>
|
|
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmce_1_1_thread.html#a7167ced2613ce6e9e3ae0ee942277c87">wait</a>();</div>
|
|
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> </div>
|
|
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> <span class="keyword">friend</span> <span class="keyword">class </span>ThreadImpl;</div>
|
|
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span></div>
|
|
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> <span class="keywordtype">void</span> run();</div>
|
|
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span></div>
|
|
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> ThreadImpl* pImpl;<span class="comment">//pointer to implementation</span></div>
|
|
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span></div>
|
|
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> <a class="code hl_struct" href="structmce_1_1_thread_func.html">ThreadFunc</a>* entryPoint;</div>
|
|
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span></div>
|
|
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> <a class="code hl_class" href="classmce_1_1_q_event_bus.html">QEventBus</a>& qBus;</div>
|
|
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> <span class="keyword">template</span><<span class="keyword">typename</span> F></div>
|
|
<div class="foldopen" id="foldopen00203" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"><a class="line" href="classmce_1_1_thread.html#a90e3636f9c64c36a6935a849445b17c1"> 203</a></span> <span class="keyword">inline</span> <a class="code hl_function" href="classmce_1_1_thread.html#a90e3636f9c64c36a6935a849445b17c1">Thread::Thread</a>(<a class="code hl_class" href="classmce_1_1_q_event_bus.html">QEventBus</a>& qBus, F function) :</div>
|
|
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> pImpl(nullptr),</div>
|
|
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> entryPoint(new <a class="code hl_struct" href="structmce_1_1_thread_functor.html">ThreadFunctor</a><F>(function)),</div>
|
|
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> qBus(qBus) {</div>
|
|
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> </div>
|
|
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> <span class="keyword">template</span><<span class="keyword">typename</span> C></div>
|
|
<div class="foldopen" id="foldopen00210" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"><a class="line" href="classmce_1_1_thread.html#a35eebc21874cf98c954d0f06f5fa8cb3"> 210</a></span> <span class="keyword">inline</span> <a class="code hl_function" href="classmce_1_1_thread.html#a90e3636f9c64c36a6935a849445b17c1">Thread::Thread</a>(<a class="code hl_class" href="classmce_1_1_q_event_bus.html">QEventBus</a>& qBus, <span class="keywordtype">void</span>(C::* function)(), C* <span class="keywordtype">object</span>) :</div>
|
|
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> pImpl(nullptr),</div>
|
|
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> entryPoint(new <a class="code hl_struct" href="structmce_1_1_thread_member_functor.html">ThreadMemberFunctor</a><C>(function, object)),</div>
|
|
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> qBus(qBus) {</div>
|
|
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> </div>
|
|
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> <span class="keyword">template</span><<span class="keyword">typename</span> C, <span class="keyword">typename</span> ...Args></div>
|
|
<div class="foldopen" id="foldopen00217" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"><a class="line" href="classmce_1_1_thread.html#ad96edc70278355f33805f7826bcea466"> 217</a></span> <span class="keyword">inline</span> <a class="code hl_function" href="classmce_1_1_thread.html#a90e3636f9c64c36a6935a849445b17c1">Thread::Thread</a>(<a class="code hl_class" href="classmce_1_1_q_event_bus.html">QEventBus</a>& qBus, <span class="keywordtype">void</span>(C::* function)(), C* <span class="keywordtype">object</span>, Args && ...args) : </div>
|
|
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> pImpl(nullptr),</div>
|
|
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> entryPoint(new <a class="code hl_struct" href="structmce_1_1_thread_member_functor_with_args.html">ThreadMemberFunctorWithArgs</a><C>(function, object)),</div>
|
|
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> qBus(qBus) {</div>
|
|
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> </div>
|
|
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span>}</div>
|
|
<div class="ttc" id="a_q_event_bus_8hpp_html"><div class="ttname"><a href="_q_event_bus_8hpp.html">QEventBus.hpp</a></div><div class="ttdoc">Thread-safe event bus.</div></div>
|
|
<div class="ttc" id="aclassmce_1_1_q_event_bus_html"><div class="ttname"><a href="classmce_1_1_q_event_bus.html">mce::QEventBus</a></div><div class="ttdoc">Thread-safe event bus.</div><div class="ttdef"><b>Definition</b> QEventBus.hpp:58</div></div>
|
|
<div class="ttc" id="aclassmce_1_1_thread_html_a6857a0007eb44e985a11b76e8b2ab81d"><div class="ttname"><a href="classmce_1_1_thread.html#a6857a0007eb44e985a11b76e8b2ab81d">mce::Thread::launch</a></div><div class="ttdeci">void launch()</div><div class="ttdoc">Start execution of the stored callable on a new thread.</div><div class="ttdef"><b>Definition</b> Thread.cpp:10</div></div>
|
|
<div class="ttc" id="aclassmce_1_1_thread_html_a7167ced2613ce6e9e3ae0ee942277c87"><div class="ttname"><a href="classmce_1_1_thread.html#a7167ced2613ce6e9e3ae0ee942277c87">mce::Thread::wait</a></div><div class="ttdeci">void wait()</div><div class="ttdoc">Block until the thread has finished executing.</div><div class="ttdef"><b>Definition</b> Thread.cpp:17</div></div>
|
|
<div class="ttc" id="aclassmce_1_1_thread_html_a90e3636f9c64c36a6935a849445b17c1"><div class="ttname"><a href="classmce_1_1_thread.html#a90e3636f9c64c36a6935a849445b17c1">mce::Thread::Thread</a></div><div class="ttdeci">Thread(QEventBus &qBus, F function)</div><div class="ttdoc">Construct a Thread from a generic callable (lambda, functor, function pointer).</div><div class="ttdef"><b>Definition</b> Thread.hpp:203</div></div>
|
|
<div class="ttc" id="aclassmce_1_1_thread_html_ad53fb135e59203bea7469f8ec3bde46b"><div class="ttname"><a href="classmce_1_1_thread.html#ad53fb135e59203bea7469f8ec3bde46b">mce::Thread::~Thread</a></div><div class="ttdeci">~Thread()</div><div class="ttdoc">Destructor; cleans up stored callable and implementation pointer.</div><div class="ttdef"><b>Definition</b> Thread.cpp:5</div></div>
|
|
<div class="ttc" id="aclassmce_1_1_thread_impl_html"><div class="ttname"><a href="classmce_1_1_thread_impl.html">mce::ThreadImpl</a></div><div class="ttdoc">Platform-specific thread implementation.</div><div class="ttdef"><b>Definition</b> ThreadImpl.hpp:32</div></div>
|
|
<div class="ttc" id="astructmce_1_1_thread_func_html"><div class="ttname"><a href="structmce_1_1_thread_func.html">mce::ThreadFunc</a></div><div class="ttdoc">Abstract type-erased callable interface used as a thread entry point.</div><div class="ttdef"><b>Definition</b> Thread.hpp:22</div></div>
|
|
<div class="ttc" id="astructmce_1_1_thread_func_html_a326effacbebaefebd61fd3b57a480d39"><div class="ttname"><a href="structmce_1_1_thread_func.html#a326effacbebaefebd61fd3b57a480d39">mce::ThreadFunc::~ThreadFunc</a></div><div class="ttdeci">virtual ~ThreadFunc()</div><div class="ttdoc">Virtual destructor to allow safe deletion via base pointer.</div><div class="ttdef"><b>Definition</b> Thread.hpp:26</div></div>
|
|
<div class="ttc" id="astructmce_1_1_thread_func_html_a845789c58b4cd7e73c7a99d15c2337f6"><div class="ttname"><a href="structmce_1_1_thread_func.html#a845789c58b4cd7e73c7a99d15c2337f6">mce::ThreadFunc::run</a></div><div class="ttdeci">virtual void run()=0</div><div class="ttdoc">Execute the wrapped callable.</div></div>
|
|
<div class="ttc" id="astructmce_1_1_thread_functor_html"><div class="ttname"><a href="structmce_1_1_thread_functor.html">mce::ThreadFunctor</a></div><div class="ttdoc">Adapter that wraps a generic functor/lambda.</div><div class="ttdef"><b>Definition</b> Thread.hpp:41</div></div>
|
|
<div class="ttc" id="astructmce_1_1_thread_functor_html_a15516d7b0dbda4d412ffdbea0eb2bc30"><div class="ttname"><a href="structmce_1_1_thread_functor.html#a15516d7b0dbda4d412ffdbea0eb2bc30">mce::ThreadFunctor::run</a></div><div class="ttdeci">virtual void run() override</div><div class="ttdoc">Invoke the stored functor.</div><div class="ttdef"><b>Definition</b> Thread.hpp:51</div></div>
|
|
<div class="ttc" id="astructmce_1_1_thread_functor_html_a9146327d84308e61f348693894cc4345"><div class="ttname"><a href="structmce_1_1_thread_functor.html#a9146327d84308e61f348693894cc4345">mce::ThreadFunctor::functor</a></div><div class="ttdeci">F functor</div><div class="ttdoc">The stored functor instance.</div><div class="ttdef"><b>Definition</b> Thread.hpp:54</div></div>
|
|
<div class="ttc" id="astructmce_1_1_thread_functor_html_adf20b2d25c1d267d6201abc5ee019112"><div class="ttname"><a href="structmce_1_1_thread_functor.html#adf20b2d25c1d267d6201abc5ee019112">mce::ThreadFunctor::ThreadFunctor</a></div><div class="ttdeci">ThreadFunctor(F functor)</div><div class="ttdoc">Construct the adapter with the provided functor.</div><div class="ttdef"><b>Definition</b> Thread.hpp:46</div></div>
|
|
<div class="ttc" id="astructmce_1_1_thread_member_functor_html"><div class="ttname"><a href="structmce_1_1_thread_member_functor.html">mce::ThreadMemberFunctor</a></div><div class="ttdoc">Adapter that wraps a member function without extra arguments.</div><div class="ttdef"><b>Definition</b> Thread.hpp:62</div></div>
|
|
<div class="ttc" id="astructmce_1_1_thread_member_functor_html_a1dc618e61e73f82c5898e873e486e480"><div class="ttname"><a href="structmce_1_1_thread_member_functor.html#a1dc618e61e73f82c5898e873e486e480">mce::ThreadMemberFunctor::ThreadMemberFunctor</a></div><div class="ttdeci">ThreadMemberFunctor(void(C::*function)(), C *object)</div><div class="ttdoc">Construct with member function pointer and target object.</div><div class="ttdef"><b>Definition</b> Thread.hpp:68</div></div>
|
|
<div class="ttc" id="astructmce_1_1_thread_member_functor_html_a3720c4df81fb32687f5b836232b7f044"><div class="ttname"><a href="structmce_1_1_thread_member_functor.html#a3720c4df81fb32687f5b836232b7f044">mce::ThreadMemberFunctor::functor</a></div><div class="ttdeci">void(C::* functor)()</div><div class="ttdoc">Pointer to the member function to invoke.</div><div class="ttdef"><b>Definition</b> Thread.hpp:79</div></div>
|
|
<div class="ttc" id="astructmce_1_1_thread_member_functor_html_a53486e3258e69a89e50a62e47ab3edfd"><div class="ttname"><a href="structmce_1_1_thread_member_functor.html#a53486e3258e69a89e50a62e47ab3edfd">mce::ThreadMemberFunctor::run</a></div><div class="ttdeci">virtual void run() override</div><div class="ttdoc">Invoke the stored member function on the stored object.</div><div class="ttdef"><b>Definition</b> Thread.hpp:76</div></div>
|
|
<div class="ttc" id="astructmce_1_1_thread_member_functor_html_a6cf5ef7fac6e9cca36187edc9e52c6c6"><div class="ttname"><a href="structmce_1_1_thread_member_functor.html#a6cf5ef7fac6e9cca36187edc9e52c6c6">mce::ThreadMemberFunctor::object</a></div><div class="ttdeci">C * object</div><div class="ttdoc">Pointer to the object instance used when invoking the member function.</div><div class="ttdef"><b>Definition</b> Thread.hpp:82</div></div>
|
|
<div class="ttc" id="astructmce_1_1_thread_member_functor_with_args_html"><div class="ttname"><a href="structmce_1_1_thread_member_functor_with_args.html">mce::ThreadMemberFunctorWithArgs</a></div><div class="ttdoc">Adapter that wraps a member function with arbitrary arguments.</div><div class="ttdef"><b>Definition</b> Thread.hpp:91</div></div>
|
|
<div class="ttc" id="astructmce_1_1_thread_member_functor_with_args_html_a437472525ce47993742f5063277aa3c5"><div class="ttname"><a href="structmce_1_1_thread_member_functor_with_args.html#a437472525ce47993742f5063277aa3c5">mce::ThreadMemberFunctorWithArgs::functor</a></div><div class="ttdeci">void(C::* functor)(Args...)</div><div class="ttdoc">Pointer to the member function to invoke.</div><div class="ttdef"><b>Definition</b> Thread.hpp:108</div></div>
|
|
<div class="ttc" id="astructmce_1_1_thread_member_functor_with_args_html_a5719012094127c1e0808b71f3b668038"><div class="ttname"><a href="structmce_1_1_thread_member_functor_with_args.html#a5719012094127c1e0808b71f3b668038">mce::ThreadMemberFunctorWithArgs::object</a></div><div class="ttdeci">C * object</div><div class="ttdoc">Pointer to the object instance used when invoking the member function.</div><div class="ttdef"><b>Definition</b> Thread.hpp:111</div></div>
|
|
<div class="ttc" id="astructmce_1_1_thread_member_functor_with_args_html_a8256fbf40767aa3a44a6362d4575e540"><div class="ttname"><a href="structmce_1_1_thread_member_functor_with_args.html#a8256fbf40767aa3a44a6362d4575e540">mce::ThreadMemberFunctorWithArgs::args</a></div><div class="ttdeci">std::tuple< Args... > args</div><div class="ttdoc">Tuple holding the arguments to forward to the member function.</div><div class="ttdef"><b>Definition</b> Thread.hpp:114</div></div>
|
|
<div class="ttc" id="astructmce_1_1_thread_member_functor_with_args_html_ad7b3374d69d6e0a3c606a299c47ccdf4"><div class="ttname"><a href="structmce_1_1_thread_member_functor_with_args.html#ad7b3374d69d6e0a3c606a299c47ccdf4">mce::ThreadMemberFunctorWithArgs::ThreadMemberFunctorWithArgs</a></div><div class="ttdeci">ThreadMemberFunctorWithArgs(void(C::*function)(Args...), C *object, Args &&... args)</div><div class="ttdoc">Construct with member function pointer, target object and arguments.</div><div class="ttdef"><b>Definition</b> Thread.hpp:98</div></div>
|
|
<div class="ttc" id="astructmce_1_1_thread_member_functor_with_args_html_aff17a973bcfacc0ee487458c0ca5f228"><div class="ttname"><a href="structmce_1_1_thread_member_functor_with_args.html#aff17a973bcfacc0ee487458c0ca5f228">mce::ThreadMemberFunctorWithArgs::run</a></div><div class="ttdeci">virtual void run() override</div><div class="ttdoc">Invoke the stored member function forwarding the stored arguments.</div><div class="ttdef"><b>Definition</b> Thread.hpp:103</div></div>
|
|
</div><!-- fragment --></div><!-- contents -->
|
|
</div><!-- doc-content -->
|
|
</div><!-- container -->
|
|
<!-- start footer part -->
|
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
|
<ul>
|
|
<li class="navelem"><b>Core</b></li><li class="navelem"><a href="_thread_8hpp.html">Thread.hpp</a></li>
|
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.16.1 </li>
|
|
</ul>
|
|
</div>
|
|
</body>
|
|
</html>
|