⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 thread_8h-source.html

📁 pwlib开发文档
💻 HTML
📖 第 1 页 / 共 2 页
字号:
00150 <span class="preprocessor"></span>00151 <span class="keyword">class </span><a class="code" href="classPSemaphore.html">PSemaphore</a>;00152 <a name="l00153"></a><a class="code" href="thread_8h.html#a0">00153</a> <span class="preprocessor">#define PThreadIdentifer PThreadIdentifier</span>00154 <span class="preprocessor"></span><a name="l00155"></a><a class="code" href="thread_8h.html#a1">00155</a> <span class="keyword">typedef</span> P_THREADIDENTIFIER <a class="code" href="thread_8h.html#a1">PThreadIdentifier</a>;00156 00158 <span class="comment">// PThread</span>00159 <a name="l00173"></a><a class="code" href="classPThread.html">00173</a> <span class="keyword">class </span><a class="code" href="classPThread.html">PThread</a> : <span class="keyword">public</span> <a class="code" href="classPObject.html">PObject</a>00174 {00175   <a class="code" href="object_8h.html#a27">PCLASSINFO</a>(<a class="code" href="classPThread.html">PThread</a>, <a class="code" href="classPObject.html">PObject</a>);00176 00177   <span class="keyword">public</span>:00180 <a name="l00181"></a><a class="code" href="classPThread.html#z437_0">00181</a>     <span class="keyword">enum</span> <a class="code" href="classPThread.html#z437_0">Priority</a> {00183       <a class="code" href="classPThread.html#z437_0s0">LowestPriority</a>,   00184 00186       <a class="code" href="classPThread.html#z437_0s1">LowPriority</a>,      00187 00189       <a class="code" href="classPThread.html#z437_0s2">NormalPriority</a>,   00190 00192       <a class="code" href="classPThread.html#z437_0s3">HighPriority</a>,     00193 00195       <a class="code" href="classPThread.html#z437_0s4">HighestPriority</a>,  00196 00197       <a class="code" href="classPThread.html#z437_0s5">NumPriorities</a>00198     };00199 <a name="l00201"></a><a class="code" href="classPThread.html#z437_1">00201</a>     <span class="keyword">enum</span> <a class="code" href="classPThread.html#z437_1">AutoDeleteFlag</a> {00203       <a class="code" href="classPThread.html#z437_1s6">AutoDeleteThread</a>,   00204 00206       <a class="code" href="classPThread.html#z437_1s7">NoAutoDeleteThread</a>  00207     };00208 00231     <a class="code" href="classPThread.html#z437_2">PThread</a>(00232       PINDEX ,                 00233       <a class="code" href="classPThread.html#z437_1">AutoDeleteFlag</a> deletion = <a class="code" href="classPThread.html#z437_1s6">AutoDeleteThread</a>,00235       <a class="code" href="classPThread.html#z437_0">Priority</a> priorityLevel = <a class="code" href="classPThread.html#z437_0s2">NormalPriority</a>,  00236       <span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> &amp; threadName = <a class="code" href="classPString.html#z231_33">PString::Empty</a>() 00237     );00238 00246     <a class="code" href="classPThread.html#z437_3">~PThread</a>();00248 00255     <span class="keywordtype">void</span> <a class="code" href="classPThread.html#z439_0">PrintOn</a>(00256       ostream &amp; strm    00257     ) <span class="keyword">const</span>;00259 00267     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPThread.html#z441_0">Restart</a>();00268 00280     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPThread.html#z441_1">Terminate</a>();00281 00287     <span class="keyword">virtual</span> BOOL <a class="code" href="classPThread.html#z441_2">IsTerminated</a>() <span class="keyword">const</span>;00288 00294     <span class="keywordtype">void</span> <a class="code" href="classPThread.html#z441_3">WaitForTermination</a>() <span class="keyword">const</span>;00295     BOOL <a class="code" href="classPThread.html#z441_3">WaitForTermination</a>(00296       <span class="keyword">const</span> <a class="code" href="classPTimeInterval.html">PTimeInterval</a> &amp; maxWait  00297     ) <span class="keyword">const</span>;00298 00311     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPThread.html#z441_5">Suspend</a>(00312       BOOL susp = TRUE    00313     );00314 00318     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPThread.html#z441_6">Resume</a>();00319 00327     <span class="keyword">virtual</span> BOOL <a class="code" href="classPThread.html#z441_7">IsSuspended</a>() <span class="keyword">const</span>;00328 00330     <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classPThread.html#z441_14">Sleep</a>(00331       <span class="keyword">const</span> <a class="code" href="classPTimeInterval.html">PTimeInterval</a> &amp; delay   00332     );00333 00337     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPThread.html#z441_8">SetPriority</a>(00338       <a class="code" href="classPThread.html#z437_0">Priority</a> priorityLevel    00339     );00340 00346     <span class="keyword">virtual</span> <a class="code" href="classPThread.html#z437_0">Priority</a> <a class="code" href="classPThread.html#z441_9">GetPriority</a>() <span class="keyword">const</span>;00347 00351     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPThread.html#z441_10">SetAutoDelete</a>(00352       <a class="code" href="classPThread.html#z437_1">AutoDeleteFlag</a> deletion = <a class="code" href="classPThread.html#z437_1s6">AutoDeleteThread</a>  00353     );00354 <a name="l00358"></a><a class="code" href="classPThread.html#z441_11">00358</a>     <span class="keywordtype">void</span> <a class="code" href="classPThread.html#z441_11">SetNoAutoDelete</a>() { <a class="code" href="classPThread.html#z441_10">SetAutoDelete</a>(<a class="code" href="classPThread.html#z437_1s7">NoAutoDeleteThread</a>); }00359 00365     <span class="keyword">virtual</span> <a class="code" href="classPString.html">PString</a> <a class="code" href="classPThread.html#z441_12">GetThreadName</a>() <span class="keyword">const</span>;00366 00372     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPThread.html#z441_13">SetThreadName</a>(00373       <span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> &amp; name        00374     );00376 00381     <span class="keyword">virtual</span> <a class="code" href="thread_8h.html#a1">PThreadIdentifier</a> <a class="code" href="classPThread.html#z443_0">GetThreadId</a>() <span class="keyword">const</span>;00382 00385     <span class="keyword">static</span> <a class="code" href="thread_8h.html#a1">PThreadIdentifier</a> <a class="code" href="classPThread.html#z443_2">GetCurrentThreadId</a>();00386 00394     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPThread.html#z443_1">Main</a>() = 0;00395 00405     <span class="keyword">static</span> <a class="code" href="classPThread.html">PThread</a> * <a class="code" href="classPThread.html#z443_3">Current</a>();00406 00413     <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classPThread.html#z443_4">Yield</a>();00414 00419     <span class="keyword">static</span> <a class="code" href="classPThread.html">PThread</a> * <a class="code" href="classPThread.html#z443_5">Create</a>(00420       <span class="keyword">const</span> <a class="code" href="classPNotifier.html">PNotifier</a> &amp; notifier,     00421       INT parameter = 0,              00422       <a class="code" href="classPThread.html#z437_1">AutoDeleteFlag</a> deletion = <a class="code" href="classPThread.html#z437_1s6">AutoDeleteThread</a>,00424       <a class="code" href="classPThread.html#z437_0">Priority</a> priorityLevel = <a class="code" href="classPThread.html#z437_0s2">NormalPriority</a>,  00425       <span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> &amp; threadName = <a class="code" href="classPString.html#z231_33">PString::Empty</a>(), 00426       PINDEX stackSize = 10000         00427     );00429 00430   <span class="keyword">protected</span>:00431     <span class="keywordtype">void</span> <a class="code" href="classPThread.html#b0">InitialiseProcessThread</a>();00432     <span class="comment">/* Initialialise the primordial thread, the one in the PProcess. This is</span>00433 <span class="comment">       required due to the bootstrap logic of processes and threads.</span>00434 <span class="comment">     */</span>00435 00436   <span class="keyword">private</span>:00437     <a class="code" href="classPThread.html#z437_2">PThread</a>();00438     <span class="comment">// Create a new thread instance as part of a PProcess class.</span>00439 <a name="l00440"></a><a class="code" href="classPThread.html#l0">00440</a>     <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classPProcess.html">PProcess</a>;00441     <span class="comment">// So a PProcess can get at PThread() constructor but nothing else.</span>00442 00443     <a class="code" href="classPThread.html#z437_2">PThread</a>(<span class="keyword">const</span> <a class="code" href="classPThread.html">PThread</a> &amp;) { }00444     <span class="comment">// Empty constructor to prevent copying of thread instances.</span>00445 00446     <a class="code" href="classPThread.html">PThread</a> &amp; operator=(<span class="keyword">const</span> <a class="code" href="classPThread.html">PThread</a> &amp;) { <span class="keywordflow">return</span> *<span class="keyword">this</span>; }00447     <span class="comment">// Empty assignment operator to prevent copying of thread instances.</span>00448 00449     BOOL autoDelete;00450     <span class="comment">// Automatically delete the thread on completion.</span>00451 00452     <span class="comment">// Give the thread a name for debugging purposes.</span>00453     <a class="code" href="classPString.html">PString</a> threadName;00454 00455   <span class="keyword">private</span>:00456     <span class="keywordtype">unsigned</span> traceBlockIndentLevel;<a name="l00457"></a><a class="code" href="classPThread.html#l1">00457</a>     <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classPTrace.html">PTrace</a>::Block;00458 00459 00460 <span class="comment">// Include platform dependent part of class</span>00461 #ifdef _WIN3200462 #include "msos/ptlib/thread.h"00463 #else00464 #include "unix/ptlib/thread.h"00465 #endif00466 };00467 00468 #endif  <span class="comment">// _PTHREAD</span>00469 00470 <span class="comment">// End Of File ///////////////////////////////////////////////////////////////</span></pre></div><hr><address style="align: right;"><small>Generated on Wed Sep 29 22:44:12 2004 for PWLib by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 width=110 height=53></a>1.2.18 </small></address></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -