📄 syncthrd_8h-source.html
字号:
00173 };00174 00175 <a name="l00178"></a><a class="code" href="classPIntCondMutex.html">00178</a> <span class="keyword">class </span><a class="code" href="classPIntCondMutex.html">PIntCondMutex</a> : <span class="keyword">public</span> <a class="code" href="classPCondMutex.html">PCondMutex</a>00179 {00180 <a class="code" href="object_8h.html#a27">PCLASSINFO</a>(<a class="code" href="classPIntCondMutex.html">PIntCondMutex</a>, <a class="code" href="classPCondMutex.html">PCondMutex</a>);00181 00182 <span class="keyword">public</span>:00185 <a name="l00186"></a><a class="code" href="classPIntCondMutex.html#z413_0">00186</a> <span class="keyword">enum</span> <a class="code" href="classPIntCondMutex.html#z413_0">Operation</a> {00188 <a class="code" href="classPIntCondMutex.html#z413_0s0">LT</a>,00190 <a class="code" href="classPIntCondMutex.html#z413_0s1">LE</a>,00192 <a class="code" href="classPIntCondMutex.html#z413_0s2">EQ</a>,00194 <a class="code" href="classPIntCondMutex.html#z413_0s3">GE</a>,00196 <a class="code" href="classPIntCondMutex.html#z413_0s4">GT</a>00197 };00198 00202 <a class="code" href="classPIntCondMutex.html#z413_1">PIntCondMutex</a>(00203 <span class="keywordtype">int</span> <a class="code" href="classPIntCondMutex.html#n0">value</a> = 0, 00204 <span class="keywordtype">int</span> <a class="code" href="classPIntCondMutex.html#n1">target</a> = 0, 00205 <a class="code" href="classPIntCondMutex.html#z413_0">Operation</a> <a class="code" href="classPIntCondMutex.html#n2">operation</a> = <a class="code" href="classPIntCondMutex.html#z413_0s1">LE</a> 00206 );00208 00214 <span class="keywordtype">void</span> <a class="code" href="classPIntCondMutex.html#z415_0">PrintOn</a>(ostream & strm) <span class="keyword">const</span>;00216 00224 <span class="keyword">virtual</span> BOOL <a class="code" href="classPIntCondMutex.html#z417_0">Condition</a>();00225 <a name="l00229"></a><a class="code" href="classPIntCondMutex.html#z417_1">00229</a> <a class="code" href="classPIntCondMutex.html#z417_1">operator int</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classPIntCondMutex.html#n0">value</a>; }00230 00238 <a class="code" href="classPIntCondMutex.html">PIntCondMutex</a> & <a class="code" href="classPIntCondMutex.html#z417_2">operator=</a>(<span class="keywordtype">int</span> newval);00239 00247 <a class="code" href="classPIntCondMutex.html">PIntCondMutex</a> & <a class="code" href="classPIntCondMutex.html#z417_3">operator++</a>();00248 00256 <a class="code" href="classPIntCondMutex.html">PIntCondMutex</a> & <a class="code" href="classPIntCondMutex.html#z417_4">operator+=</a>(<span class="keywordtype">int</span> inc);00257 00265 <a class="code" href="classPIntCondMutex.html">PIntCondMutex</a> & <a class="code" href="classPIntCondMutex.html#z417_5">operator--</a>();00266 00274 <a class="code" href="classPIntCondMutex.html">PIntCondMutex</a> & <a class="code" href="classPIntCondMutex.html#z417_6">operator-=</a>(<span class="keywordtype">int</span> dec);00276 00277 00278 <span class="keyword">protected</span>:<a name="l00279"></a><a class="code" href="classPIntCondMutex.html#n0">00279</a> <span class="keywordtype">int</span> <a class="code" href="classPIntCondMutex.html#n0">value</a>, <a class="code" href="classPIntCondMutex.html#n1">target</a>;<a name="l00280"></a><a class="code" href="classPIntCondMutex.html#n2">00280</a> <a class="code" href="classPIntCondMutex.html#z413_0">Operation</a> <a class="code" href="classPIntCondMutex.html#n2">operation</a>;00281 };00282 00283 <a name="l00291"></a><a class="code" href="classPReadWriteMutex.html">00291</a> <span class="keyword">class </span><a class="code" href="classPReadWriteMutex.html">PReadWriteMutex</a> : <span class="keyword">public</span> <a class="code" href="classPObject.html">PObject</a>00292 {00293 <a class="code" href="object_8h.html#a27">PCLASSINFO</a>(<a class="code" href="classPReadWriteMutex.html">PReadWriteMutex</a>, <a class="code" href="classPObject.html">PObject</a>);00294 <span class="keyword">public</span>:00297 <a class="code" href="classPReadWriteMutex.html#z419_0">PReadWriteMutex</a>();00299 00306 <span class="keywordtype">void</span> <a class="code" href="classPReadWriteMutex.html#z421_0">StartRead</a>();00307 00310 <span class="keywordtype">void</span> <a class="code" href="classPReadWriteMutex.html#z421_1">EndRead</a>();00311 00327 <span class="keywordtype">void</span> <a class="code" href="classPReadWriteMutex.html#z421_2">StartWrite</a>();00328 00340 <span class="keywordtype">void</span> <a class="code" href="classPReadWriteMutex.html#z421_3">EndWrite</a>();00342 00343 <span class="keyword">protected</span>:<a name="l00344"></a><a class="code" href="classPReadWriteMutex.html#n0">00344</a> <a class="code" href="classPSemaphore.html">PSemaphore</a> <a class="code" href="classPReadWriteMutex.html#n0">readerSemaphore</a>;<a name="l00345"></a><a class="code" href="classPReadWriteMutex.html#n1">00345</a> <a class="code" href="classPMutex.html">PMutex</a> <a class="code" href="classPReadWriteMutex.html#n1">readerMutex</a>;<a name="l00346"></a><a class="code" href="classPReadWriteMutex.html#n2">00346</a> <span class="keywordtype">unsigned</span> <a class="code" href="classPReadWriteMutex.html#n2">readerCount</a>;<a name="l00347"></a><a class="code" href="classPReadWriteMutex.html#n3">00347</a> <a class="code" href="classPMutex.html">PMutex</a> <a class="code" href="classPReadWriteMutex.html#n3">starvationPreventer</a>;00348 <a name="l00349"></a><a class="code" href="classPReadWriteMutex.html#n4">00349</a> <a class="code" href="classPSemaphore.html">PSemaphore</a> <a class="code" href="classPReadWriteMutex.html#n4">writerSemaphore</a>;<a name="l00350"></a><a class="code" href="classPReadWriteMutex.html#n5">00350</a> <a class="code" href="classPMutex.html">PMutex</a> <a class="code" href="classPReadWriteMutex.html#n5">writerMutex</a>;<a name="l00351"></a><a class="code" href="classPReadWriteMutex.html#n6">00351</a> <span class="keywordtype">unsigned</span> <a class="code" href="classPReadWriteMutex.html#n6">writerCount</a>;00352 <a name="l00353"></a><a class="code" href="classPReadWriteMutex_1_1Nest.html">00353</a> <span class="keyword">class </span><a class="code" href="classPReadWriteMutex_1_1Nest.html">Nest</a> : <span class="keyword">public</span> <a class="code" href="classPObject.html">PObject</a>00354 {00355 <a class="code" href="object_8h.html#a27">PCLASSINFO</a>(<a class="code" href="classPReadWriteMutex_1_1Nest.html">Nest</a>, <a class="code" href="classPObject.html">PObject</a>);00356 <a class="code" href="classPReadWriteMutex_1_1Nest.html">Nest</a>() { readerCount = writerCount = 0; }00357 <span class="keywordtype">unsigned</span> readerCount;00358 <span class="keywordtype">unsigned</span> writerCount;00359 };<a name="l00360"></a><a class="code" href="classPReadWriteMutex.html#n7">00360</a> PDictionary<POrdinalKey, Nest> <a class="code" href="classPReadWriteMutex.html#n7">nestedThreads</a>;<a name="l00361"></a><a class="code" href="classPReadWriteMutex.html#n8">00361</a> <a class="code" href="classPMutex.html">PMutex</a> <a class="code" href="classPReadWriteMutex.html#n8">nestingMutex</a>;00362 00363 <a class="code" href="classPReadWriteMutex_1_1Nest.html">Nest</a> * <a class="code" href="classPReadWriteMutex.html#b0">GetNest</a>() <span class="keyword">const</span>;00364 <a class="code" href="classPReadWriteMutex_1_1Nest.html">Nest</a> & <a class="code" href="classPReadWriteMutex.html#b1">StartNest</a>();00365 <span class="keywordtype">void</span> <a class="code" href="classPReadWriteMutex.html#b2">EndNest</a>();00366 <span class="keywordtype">void</span> <a class="code" href="classPReadWriteMutex.html#b3">InternalStartRead</a>();00367 <span class="keywordtype">void</span> <a class="code" href="classPReadWriteMutex.html#b4">InternalEndRead</a>();00368 };00369 00370 <a name="l00388"></a><a class="code" href="classPReadWaitAndSignal.html">00388</a> <span class="keyword">class </span><a class="code" href="classPReadWaitAndSignal.html">PReadWaitAndSignal</a> {00389 <span class="keyword">public</span>:00394 <a class="code" href="classPReadWaitAndSignal.html#a0">PReadWaitAndSignal</a>(00395 <span class="keyword">const</span> <a class="code" href="classPReadWriteMutex.html">PReadWriteMutex</a> & rw, 00396 BOOL start = TRUE 00397 );00402 <a class="code" href="classPReadWaitAndSignal.html#a1">~PReadWaitAndSignal</a>();00403 00404 <span class="keyword">protected</span>:<a name="l00405"></a><a class="code" href="classPReadWaitAndSignal.html#n0">00405</a> <a class="code" href="classPReadWriteMutex.html">PReadWriteMutex</a> & <a class="code" href="classPReadWaitAndSignal.html#n0">mutex</a>;00406 };00407 00408 <a name="l00426"></a><a class="code" href="classPWriteWaitAndSignal.html">00426</a> <span class="keyword">class </span><a class="code" href="classPWriteWaitAndSignal.html">PWriteWaitAndSignal</a> {00427 <span class="keyword">public</span>:00432 <a class="code" href="classPWriteWaitAndSignal.html#a0">PWriteWaitAndSignal</a>(00433 <span class="keyword">const</span> <a class="code" href="classPReadWriteMutex.html">PReadWriteMutex</a> & rw, 00434 BOOL start = TRUE 00435 );00440 <a class="code" href="classPWriteWaitAndSignal.html#a1">~PWriteWaitAndSignal</a>();00441 00442 <span class="keyword">protected</span>:<a name="l00443"></a><a class="code" href="classPWriteWaitAndSignal.html#n0">00443</a> <a class="code" href="classPReadWriteMutex.html">PReadWriteMutex</a> & <a class="code" href="classPWriteWaitAndSignal.html#n0">mutex</a>;00444 };00445 00446 00447 <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 + -