mirror of
https://github.com/CDevJoud/Minecraft-Community-Edition.git
synced 2026-07-16 14:40:58 +00:00
252 lines
37 KiB
HTML
252 lines
37 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: Minecraft-Community-Edition/Core/Thread.hpp Source File</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
<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::core {</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_1core_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_1core_1_1_thread_func.html"> 22</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structmce_1_1core_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_1core_1_1_thread_func.html#a272b6f69ca3e904d3638674610bca2d0"> 26</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="structmce_1_1core_1_1_thread_func.html#a272b6f69ca3e904d3638674610bca2d0">~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_1core_1_1_thread_func.html#ad4a74434c6c2605fdf114f464a78c915"> 33</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmce_1_1core_1_1_thread_func.html#ad4a74434c6c2605fdf114f464a78c915">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_1core_1_1_thread_functor.html"> 41</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structmce_1_1core_1_1_thread_functor.html#a47879bc7e45142102b9b56fb28329285">ThreadFunctor</a> : <a class="code hl_struct" href="structmce_1_1core_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_1core_1_1_thread_functor.html#a47879bc7e45142102b9b56fb28329285"> 46</a></span> <a class="code hl_function" href="structmce_1_1core_1_1_thread_functor.html#a47879bc7e45142102b9b56fb28329285">ThreadFunctor</a>(F <a class="code hl_variable" href="structmce_1_1core_1_1_thread_functor.html#a2575e35029b664ce87f10d963ce8ef9b">functor</a>) : <a class="code hl_variable" href="structmce_1_1core_1_1_thread_functor.html#a2575e35029b664ce87f10d963ce8ef9b">functor</a>(<a class="code hl_variable" href="structmce_1_1core_1_1_thread_functor.html#a2575e35029b664ce87f10d963ce8ef9b">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_1core_1_1_thread_functor.html#ac438bf9ca5587f9c7e3f9a26b9402870"> 51</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmce_1_1core_1_1_thread_functor.html#ac438bf9ca5587f9c7e3f9a26b9402870">run</a>()<span class="keyword"> override </span>{ <a class="code hl_variable" href="structmce_1_1core_1_1_thread_functor.html#a2575e35029b664ce87f10d963ce8ef9b">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_1core_1_1_thread_functor.html#a2575e35029b664ce87f10d963ce8ef9b"> 54</a></span> F <a class="code hl_variable" href="structmce_1_1core_1_1_thread_functor.html#a2575e35029b664ce87f10d963ce8ef9b">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_1core_1_1_thread_member_functor.html"> 62</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structmce_1_1core_1_1_thread_member_functor.html#aad1992c0dcf605480866198d8657836f">ThreadMemberFunctor</a> : <a class="code hl_struct" href="structmce_1_1core_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_1core_1_1_thread_member_functor.html#aad1992c0dcf605480866198d8657836f"> 68</a></span> <a class="code hl_function" href="structmce_1_1core_1_1_thread_member_functor.html#aad1992c0dcf605480866198d8657836f">ThreadMemberFunctor</a>(<span class="keywordtype">void</span>(C::* function)(), C* <span class="keywordtype">object</span>) : <a class="code hl_variable" href="structmce_1_1core_1_1_thread_member_functor.html#a23280343a74051bf5116220c4e4c4fd0">functor</a>(function), <a class="code hl_variable" href="structmce_1_1core_1_1_thread_member_functor.html#add49c0a94c05ef8c298bbb320dce86c6">object</a>(<a class="code hl_variable" href="structmce_1_1core_1_1_thread_member_functor.html#add49c0a94c05ef8c298bbb320dce86c6">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_1core_1_1_thread_member_functor.html#abae58b0253a11258d9d22a1aac146374"> 76</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmce_1_1core_1_1_thread_member_functor.html#abae58b0253a11258d9d22a1aac146374">run</a>()<span class="keyword"> override </span>{ <a class="code hl_variable" href="structmce_1_1core_1_1_thread_member_functor.html#a23280343a74051bf5116220c4e4c4fd0">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_1core_1_1_thread_member_functor.html#a23280343a74051bf5116220c4e4c4fd0"> 79</a></span> void(C::* <a class="code hl_variable" href="structmce_1_1core_1_1_thread_member_functor.html#a23280343a74051bf5116220c4e4c4fd0">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_1core_1_1_thread_member_functor.html#add49c0a94c05ef8c298bbb320dce86c6"> 82</a></span> C* <a class="code hl_variable" href="structmce_1_1core_1_1_thread_member_functor.html#add49c0a94c05ef8c298bbb320dce86c6">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_1core_1_1_thread_member_functor_with_args.html"> 91</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structmce_1_1core_1_1_thread_member_functor_with_args.html#ad5cbd950f5ff86ed09c904f481fc5ae2">ThreadMemberFunctorWithArgs</a> : <a class="code hl_struct" href="structmce_1_1core_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_1core_1_1_thread_member_functor_with_args.html#ad5cbd950f5ff86ed09c904f481fc5ae2"> 98</a></span> <a class="code hl_function" href="structmce_1_1core_1_1_thread_member_functor_with_args.html#ad5cbd950f5ff86ed09c904f481fc5ae2">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_1core_1_1_thread_member_functor_with_args.html#ab4720611c54e78d58aebc15b15f10079">args</a>) : <a class="code hl_variable" href="structmce_1_1core_1_1_thread_member_functor_with_args.html#afbd27fe66db61ffedc2bddde2787360b">functor</a>(<a class="code hl_variable" href="structmce_1_1core_1_1_thread_member_functor_with_args.html#afbd27fe66db61ffedc2bddde2787360b">functor</a>), <a class="code hl_variable" href="structmce_1_1core_1_1_thread_member_functor_with_args.html#a9eae16a5b401d1c9a46b507e123d9a86">object</a>(<a class="code hl_variable" href="structmce_1_1core_1_1_thread_member_functor_with_args.html#a9eae16a5b401d1c9a46b507e123d9a86">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_1core_1_1_thread_member_functor_with_args.html#a4521a2cbc1f0adfc8f3a939400f4bef5"> 103</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmce_1_1core_1_1_thread_member_functor_with_args.html#a4521a2cbc1f0adfc8f3a939400f4bef5">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_1core_1_1_thread_member_functor_with_args.html#afbd27fe66db61ffedc2bddde2787360b"> 108</a></span> void(C::* <a class="code hl_variable" href="structmce_1_1core_1_1_thread_member_functor_with_args.html#afbd27fe66db61ffedc2bddde2787360b">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_1core_1_1_thread_member_functor_with_args.html#a9eae16a5b401d1c9a46b507e123d9a86"> 111</a></span> C* <a class="code hl_variable" href="structmce_1_1core_1_1_thread_member_functor_with_args.html#a9eae16a5b401d1c9a46b507e123d9a86">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_1core_1_1_thread_member_functor_with_args.html#ab4720611c54e78d58aebc15b15f10079"> 114</a></span> std::tuple<Args...> <a class="code hl_variable" href="structmce_1_1core_1_1_thread_member_functor_with_args.html#ab4720611c54e78d58aebc15b15f10079">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_1core_1_1_thread_member_functor_with_args.html#afbd27fe66db61ffedc2bddde2787360b">functor</a>)(std::get<I>(<a class="code hl_variable" href="structmce_1_1core_1_1_thread_member_functor_with_args.html#ab4720611c54e78d58aebc15b15f10079">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_1core_1_1_thread.html"> 134</a></span> <span class="keyword">class </span><a class="code hl_function" href="classmce_1_1core_1_1_thread.html#a5c2ce9f111b89f119b47af3ec1ce8a00">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_1core_1_1_thread.html#a5c2ce9f111b89f119b47af3ec1ce8a00">Thread</a>(<a class="code hl_class" href="classmce_1_1core_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_1core_1_1_thread.html#a5c2ce9f111b89f119b47af3ec1ce8a00">Thread</a>(<a class="code hl_class" href="classmce_1_1core_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_1core_1_1_thread.html#a5c2ce9f111b89f119b47af3ec1ce8a00">Thread</a>(<a class="code hl_class" href="classmce_1_1core_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_1core_1_1_thread.html#a1e1425d5263133f0bd16fba495839796">~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_1core_1_1_thread.html#a17d067360737b1dae418b85295c37f5e">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_1core_1_1_thread.html#a956fa62a80b4bfb22ba33b82d7e14daa">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_1core_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_1core_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_1core_1_1_thread.html#a5c2ce9f111b89f119b47af3ec1ce8a00"> 203</a></span> <span class="keyword">inline</span> <a class="code hl_function" href="classmce_1_1core_1_1_thread.html#a5c2ce9f111b89f119b47af3ec1ce8a00">Thread::Thread</a>(<a class="code hl_class" href="classmce_1_1core_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_1core_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_1core_1_1_thread.html#a05de96580531c85901fae73a8c844ee2"> 210</a></span> <span class="keyword">inline</span> <a class="code hl_function" href="classmce_1_1core_1_1_thread.html#a5c2ce9f111b89f119b47af3ec1ce8a00">Thread::Thread</a>(<a class="code hl_class" href="classmce_1_1core_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_1core_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_1core_1_1_thread.html#a5e1e35c39fea84e1a49a161e52293345"> 217</a></span> <span class="keyword">inline</span> <a class="code hl_function" href="classmce_1_1core_1_1_thread.html#a5c2ce9f111b89f119b47af3ec1ce8a00">Thread::Thread</a>(<a class="code hl_class" href="classmce_1_1core_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_1core_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_1core_1_1_q_event_bus_html"><div class="ttname"><a href="classmce_1_1core_1_1_q_event_bus.html">mce::core::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_1core_1_1_thread_html_a17d067360737b1dae418b85295c37f5e"><div class="ttname"><a href="classmce_1_1core_1_1_thread.html#a17d067360737b1dae418b85295c37f5e">mce::core::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_1core_1_1_thread_html_a1e1425d5263133f0bd16fba495839796"><div class="ttname"><a href="classmce_1_1core_1_1_thread.html#a1e1425d5263133f0bd16fba495839796">mce::core::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_1core_1_1_thread_html_a5c2ce9f111b89f119b47af3ec1ce8a00"><div class="ttname"><a href="classmce_1_1core_1_1_thread.html#a5c2ce9f111b89f119b47af3ec1ce8a00">mce::core::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_1core_1_1_thread_html_a956fa62a80b4bfb22ba33b82d7e14daa"><div class="ttname"><a href="classmce_1_1core_1_1_thread.html#a956fa62a80b4bfb22ba33b82d7e14daa">mce::core::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_1core_1_1_thread_impl_html"><div class="ttname"><a href="classmce_1_1core_1_1_thread_impl.html">mce::core::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_1core_1_1_thread_func_html"><div class="ttname"><a href="structmce_1_1core_1_1_thread_func.html">mce::core::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_1core_1_1_thread_func_html_a272b6f69ca3e904d3638674610bca2d0"><div class="ttname"><a href="structmce_1_1core_1_1_thread_func.html#a272b6f69ca3e904d3638674610bca2d0">mce::core::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_1core_1_1_thread_func_html_ad4a74434c6c2605fdf114f464a78c915"><div class="ttname"><a href="structmce_1_1core_1_1_thread_func.html#ad4a74434c6c2605fdf114f464a78c915">mce::core::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_1core_1_1_thread_functor_html"><div class="ttname"><a href="structmce_1_1core_1_1_thread_functor.html">mce::core::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_1core_1_1_thread_functor_html_a2575e35029b664ce87f10d963ce8ef9b"><div class="ttname"><a href="structmce_1_1core_1_1_thread_functor.html#a2575e35029b664ce87f10d963ce8ef9b">mce::core::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_1core_1_1_thread_functor_html_a47879bc7e45142102b9b56fb28329285"><div class="ttname"><a href="structmce_1_1core_1_1_thread_functor.html#a47879bc7e45142102b9b56fb28329285">mce::core::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_1core_1_1_thread_functor_html_ac438bf9ca5587f9c7e3f9a26b9402870"><div class="ttname"><a href="structmce_1_1core_1_1_thread_functor.html#ac438bf9ca5587f9c7e3f9a26b9402870">mce::core::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_1core_1_1_thread_member_functor_html"><div class="ttname"><a href="structmce_1_1core_1_1_thread_member_functor.html">mce::core::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_1core_1_1_thread_member_functor_html_a23280343a74051bf5116220c4e4c4fd0"><div class="ttname"><a href="structmce_1_1core_1_1_thread_member_functor.html#a23280343a74051bf5116220c4e4c4fd0">mce::core::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_1core_1_1_thread_member_functor_html_aad1992c0dcf605480866198d8657836f"><div class="ttname"><a href="structmce_1_1core_1_1_thread_member_functor.html#aad1992c0dcf605480866198d8657836f">mce::core::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_1core_1_1_thread_member_functor_html_abae58b0253a11258d9d22a1aac146374"><div class="ttname"><a href="structmce_1_1core_1_1_thread_member_functor.html#abae58b0253a11258d9d22a1aac146374">mce::core::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_1core_1_1_thread_member_functor_html_add49c0a94c05ef8c298bbb320dce86c6"><div class="ttname"><a href="structmce_1_1core_1_1_thread_member_functor.html#add49c0a94c05ef8c298bbb320dce86c6">mce::core::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_1core_1_1_thread_member_functor_with_args_html"><div class="ttname"><a href="structmce_1_1core_1_1_thread_member_functor_with_args.html">mce::core::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_1core_1_1_thread_member_functor_with_args_html_a4521a2cbc1f0adfc8f3a939400f4bef5"><div class="ttname"><a href="structmce_1_1core_1_1_thread_member_functor_with_args.html#a4521a2cbc1f0adfc8f3a939400f4bef5">mce::core::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 class="ttc" id="astructmce_1_1core_1_1_thread_member_functor_with_args_html_a9eae16a5b401d1c9a46b507e123d9a86"><div class="ttname"><a href="structmce_1_1core_1_1_thread_member_functor_with_args.html#a9eae16a5b401d1c9a46b507e123d9a86">mce::core::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_1core_1_1_thread_member_functor_with_args_html_ab4720611c54e78d58aebc15b15f10079"><div class="ttname"><a href="structmce_1_1core_1_1_thread_member_functor_with_args.html#ab4720611c54e78d58aebc15b15f10079">mce::core::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_1core_1_1_thread_member_functor_with_args_html_ad5cbd950f5ff86ed09c904f481fc5ae2"><div class="ttname"><a href="structmce_1_1core_1_1_thread_member_functor_with_args.html#ad5cbd950f5ff86ed09c904f481fc5ae2">mce::core::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_1core_1_1_thread_member_functor_with_args_html_afbd27fe66db61ffedc2bddde2787360b"><div class="ttname"><a href="structmce_1_1core_1_1_thread_member_functor_with_args.html#afbd27fe66db61ffedc2bddde2787360b">mce::core::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><!-- 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>Minecraft-Community-Edition</b></li><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>
|