<tr id="row_0_3_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_0_3_" class="arrow" onclick="toggleFolder('0_3_')">▼</span><span class="icona"><span class="icon">N</span></span><b>Registry</b></td><td class="desc"></td></tr>
<tr id="row_0_3_0_"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="da/d35/class_m_utils_1_1_registry_1_1_registry_key.html" target="_self">RegistryKey</a></td><td class="desc"></td></tr>
<tr id="row_0_4_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="d5/dfe/class_m_utils_1_1_i_p_c_channel.html" target="_self">IPCChannel</a></td><td class="desc"></td></tr>
-<tr id="row_0_5_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="dc/dd3/class_m_utils_1_1_job_object.html" target="_self">JobObject</a></td><td class="desc"></td></tr>
+<tr id="row_0_5_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="dc/dd3/class_m_utils_1_1_job_object.html" target="_self">JobObject</a></td><td class="desc">This class represents a job object </td></tr>
<tr id="row_0_6_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="d2/d52/class_m_utils_1_1_taskbar7.html" target="_self">Taskbar7</a></td><td class="desc"></td></tr>
<tr id="row_0_7_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="d0/d8a/class_m_utils_1_1_update_checker.html" target="_self">UpdateChecker</a></td><td class="desc"></td></tr>
<tr id="row_0_8_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="d1/d0d/class_m_utils_1_1_update_checker_info.html" target="_self">UpdateCheckerInfo</a></td><td class="desc"></td></tr>
<p>This is the complete list of members for <a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html">MUtils::JobObject</a>, including all inherited members.</p>
<table class="directory">
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>addProcessToJob</b>(const QProcess *const process) (defined in <a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html">MUtils::JobObject</a>)</td><td class="entry"><a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html">MUtils::JobObject</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>isObjectCreated</b>(void) (defined in <a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html">MUtils::JobObject</a>)</td><td class="entry"><a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html">MUtils::JobObject</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>JobObject</b>(void) (defined in <a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html">MUtils::JobObject</a>)</td><td class="entry"><a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html">MUtils::JobObject</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>terminateJob</b>(const quint32 &exitCode) (defined in <a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html">MUtils::JobObject</a>)</td><td class="entry"><a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html">MUtils::JobObject</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~JobObject</b>(void) (defined in <a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html">MUtils::JobObject</a>)</td><td class="entry"><a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html">MUtils::JobObject</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html#a1ea821a376842494b0d0ef0b17bfaecc">addProcessToJob</a>(const QProcess *const process)</td><td class="entry"><a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html">MUtils::JobObject</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html#a1d86b1a284da53bbcf92713d494c2304">isObjectCreated</a>(void)</td><td class="entry"><a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html">MUtils::JobObject</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html#a4ec8b0013bca35149def434b738d80fb">JobObject</a>(void)</td><td class="entry"><a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html">MUtils::JobObject</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html#abe785eacf0468533ca90c6f77d734cda">terminateJob</a>(const quint32 &exitCode)</td><td class="entry"><a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html">MUtils::JobObject</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html#a0e2d6461729d16b615548e7b1594c893">~JobObject</a>(void)</td><td class="entry"><a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html">MUtils::JobObject</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
<div class="title">Startup.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// MuldeR's Utilities for Qt</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// Copyright (C) 2004-2017 LoRd_MuldeR <MuldeR2@GMX.de></span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// This library is free software; you can redistribute it and/or</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">// modify it under the terms of the GNU Lesser General Public</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// License as published by the Free Software Foundation; either</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// version 2.1 of the License, or (at your option) any later version.</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">//</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// This library is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// Lesser General Public License for more details.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">//</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// You should have received a copy of the GNU Lesser General Public</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// License along with this library; if not, write to the Free Software</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">//</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// http://www.gnu.org/licenses/lgpl-2.1.txt</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment">//MUtils</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <<a class="code" href="../../d5/d3b/_global_8h.html">MUtils/Global.h</a>></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment">//Forward Declarations</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">class </span>QApplication;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">namespace </span><a class="code" href="../../d3/da6/namespace_m_utils.html">MUtils</a></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> {</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="keyword">namespace </span>Startup</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  {</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="comment">//Main Function</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keyword">typedef</span> int (main_function_t)(<span class="keywordtype">int</span> &argc, <span class="keywordtype">char</span> **argv);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="comment">//Startup Application</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  MUTILS_API <span class="keywordtype">int</span> startup(<span class="keywordtype">int</span> &argc, <span class="keywordtype">char</span> **argv, main_function_t *<span class="keyword">const</span> entry_point, <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> appName, <span class="keyword">const</span> <span class="keywordtype">bool</span> &debugConsole);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="comment">//Initialize Qt</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  MUTILS_API QApplication *create_qt(<span class="keywordtype">int</span> &argc, <span class="keywordtype">char</span> **argv, <span class="keyword">const</span> QString &appName);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  }</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> }</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div><div class="ttc" id="_global_8h_html"><div class="ttname"><a href="../../d5/d3b/_global_8h.html">Global.h</a></div><div class="ttdoc">This file contains miscellaneous functions that are generally useful for Qt-based applications...</div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// MuldeR's Utilities for Qt</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// Copyright (C) 2004-2017 LoRd_MuldeR <MuldeR2@GMX.de></span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// This library is free software; you can redistribute it and/or</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">// modify it under the terms of the GNU Lesser General Public</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// License as published by the Free Software Foundation; either</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// version 2.1 of the License, or (at your option) any later version.</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">//</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// This library is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// Lesser General Public License for more details.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">//</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// You should have received a copy of the GNU Lesser General Public</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// License along with this library; if not, write to the Free Software</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">//</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// http://www.gnu.org/licenses/lgpl-2.1.txt</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment">//MUtils</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <<a class="code" href="../../d5/d3b/_global_8h.html">MUtils/Global.h</a>></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment">//Forward Declarations</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">class </span>QApplication;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">namespace </span><a class="code" href="../../d3/da6/namespace_m_utils.html">MUtils</a></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> {</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="keyword">namespace </span>Startup</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  {</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="comment">//Main Function</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keyword">typedef</span> int (main_function_t)(<span class="keywordtype">int</span> &argc, <span class="keywordtype">char</span> **argv);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="comment">//Startup Application</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  MUTILS_API <span class="keywordtype">int</span> startup(<span class="keywordtype">int</span> &argc, <span class="keywordtype">char</span> **argv, main_function_t *<span class="keyword">const</span> entry_point, <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> appName, <span class="keyword">const</span> <span class="keywordtype">bool</span> &debugConsole);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="comment">//Initialize Qt</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  MUTILS_API QApplication *create_qt(<span class="keywordtype">int</span> &argc, <span class="keywordtype">char</span> **argv, <span class="keyword">const</span> QString &appName, <span class="keyword">const</span> QString &appAuthor = QLatin1String(<span class="stringliteral">"LoRd_MuldeR"</span>), <span class="keyword">const</span> QString &appDomain = QLatin1String(<span class="stringliteral">"muldersoft.com"</span>));</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  }</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> }</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div><div class="ttc" id="_global_8h_html"><div class="ttname"><a href="../../d5/d3b/_global_8h.html">Global.h</a></div><div class="ttdoc">This file contains miscellaneous functions that are generally useful for Qt-based applications...</div></div>
<div class="ttc" id="namespace_m_utils_html"><div class="ttname"><a href="../../d3/da6/namespace_m_utils.html">MUtils</a></div><div class="ttdoc">Global MUtils namespace. </div><div class="ttdef"><b>Definition:</b> CPUFeatures.h:37</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/dfe/class_m_utils_1_1_i_p_c_channel.html">IPCChannel</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html">JobObject</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">This class represents a job object. <a href="../../dc/dd3/class_m_utils_1_1_job_object.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d2/d52/class_m_utils_1_1_taskbar7.html">Taskbar7</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.12"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>MuldeR's Utilities for Qt: include/MUtils/JobObject.h File Reference</title>
+<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="../../jquery.js"></script>
+<script type="text/javascript" src="../../dynsections.js"></script>
+<link href="../../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 style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">MuldeR's Utilities for Qt
+ </div>
+ <div id="projectbrief">MUtilities</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.12 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
+</script>
+<script type="text/javascript" src="../../menudata.js"></script>
+<script type="text/javascript" src="../../menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('../../',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="../../dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="../../dir_b076b53667bc06ebb413a190e197fc7b.html">MUtils</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> |
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">JobObject.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This file contains function for creating and managing job objects.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include <<a class="el" href="../../d5/d3b/_global_8h_source.html">MUtils/Global.h</a>></code><br />
+</div>
+<p><a href="../../d4/d85/_job_object_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html">MUtils::JobObject</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">This class represents a job object. <a href="../../dc/dd3/class_m_utils_1_1_job_object.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:d3/da6/namespace_m_utils"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html">MUtils</a></td></tr>
+<tr class="memdesc:d3/da6/namespace_m_utils"><td class="mdescLeft"> </td><td class="mdescRight">Global <a class="el" href="../../d3/da6/namespace_m_utils.html" title="Global MUtils namespace. ">MUtils</a> namespace. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>This file contains function for creating and managing job objects. </p>
+<p>Each instance of <a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html" title="This class represents a job object. ">MUtils::JobObject</a> represents a job object. Call <a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html#a1ea821a376842494b0d0ef0b17bfaecc" title="Add a process to the job object. ">MUtils::JobObject::addProcessToJob()</a> to add another sub-process to the job object. Call <a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html#abe785eacf0468533ca90c6f77d734cda" title="Terminate all sub-processes of the job object. ">MUtils::JobObject::terminateJob()</a> to terminate <em>all</em> sub-processes that currently belong to the job object at once.</p>
+<p>Note that all sub-processes that belong to the job object will be terminated when <em>this</em> process exits, gracefully or due to a crash. All sub-process belonging to a job object also are terminated when the corresponding <a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html" title="This class represents a job object. ">MUtils::JobObject</a> instance is destroyed. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="../../doxygen.png" alt="doxygen"/>
+</a> 1.8.12
+</small></address>
+</body>
+</html>
<div class="title">JobObject.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// MuldeR's Utilities for Qt</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// Copyright (C) 2004-2017 LoRd_MuldeR <MuldeR2@GMX.de></span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// This library is free software; you can redistribute it and/or</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">// modify it under the terms of the GNU Lesser General Public</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// License as published by the Free Software Foundation; either</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// version 2.1 of the License, or (at your option) any later version.</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">//</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// This library is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// Lesser General Public License for more details.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">//</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// You should have received a copy of the GNU Lesser General Public</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// License along with this library; if not, write to the Free Software</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">//</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// http://www.gnu.org/licenses/lgpl-2.1.txt</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <<a class="code" href="../../d5/d3b/_global_8h.html">MUtils/Global.h</a>></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">class </span>QProcess;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">namespace </span><a class="code" href="../../d3/da6/namespace_m_utils.html">MUtils</a></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> {</div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="../../dc/dd3/class_m_utils_1_1_job_object.html"> 30</a></span>  <span class="keyword">class </span>MUTILS_API <a class="code" href="../../dc/dd3/class_m_utils_1_1_job_object.html">JobObject</a></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  {</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <a class="code" href="../../dc/dd3/class_m_utils_1_1_job_object.html">JobObject</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  ~<a class="code" href="../../dc/dd3/class_m_utils_1_1_job_object.html">JobObject</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keywordtype">bool</span> isObjectCreated(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keywordtype">bool</span> addProcessToJob(<span class="keyword">const</span> QProcess *<span class="keyword">const</span> process);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keywordtype">bool</span> terminateJob(<span class="keyword">const</span> quint32 &exitCode);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keyword">private</span>:</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  uintptr_t m_jobPtr;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="../../d5/d3b/_global_8h.html#a8e7b4857b78f9749233e5abc96534ca8">MUTILS_NO_COPY</a>(<a class="code" href="../../dc/dd3/class_m_utils_1_1_job_object.html">JobObject</a>)</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  };</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> }</div><div class="ttc" id="_global_8h_html"><div class="ttname"><a href="../../d5/d3b/_global_8h.html">Global.h</a></div><div class="ttdoc">This file contains miscellaneous functions that are generally useful for Qt-based applications...</div></div>
-<div class="ttc" id="class_m_utils_1_1_job_object_html"><div class="ttname"><a href="../../dc/dd3/class_m_utils_1_1_job_object.html">MUtils::JobObject</a></div><div class="ttdef"><b>Definition:</b> JobObject.h:30</div></div>
+<a href="../../d4/d85/_job_object_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// MuldeR's Utilities for Qt</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// Copyright (C) 2004-2017 LoRd_MuldeR <MuldeR2@GMX.de></span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// This library is free software; you can redistribute it and/or</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">// modify it under the terms of the GNU Lesser General Public</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// License as published by the Free Software Foundation; either</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// version 2.1 of the License, or (at your option) any later version.</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">//</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// This library is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// Lesser General Public License for more details.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">//</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// You should have received a copy of the GNU Lesser General Public</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// License along with this library; if not, write to the Free Software</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">//</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// http://www.gnu.org/licenses/lgpl-2.1.txt</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <<a class="code" href="../../d5/d3b/_global_8h.html">MUtils/Global.h</a>></span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">class </span>QProcess;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">namespace </span><a class="code" href="../../d3/da6/namespace_m_utils.html">MUtils</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> {</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="../../dc/dd3/class_m_utils_1_1_job_object.html"> 46</a></span>  <span class="keyword">class </span>MUTILS_API <a class="code" href="../../dc/dd3/class_m_utils_1_1_job_object.html">JobObject</a></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="../../dc/dd3/class_m_utils_1_1_job_object.html">JobObject</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  </div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  ~<a class="code" href="../../dc/dd3/class_m_utils_1_1_job_object.html">JobObject</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keywordtype">bool</span> isObjectCreated(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  </div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordtype">bool</span> addProcessToJob(<span class="keyword">const</span> QProcess *<span class="keyword">const</span> process);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  </div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordtype">bool</span> terminateJob(<span class="keyword">const</span> quint32 &exitCode);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keyword">private</span>:</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  uintptr_t m_jobPtr;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <a class="code" href="../../d5/d3b/_global_8h.html#a8e7b4857b78f9749233e5abc96534ca8">MUTILS_NO_COPY</a>(<a class="code" href="../../dc/dd3/class_m_utils_1_1_job_object.html">JobObject</a>)</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  };</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> }</div><div class="ttc" id="_global_8h_html"><div class="ttname"><a href="../../d5/d3b/_global_8h.html">Global.h</a></div><div class="ttdoc">This file contains miscellaneous functions that are generally useful for Qt-based applications...</div></div>
+<div class="ttc" id="class_m_utils_1_1_job_object_html"><div class="ttname"><a href="../../dc/dd3/class_m_utils_1_1_job_object.html">MUtils::JobObject</a></div><div class="ttdoc">This class represents a job object. </div><div class="ttdef"><b>Definition:</b> JobObject.h:46</div></div>
<div class="ttc" id="namespace_m_utils_html"><div class="ttname"><a href="../../d3/da6/namespace_m_utils.html">MUtils</a></div><div class="ttdoc">Global MUtils namespace. </div><div class="ttdef"><b>Definition:</b> CPUFeatures.h:37</div></div>
<div class="ttc" id="_global_8h_html_a8e7b4857b78f9749233e5abc96534ca8"><div class="ttname"><a href="../../d5/d3b/_global_8h.html#a8e7b4857b78f9749233e5abc96534ca8">MUTILS_NO_COPY</a></div><div class="ttdeci">#define MUTILS_NO_COPY(CLASS)</div><div class="ttdoc">Disables copy constructor and assignment operator in the specified class. This macro should be used i...</div><div class="ttdef"><b>Definition:</b> Global.h:362</div></div>
</div><!-- fragment --></div><!-- contents -->
<div class="title">MUtils::JobObject Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>This class represents a job object.
+ <a href="../../dc/dd3/class_m_utils_1_1_job_object.html#details">More...</a></p>
+
+<p><code>#include <<a class="el" href="../../d4/d85/_job_object_8h_source.html">JobObject.h</a>></code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
-<tr class="memitem:a1d86b1a284da53bbcf92713d494c2304"><td class="memItemLeft" align="right" valign="top"><a id="a1d86b1a284da53bbcf92713d494c2304"></a>
-bool </td><td class="memItemRight" valign="bottom"><b>isObjectCreated</b> (void)</td></tr>
+<tr class="memitem:a4ec8b0013bca35149def434b738d80fb"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html#a4ec8b0013bca35149def434b738d80fb">JobObject</a> (void)</td></tr>
+<tr class="memdesc:a4ec8b0013bca35149def434b738d80fb"><td class="mdescLeft"> </td><td class="mdescRight">Create a new <a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html" title="This class represents a job object. ">JobObject</a> instance. <a href="#a4ec8b0013bca35149def434b738d80fb">More...</a><br /></td></tr>
+<tr class="separator:a4ec8b0013bca35149def434b738d80fb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a0e2d6461729d16b615548e7b1594c893"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html#a0e2d6461729d16b615548e7b1594c893">~JobObject</a> (void)</td></tr>
+<tr class="memdesc:a0e2d6461729d16b615548e7b1594c893"><td class="mdescLeft"> </td><td class="mdescRight">Destroys the <a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html" title="This class represents a job object. ">JobObject</a> instance. <a href="#a0e2d6461729d16b615548e7b1594c893">More...</a><br /></td></tr>
+<tr class="separator:a0e2d6461729d16b615548e7b1594c893"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a1d86b1a284da53bbcf92713d494c2304"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html#a1d86b1a284da53bbcf92713d494c2304">isObjectCreated</a> (void)</td></tr>
+<tr class="memdesc:a1d86b1a284da53bbcf92713d494c2304"><td class="mdescLeft"> </td><td class="mdescRight">Test whether job object was created successfully. <a href="#a1d86b1a284da53bbcf92713d494c2304">More...</a><br /></td></tr>
<tr class="separator:a1d86b1a284da53bbcf92713d494c2304"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a1ea821a376842494b0d0ef0b17bfaecc"><td class="memItemLeft" align="right" valign="top"><a id="a1ea821a376842494b0d0ef0b17bfaecc"></a>
-bool </td><td class="memItemRight" valign="bottom"><b>addProcessToJob</b> (const QProcess *const process)</td></tr>
+<tr class="memitem:a1ea821a376842494b0d0ef0b17bfaecc"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html#a1ea821a376842494b0d0ef0b17bfaecc">addProcessToJob</a> (const QProcess *const process)</td></tr>
+<tr class="memdesc:a1ea821a376842494b0d0ef0b17bfaecc"><td class="mdescLeft"> </td><td class="mdescRight">Add a process to the job object. <a href="#a1ea821a376842494b0d0ef0b17bfaecc">More...</a><br /></td></tr>
<tr class="separator:a1ea821a376842494b0d0ef0b17bfaecc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:abe785eacf0468533ca90c6f77d734cda"><td class="memItemLeft" align="right" valign="top"><a id="abe785eacf0468533ca90c6f77d734cda"></a>
-bool </td><td class="memItemRight" valign="bottom"><b>terminateJob</b> (const quint32 &exitCode)</td></tr>
+<tr class="memitem:abe785eacf0468533ca90c6f77d734cda"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html#abe785eacf0468533ca90c6f77d734cda">terminateJob</a> (const quint32 &exitCode)</td></tr>
+<tr class="memdesc:abe785eacf0468533ca90c6f77d734cda"><td class="mdescLeft"> </td><td class="mdescRight">Terminate all sub-processes of the job object. <a href="#abe785eacf0468533ca90c6f77d734cda">More...</a><br /></td></tr>
<tr class="separator:abe785eacf0468533ca90c6f77d734cda"><td class="memSeparator" colspan="2"> </td></tr>
</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>This class represents a job object. </p>
+<p>Call <a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html#a1ea821a376842494b0d0ef0b17bfaecc" title="Add a process to the job object. ">addProcessToJob()</a> to add another sub-process to this job object. Call <a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html#abe785eacf0468533ca90c6f77d734cda" title="Terminate all sub-processes of the job object. ">terminateJob()</a> to terminate all sub-processes that belong to this job object. Note that all sub-processes that belong to this job object will also be terminated when <em>this</em> process exits, gracefully or due to a crash.</p>
+<p>Also, when the <a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html" title="This class represents a job object. ">JobObject</a> instance is destroyed, all sub-process that belong to its corresponding job object and that are still running will be terminated! </p>
+</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
+<a id="a4ec8b0013bca35149def434b738d80fb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4ec8b0013bca35149def434b738d80fb">§ </a></span>JobObject()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">MUtils::JobObject::JobObject </td>
+ <td>(</td>
+ <td class="paramtype">void </td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Create a new <a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html" title="This class represents a job object. ">JobObject</a> instance. </p>
+<p>Creating a new <a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html" title="This class represents a job object. ">JobObject</a> instance automatically creates a new job object on the system-level. Check <a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html#a1d86b1a284da53bbcf92713d494c2304" title="Test whether job object was created successfully. ">isObjectCreated()</a> to test whether the job object was successfully created or not. </p>
+
+</div>
+</div>
+<a id="a0e2d6461729d16b615548e7b1594c893"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0e2d6461729d16b615548e7b1594c893">§ </a></span>~JobObject()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">MUtils::JobObject::~JobObject </td>
+ <td>(</td>
+ <td class="paramtype">void </td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Destroys the <a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html" title="This class represents a job object. ">JobObject</a> instance. </p>
+<p>If the job object still has any running sub-processes left when the corresponding <a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html" title="This class represents a job object. ">JobObject</a> instance is destroyed, these sub-process are terminated! </p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="a1ea821a376842494b0d0ef0b17bfaecc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1ea821a376842494b0d0ef0b17bfaecc">§ </a></span>addProcessToJob()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool MUtils::JobObject::addProcessToJob </td>
+ <td>(</td>
+ <td class="paramtype">const QProcess *const </td>
+ <td class="paramname"><em>process</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Add a process to the job object. </p>
+<p>This function adds a another sub-process to the job object that is represented by this <a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html" title="This class represents a job object. ">JobObject</a> instance. Job object limitations apply to the sub-process a</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">process</td><td>A read-only pointer to the <a href="http://doc.qt.io/qt-4.8/qprocess.html">QProcess</a> object that represents the sub-process to be added to the job object. The sub-process must be in the "running" state; otherwise the function will fail.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The function returns <code>true</code>, if and only if the process was successfully added to the job object; otherwise it returns <code>false</code>. </dd></dl>
+
+</div>
+</div>
+<a id="a1d86b1a284da53bbcf92713d494c2304"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1d86b1a284da53bbcf92713d494c2304">§ </a></span>isObjectCreated()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool MUtils::JobObject::isObjectCreated </td>
+ <td>(</td>
+ <td class="paramtype">void </td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Test whether job object was created successfully. </p>
+<p>The job object will be created automatically when a new <a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html" title="This class represents a job object. ">JobObject</a> instance is created. However, the constructor has <b>no</b> to tell whether the job object was created successfully on the system-level. Call this function to test whether the job object has been created.</p>
+<dl class="section return"><dt>Returns</dt><dd>The function returns <code>true</code>, if and only if a job object was successfully created; otherwise it returns <code>false</code>. </dd></dl>
+
+</div>
+</div>
+<a id="abe785eacf0468533ca90c6f77d734cda"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abe785eacf0468533ca90c6f77d734cda">§ </a></span>terminateJob()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool MUtils::JobObject::terminateJob </td>
+ <td>(</td>
+ <td class="paramtype">const quint32 & </td>
+ <td class="paramname"><em>exitCode</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Terminate all sub-processes of the job object. </p>
+<p>This function immediately terminates <em>all</em> running sub-processes that belong to the job object represented by this <a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html" title="This class represents a job object. ">JobObject</a> instance at once.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">exitCode</td><td>The exit code to be set for the sub-process when they are terminated.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The function returns <code>true</code>, if the sub-processes were destroyed successfully, even if there were no running sub-process left; otherwise it returns <code>false</code>. </dd></dl>
+
+</div>
+</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/MUtils/<a class="el" href="../../d4/d85/_job_object_8h_source.html">JobObject.h</a></li>
</ul>
<tr class="memitem:d2/dad/_hash_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="d2/dad/_hash_8h.html">Hash.h</a> <a href="d2/dad/_hash_8h_source.html">[code]</a></td></tr>
<tr class="memdesc:d2/dad/_hash_8h"><td class="mdescLeft"> </td><td class="mdescRight">This file contains function for cryptographic hash computation. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:d4/d85/_job_object_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="d4/d85/_job_object_8h.html">JobObject.h</a> <a href="d4/d85/_job_object_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:d4/d85/_job_object_8h"><td class="mdescLeft"> </td><td class="mdescRight">This file contains function for creating and managing job objects. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
<tr id="row_0_0_4_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="da/d5d/_g_u_i_8h_source.html"><span class="icondoc"></span></a><b>GUI.h</b></td><td class="desc"></td></tr>
<tr id="row_0_0_5_"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="d2/dad/_hash_8h_source.html"><span class="icondoc"></span></a><a class="el" href="d2/dad/_hash_8h.html" target="_self">Hash.h</a></td><td class="desc">This file contains function for cryptographic hash computation </td></tr>
<tr id="row_0_0_6_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="d1/d93/_i_p_c_channel_8h_source.html"><span class="icondoc"></span></a><b>IPCChannel.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_7_"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="d4/d85/_job_object_8h_source.html"><span class="icondoc"></span></a><b>JobObject.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_7_"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="d4/d85/_job_object_8h_source.html"><span class="icondoc"></span></a><a class="el" href="d4/d85/_job_object_8h.html" target="_self">JobObject.h</a></td><td class="desc">This file contains function for creating and managing job objects </td></tr>
<tr id="row_0_0_8_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="d3/dc1/_o_s_support_8h_source.html"><span class="icondoc"></span></a><b>OSSupport.h</b></td><td class="desc"></td></tr>
<tr id="row_0_0_9_"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="d3/d5c/_registry_8h_source.html"><span class="icondoc"></span></a><b>Registry.h</b></td><td class="desc"></td></tr>
<tr id="row_0_0_10_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="d5/db0/_sound_8h_source.html"><span class="icondoc"></span></a><b>Sound.h</b></td><td class="desc"></td></tr>
<div class="contents">
<div class="textblock">Here is a list of all documented class members with links to the class documentation for each member:</div><ul>
+<li>addProcessToJob()
+: <a class="el" href="dc/dd3/class_m_utils_1_1_job_object.html#a1ea821a376842494b0d0ef0b17bfaecc">MUtils::JobObject</a>
+</li>
<li>brand
: <a class="el" href="dd/de2/struct_m_utils_1_1_c_p_u_fetaures_1_1__cpu__info__t.html#a2986daa8c1b524a7f952eacb8d516696">MUtils::CPUFetaures::_cpu_info_t</a>
</li>
<li>idstr
: <a class="el" href="dd/de2/struct_m_utils_1_1_c_p_u_fetaures_1_1__cpu__info__t.html#a58ab7955a771f842c3f16abd8cebb931">MUtils::CPUFetaures::_cpu_info_t</a>
</li>
+<li>isObjectCreated()
+: <a class="el" href="dc/dd3/class_m_utils_1_1_job_object.html#a1d86b1a284da53bbcf92713d494c2304">MUtils::JobObject</a>
+</li>
+<li>JobObject()
+: <a class="el" href="dc/dd3/class_m_utils_1_1_job_object.html#a4ec8b0013bca35149def434b738d80fb">MUtils::JobObject</a>
+</li>
<li>model
: <a class="el" href="dd/de2/struct_m_utils_1_1_c_p_u_fetaures_1_1__cpu__info__t.html#a7d0a012412dc4b04f2b5b37e83f5874a">MUtils::CPUFetaures::_cpu_info_t</a>
</li>
<li>stepping
: <a class="el" href="dd/de2/struct_m_utils_1_1_c_p_u_fetaures_1_1__cpu__info__t.html#a1cfc86c6c61d35c7bd6f2a9cbecb99e4">MUtils::CPUFetaures::_cpu_info_t</a>
</li>
+<li>terminateJob()
+: <a class="el" href="dc/dd3/class_m_utils_1_1_job_object.html#abe785eacf0468533ca90c6f77d734cda">MUtils::JobObject</a>
+</li>
<li>update()
: <a class="el" href="da/db0/class_m_utils_1_1_hash_1_1_hash.html#a5c36bd2ea671928f9f5bd897dcfbef15">MUtils::Hash::Hash</a>
</li>
<li>x64
: <a class="el" href="dd/de2/struct_m_utils_1_1_c_p_u_fetaures_1_1__cpu__info__t.html#aebb4aa6da8a1c381715a792f8904222f">MUtils::CPUFetaures::_cpu_info_t</a>
</li>
+<li>~JobObject()
+: <a class="el" href="dc/dd3/class_m_utils_1_1_job_object.html#a0e2d6461729d16b615548e7b1594c893">MUtils::JobObject</a>
+</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<div class="contents">
 <ul>
+<li>addProcessToJob()
+: <a class="el" href="dc/dd3/class_m_utils_1_1_job_object.html#a1ea821a376842494b0d0ef0b17bfaecc">MUtils::JobObject</a>
+</li>
<li>digest()
: <a class="el" href="da/db0/class_m_utils_1_1_hash_1_1_hash.html#a1d70f2b647935868a178920196ec0ac1">MUtils::Hash::Hash</a>
</li>
+<li>isObjectCreated()
+: <a class="el" href="dc/dd3/class_m_utils_1_1_job_object.html#a1d86b1a284da53bbcf92713d494c2304">MUtils::JobObject</a>
+</li>
+<li>JobObject()
+: <a class="el" href="dc/dd3/class_m_utils_1_1_job_object.html#a4ec8b0013bca35149def434b738d80fb">MUtils::JobObject</a>
+</li>
+<li>terminateJob()
+: <a class="el" href="dc/dd3/class_m_utils_1_1_job_object.html#abe785eacf0468533ca90c6f77d734cda">MUtils::JobObject</a>
+</li>
<li>update()
: <a class="el" href="da/db0/class_m_utils_1_1_hash_1_1_hash.html#a5c36bd2ea671928f9f5bd897dcfbef15">MUtils::Hash::Hash</a>
</li>
+<li>~JobObject()
+: <a class="el" href="dc/dd3/class_m_utils_1_1_job_object.html#a0e2d6461729d16b615548e7b1594c893">MUtils::JobObject</a>
+</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="dc/d55/struct_m_utils_1_1_o_s_1_1_version_1_1__os__version__t.html" target="_self">MUtils::OS::Version::_os_version_t</a></td><td class="desc"></td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="da/db0/class_m_utils_1_1_hash_1_1_hash.html" target="_self">MUtils::Hash::Hash</a></td><td class="desc">This abstract class specifies the generic interface for all support hash algorithms </td></tr>
<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="d5/dfe/class_m_utils_1_1_i_p_c_channel.html" target="_self">MUtils::IPCChannel</a></td><td class="desc"></td></tr>
-<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="dc/dd3/class_m_utils_1_1_job_object.html" target="_self">MUtils::JobObject</a></td><td class="desc"></td></tr>
+<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="dc/dd3/class_m_utils_1_1_job_object.html" target="_self">MUtils::JobObject</a></td><td class="desc">This class represents a job object </td></tr>
<tr id="row_5_"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_5_" class="arrow" onclick="toggleFolder('5_')">▼</span><span class="icona"><span class="icon">C</span></span><b>QThread</b></td><td class="desc"></td></tr>
<tr id="row_5_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="d0/d8a/class_m_utils_1_1_update_checker.html" target="_self">MUtils::UpdateChecker</a></td><td class="desc"></td></tr>
<tr id="row_6_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="da/d35/class_m_utils_1_1_registry_1_1_registry_key.html" target="_self">MUtils::Registry::RegistryKey</a></td><td class="desc"></td></tr>
<li><b><a class="el" href="d5/d3b/_global_8h.html" title="This file contains miscellaneous functions that are generally useful for Qt-based applications...">Global.h</a></b> – miscellaneous useful functions</li>
<li><b><a class="el" href="d2/db5/_c_p_u_features_8h.html" title="This file contains function for detecting information about the CPU. ">CPUFeatures.h</a></b> – functions for detection information about the CPU</li>
<li><b><a class="el" href="d2/dad/_hash_8h.html" title="This file contains function for cryptographic hash computation. ">Hash.h</a></b> – functions for cryptographic hash computation</li>
+<li><b><a class="el" href="d4/d85/_job_object_8h.html" title="This file contains function for creating and managing job objects. ">JobObject.h</a></b> – functions for creating and managing job objects</li>
</ul>
<h1>Example</h1>
<p>Here is a minimal example on how to use the <em>MUtilities</em> library in your project: </p><pre class="fragment">//MUtils
var searchData=
[
+ ['addprocesstojob',['addProcessToJob',['../dc/dd3/class_m_utils_1_1_job_object.html#a1ea821a376842494b0d0ef0b17bfaecc',1,'MUtils::JobObject']]],
['available_5fcodepages',['available_codepages',['../d3/da6/namespace_m_utils.html#a2275e64c3c74dea855c39b66be67f705',1,'MUtils']]]
];
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.12"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_13.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+var searchData=
+[
+ ['_7ejobobject',['~JobObject',['../dc/dd3/class_m_utils_1_1_job_object.html#a0e2d6461729d16b615548e7b1594c893',1,'MUtils::JobObject']]]
+];
[
['idstr',['idstr',['../dd/de2/struct_m_utils_1_1_c_p_u_fetaures_1_1__cpu__info__t.html#a58ab7955a771f842c3f16abd8cebb931',1,'MUtils::CPUFetaures::_cpu_info_t']]],
['init_5fprocess',['init_process',['../d3/da6/namespace_m_utils.html#a0ecb5d72f33a7b6feadd7deb8ed46cc3',1,'MUtils']]],
- ['ipcchannel',['IPCChannel',['../d5/dfe/class_m_utils_1_1_i_p_c_channel.html',1,'MUtils']]]
+ ['ipcchannel',['IPCChannel',['../d5/dfe/class_m_utils_1_1_i_p_c_channel.html',1,'MUtils']]],
+ ['isobjectcreated',['isObjectCreated',['../dc/dd3/class_m_utils_1_1_job_object.html#a1d86b1a284da53bbcf92713d494c2304',1,'MUtils::JobObject']]]
];
var searchData=
[
- ['jobobject',['JobObject',['../dc/dd3/class_m_utils_1_1_job_object.html',1,'MUtils']]]
+ ['jobobject',['JobObject',['../dc/dd3/class_m_utils_1_1_job_object.html',1,'MUtils']]],
+ ['jobobject',['JobObject',['../dc/dd3/class_m_utils_1_1_job_object.html#a4ec8b0013bca35149def434b738d80fb',1,'MUtils::JobObject']]],
+ ['jobobject_2eh',['JobObject.h',['../d4/d85/_job_object_8h.html',1,'']]]
];
[
['taskbar7',['Taskbar7',['../d2/d52/class_m_utils_1_1_taskbar7.html',1,'MUtils']]],
['temp_5ffolder',['temp_folder',['../d3/da6/namespace_m_utils.html#a3f198156e8be91f3e74dd9ed69ffaa34',1,'MUtils']]],
+ ['terminatejob',['terminateJob',['../dc/dd3/class_m_utils_1_1_job_object.html#abe785eacf0468533ca90c6f77d734cda',1,'MUtils::JobObject']]],
['trim_5fleft',['trim_left',['../d3/da6/namespace_m_utils.html#a20b8fc56856ee904caaded756399e705',1,'MUtils::trim_left(QString &str)'],['../d3/da6/namespace_m_utils.html#ae43bc17b6fa4ee2287099c4ae095483b',1,'MUtils::trim_left(const QString &str)']]],
['trim_5fright',['trim_right',['../d3/da6/namespace_m_utils.html#a6118cf23d2b771fae1ad159c7ea6686a',1,'MUtils::trim_right(QString &str)'],['../d3/da6/namespace_m_utils.html#a3bcb0fce5181ded3c54456379147009d',1,'MUtils::trim_right(const QString &str)']]]
];
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.12"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+var searchData=
+[
+ ['jobobject_2eh',['JobObject.h',['../d4/d85/_job_object_8h.html',1,'']]]
+];
var searchData=
[
+ ['addprocesstojob',['addProcessToJob',['../dc/dd3/class_m_utils_1_1_job_object.html#a1ea821a376842494b0d0ef0b17bfaecc',1,'MUtils::JobObject']]],
['available_5fcodepages',['available_codepages',['../d3/da6/namespace_m_utils.html#a2275e64c3c74dea855c39b66be67f705',1,'MUtils']]]
];
var searchData=
[
- ['init_5fprocess',['init_process',['../d3/da6/namespace_m_utils.html#a0ecb5d72f33a7b6feadd7deb8ed46cc3',1,'MUtils']]]
+ ['init_5fprocess',['init_process',['../d3/da6/namespace_m_utils.html#a0ecb5d72f33a7b6feadd7deb8ed46cc3',1,'MUtils']]],
+ ['isobjectcreated',['isObjectCreated',['../dc/dd3/class_m_utils_1_1_job_object.html#a1d86b1a284da53bbcf92713d494c2304',1,'MUtils::JobObject']]]
];
var searchData=
[
- ['make_5ftemp_5ffile',['make_temp_file',['../d3/da6/namespace_m_utils.html#a29461116550863e8730f3f4ec479bbcb',1,'MUtils']]],
- ['make_5funique_5ffile',['make_unique_file',['../d3/da6/namespace_m_utils.html#af9afe3821ae9bef7bdf56a4183fdea0d',1,'MUtils']]]
+ ['jobobject',['JobObject',['../dc/dd3/class_m_utils_1_1_job_object.html#a4ec8b0013bca35149def434b738d80fb',1,'MUtils::JobObject']]]
];
var searchData=
[
- ['natural_5fstring_5fsort',['natural_string_sort',['../d3/da6/namespace_m_utils.html#a4d4c545ea06892f6487f15a48808564f',1,'MUtils']]],
- ['next_5frand_5fstr',['next_rand_str',['../d3/da6/namespace_m_utils.html#ac583617546d5ae100ce7436546d9662c',1,'MUtils']]],
- ['next_5frand_5fu32',['next_rand_u32',['../d3/da6/namespace_m_utils.html#a1c9832c1d645a2c90e9bd52d57d843b3',1,'MUtils']]],
- ['next_5frand_5fu64',['next_rand_u64',['../d3/da6/namespace_m_utils.html#ad7edd4aece64faf3aa16c9509243608c',1,'MUtils']]]
+ ['make_5ftemp_5ffile',['make_temp_file',['../d3/da6/namespace_m_utils.html#a29461116550863e8730f3f4ec479bbcb',1,'MUtils']]],
+ ['make_5funique_5ffile',['make_unique_file',['../d3/da6/namespace_m_utils.html#af9afe3821ae9bef7bdf56a4183fdea0d',1,'MUtils']]]
];
var searchData=
[
- ['parity',['parity',['../d3/da6/namespace_m_utils.html#aea4a212153b09b24b04f30ef5159f29b',1,'MUtils']]]
+ ['natural_5fstring_5fsort',['natural_string_sort',['../d3/da6/namespace_m_utils.html#a4d4c545ea06892f6487f15a48808564f',1,'MUtils']]],
+ ['next_5frand_5fstr',['next_rand_str',['../d3/da6/namespace_m_utils.html#ac583617546d5ae100ce7436546d9662c',1,'MUtils']]],
+ ['next_5frand_5fu32',['next_rand_u32',['../d3/da6/namespace_m_utils.html#a1c9832c1d645a2c90e9bd52d57d843b3',1,'MUtils']]],
+ ['next_5frand_5fu64',['next_rand_u64',['../d3/da6/namespace_m_utils.html#ad7edd4aece64faf3aa16c9509243608c',1,'MUtils']]]
];
var searchData=
[
- ['regexp_5fparse_5fuint32',['regexp_parse_uint32',['../d3/da6/namespace_m_utils.html#ad2a851b289ee66873d3a1ec86f5f34eb',1,'MUtils::regexp_parse_uint32(const QRegExp &regexp, quint32 &value)'],['../d3/da6/namespace_m_utils.html#a81704d66d34e37d3e0e159b5f436babf',1,'MUtils::regexp_parse_uint32(const QRegExp &regexp, quint32 *values, const size_t &count)']]],
- ['remove_5fdirectory',['remove_directory',['../d3/da6/namespace_m_utils.html#a4d451ddc82668d1298f2922f62474b5d',1,'MUtils']]],
- ['remove_5ffile',['remove_file',['../d3/da6/namespace_m_utils.html#a5a14e75627eebd09efc37898d74c5ac6',1,'MUtils']]]
+ ['parity',['parity',['../d3/da6/namespace_m_utils.html#aea4a212153b09b24b04f30ef5159f29b',1,'MUtils']]]
];
var searchData=
[
- ['temp_5ffolder',['temp_folder',['../d3/da6/namespace_m_utils.html#a3f198156e8be91f3e74dd9ed69ffaa34',1,'MUtils']]],
- ['trim_5fleft',['trim_left',['../d3/da6/namespace_m_utils.html#a20b8fc56856ee904caaded756399e705',1,'MUtils::trim_left(QString &str)'],['../d3/da6/namespace_m_utils.html#ae43bc17b6fa4ee2287099c4ae095483b',1,'MUtils::trim_left(const QString &str)']]],
- ['trim_5fright',['trim_right',['../d3/da6/namespace_m_utils.html#a6118cf23d2b771fae1ad159c7ea6686a',1,'MUtils::trim_right(QString &str)'],['../d3/da6/namespace_m_utils.html#a3bcb0fce5181ded3c54456379147009d',1,'MUtils::trim_right(const QString &str)']]]
+ ['regexp_5fparse_5fuint32',['regexp_parse_uint32',['../d3/da6/namespace_m_utils.html#ad2a851b289ee66873d3a1ec86f5f34eb',1,'MUtils::regexp_parse_uint32(const QRegExp &regexp, quint32 &value)'],['../d3/da6/namespace_m_utils.html#a81704d66d34e37d3e0e159b5f436babf',1,'MUtils::regexp_parse_uint32(const QRegExp &regexp, quint32 *values, const size_t &count)']]],
+ ['remove_5fdirectory',['remove_directory',['../d3/da6/namespace_m_utils.html#a4d451ddc82668d1298f2922f62474b5d',1,'MUtils']]],
+ ['remove_5ffile',['remove_file',['../d3/da6/namespace_m_utils.html#a5a14e75627eebd09efc37898d74c5ac6',1,'MUtils']]]
];
var searchData=
[
- ['update',['update',['../da/db0/class_m_utils_1_1_hash_1_1_hash.html#a5c36bd2ea671928f9f5bd897dcfbef15',1,'MUtils::Hash::Hash::update(const quint8 *const data, const quint32 len)'],['../da/db0/class_m_utils_1_1_hash_1_1_hash.html#a16bef08766de745913b3fd7c338bf5aa',1,'MUtils::Hash::Hash::update(const QByteArray &data)'],['../da/db0/class_m_utils_1_1_hash_1_1_hash.html#ace90c97585350dd246b6c655a3de571f',1,'MUtils::Hash::Hash::update(QFile &file)']]]
+ ['temp_5ffolder',['temp_folder',['../d3/da6/namespace_m_utils.html#a3f198156e8be91f3e74dd9ed69ffaa34',1,'MUtils']]],
+ ['terminatejob',['terminateJob',['../dc/dd3/class_m_utils_1_1_job_object.html#abe785eacf0468533ca90c6f77d734cda',1,'MUtils::JobObject']]],
+ ['trim_5fleft',['trim_left',['../d3/da6/namespace_m_utils.html#a20b8fc56856ee904caaded756399e705',1,'MUtils::trim_left(QString &str)'],['../d3/da6/namespace_m_utils.html#ae43bc17b6fa4ee2287099c4ae095483b',1,'MUtils::trim_left(const QString &str)']]],
+ ['trim_5fright',['trim_right',['../d3/da6/namespace_m_utils.html#a6118cf23d2b771fae1ad159c7ea6686a',1,'MUtils::trim_right(QString &str)'],['../d3/da6/namespace_m_utils.html#a3bcb0fce5181ded3c54456379147009d',1,'MUtils::trim_right(const QString &str)']]]
];
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.12"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+var searchData=
+[
+ ['update',['update',['../da/db0/class_m_utils_1_1_hash_1_1_hash.html#a5c36bd2ea671928f9f5bd897dcfbef15',1,'MUtils::Hash::Hash::update(const quint8 *const data, const quint32 len)'],['../da/db0/class_m_utils_1_1_hash_1_1_hash.html#a16bef08766de745913b3fd7c338bf5aa',1,'MUtils::Hash::Hash::update(const QByteArray &data)'],['../da/db0/class_m_utils_1_1_hash_1_1_hash.html#ace90c97585350dd246b6c655a3de571f',1,'MUtils::Hash::Hash::update(QFile &file)']]]
+];
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.12"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_b.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
--- /dev/null
+var searchData=
+[
+ ['_7ejobobject',['~JobObject',['../dc/dd3/class_m_utils_1_1_job_object.html#a0e2d6461729d16b615548e7b1594c893',1,'MUtils::JobObject']]]
+];
var indexSectionsWithContent =
{
- 0: "_abcdfghijmnprstuvx",
+ 0: "_abcdfghijmnprstuvx~",
1: "_hijrtuv",
2: "m",
- 3: "cgh",
- 4: "acdimnprtu",
+ 3: "cghj",
+ 4: "acdijmnprtu~",
5: "bcfhimsvx",
6: "c",
7: "m"
// http://www.gnu.org/licenses/lgpl-2.1.txt
//////////////////////////////////////////////////////////////////////////////////
+/**
+* @file
+* @brief This file contains function for creating and managing job objects
+*
+* Each instance of MUtils::JobObject represents a job object. Call MUtils::JobObject::addProcessToJob() to add another sub-process to the job object. Call MUtils::JobObject::terminateJob() to terminate *all* sub-processes that currently belong to the job object at once.
+*
+* Note that all sub-processes that belong to the job object will be terminated when *this* process exits, gracefully or due to a crash. All sub-process belonging to a job object also are terminated when the corresponding MUtils::JobObject instance is destroyed.
+*/
+
#pragma once
#include <MUtils/Global.h>
namespace MUtils
{
+ /**
+ * @brief This class represents a job object
+ *
+ * Call addProcessToJob() to add another sub-process to this job object. Call terminateJob() to terminate all sub-processes that belong to this job object. Note that all sub-processes that belong to this job object will also be terminated when *this* process exits, gracefully or due to a crash.
+ *
+ * Also, when the JobObject instance is destroyed, all sub-process that belong to its corresponding job object and that are still running will be terminated!
+ */
class MUTILS_API JobObject
{
public:
+ /**
+ * \brief Create a new JobObject instance
+ *
+ * Creating a new JobObject instance automatically creates a new job object on the system-level. Check isObjectCreated() to test whether the job object was successfully created or not.
+ */
JobObject(void);
+
+ /**
+ * \brief Destroys the JobObject instance
+ *
+ * If the job object still has any running sub-processes left when the corresponding JobObject instance is destroyed, these sub-process are terminated!
+ */
~JobObject(void);
+ /**
+ * \brief Test whether job object was created successfully
+ *
+ * The job object will be created automatically when a new JobObject instance is created. However, the constructor has **no** to tell whether the job object was created successfully on the system-level. Call this function to test whether the job object has been created.
+ *
+ * \return The function returns `true`, if and only if a job object was successfully created; otherwise it returns `false`.
+ */
bool isObjectCreated(void);
+
+ /**
+ * \brief Add a process to the job object
+ *
+ * This function adds a another sub-process to the job object that is represented by this JobObject instance. Job object limitations apply to the sub-process a
+ *
+ * \param process A read-only pointer to the [QProcess](http://doc.qt.io/qt-4.8/qprocess.html) object that represents the sub-process to be added to the job object. The sub-process must be in the "running" state; otherwise the function will fail.
+ *
+ * \return The function returns `true`, if and only if the process was successfully added to the job object; otherwise it returns `false`.
+ */
bool addProcessToJob(const QProcess *const process);
+
+ /**
+ * \brief Terminate all sub-processes of the job object
+ *
+ * This function immediately terminates *all* running sub-processes that belong to the job object represented by this JobObject instance at once.
+ *
+ * \param exitCode The exit code to be set for the sub-process when they are terminated.
+ *
+ * \return The function returns `true`, if the sub-processes were destroyed successfully, even if there were no running sub-process left; otherwise it returns `false`.
+ */
bool terminateJob(const quint32 &exitCode);
private:
* - **Global.h** – miscellaneous useful functions
* - **CPUFeatures.h** – functions for detection information about the CPU
* - **Hash.h** – functions for cryptographic hash computation
+ * - **JobObject.h** – functions for creating and managing job objects
*
*
* # Example