Sophie

Sophie

distrib > Mageia > 4 > x86_64 > by-pkgid > b293cf61b174f6cb974e48c9096dc9b3 > files > 367

lib64commoncpp-devel-1.8.1-7.mga4.x86_64.rpm

<!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.5"/>
<title>GNU CommonC++: ost::ThreadQueue Class 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="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 style="padding-left: 0.5em;">
   <div id="projectname">GNU CommonC++
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespaceost.html">ost</a></li><li class="navelem"><a class="el" href="classost_1_1_thread_queue.html">ThreadQueue</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-types">Protected Types</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classost_1_1_thread_queue-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">ost::ThreadQueue Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
</div><!--header-->
<div class="contents">

<p>Somewhat generic queue processing class to establish a producer consumer queue.  
 <a href="classost_1_1_thread_queue.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="buffer_8h_source.html">buffer.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for ost::ThreadQueue:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classost_1_1_thread_queue.png" usemap="#ost::ThreadQueue_map" alt=""/>
  <map id="ost::ThreadQueue_map" name="ost::ThreadQueue_map">
<area href="classost_1_1_mutex.html" title="The Mutex class is used to protect a section of code so that at any given time only a single thread c..." alt="ost::Mutex" shape="rect" coords="0,0,112,24"/>
<area href="classost_1_1_thread.html" title="Every thread of execution in an application is created by instantiating an object of a class derived ..." alt="ost::Thread" shape="rect" coords="122,0,234,24"/>
<area href="classost_1_1_semaphore.html" title="A semaphore is generally used as a synchronization object between multiple threads or to protect a li..." alt="ost::Semaphore" shape="rect" coords="244,0,356,24"/>
</map>
 </div></div>
<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">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structost_1_1_thread_queue_1_1__data.html">_data</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><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:aa604895a1e9884e8a33d71542eab5fac"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread_queue.html#aa604895a1e9884e8a33d71542eab5fac">ThreadQueue</a> (const char *id, int pri, size_t stack=0)</td></tr>
<tr class="memdesc:aa604895a1e9884e8a33d71542eab5fac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create instance of our queue and give it a process priority.  <a href="#aa604895a1e9884e8a33d71542eab5fac">More...</a><br/></td></tr>
<tr class="separator:aa604895a1e9884e8a33d71542eab5fac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8843f32e3bb271998fab06a6acabf256"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread_queue.html#a8843f32e3bb271998fab06a6acabf256">~ThreadQueue</a> ()</td></tr>
<tr class="memdesc:a8843f32e3bb271998fab06a6acabf256"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy the queue.  <a href="#a8843f32e3bb271998fab06a6acabf256">More...</a><br/></td></tr>
<tr class="separator:a8843f32e3bb271998fab06a6acabf256"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0813a4dc595164bc7216636503dd43c7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread_queue.html#a0813a4dc595164bc7216636503dd43c7">setTimer</a> (<a class="el" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> <a class="el" href="classost_1_1_thread_queue.html#adaf42df577b955fcea0dad9dd8a61202">timeout</a>)</td></tr>
<tr class="memdesc:a0813a4dc595164bc7216636503dd43c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the queue timeout.  <a href="#a0813a4dc595164bc7216636503dd43c7">More...</a><br/></td></tr>
<tr class="separator:a0813a4dc595164bc7216636503dd43c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec4bca4a2933cd3063f76ac325774c35"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread_queue.html#aec4bca4a2933cd3063f76ac325774c35">post</a> (const void *data, unsigned len)</td></tr>
<tr class="memdesc:aec4bca4a2933cd3063f76ac325774c35"><td class="mdescLeft">&#160;</td><td class="mdescRight">Put some unspecified data into this queue.  <a href="#aec4bca4a2933cd3063f76ac325774c35">More...</a><br/></td></tr>
<tr class="separator:aec4bca4a2933cd3063f76ac325774c35"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classost_1_1_mutex"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classost_1_1_mutex')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classost_1_1_mutex.html">ost::Mutex</a></td></tr>
<tr class="memitem:a22e6ce5d9d8d209dac70e39310459202 inherit pub_methods_classost_1_1_mutex"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_mutex.html#a22e6ce5d9d8d209dac70e39310459202">Mutex</a> (const char *name=NULL)</td></tr>
<tr class="memdesc:a22e6ce5d9d8d209dac70e39310459202 inherit pub_methods_classost_1_1_mutex"><td class="mdescLeft">&#160;</td><td class="mdescRight">The mutex is always initialized as a recursive entity.  <a href="#a22e6ce5d9d8d209dac70e39310459202">More...</a><br/></td></tr>
<tr class="separator:a22e6ce5d9d8d209dac70e39310459202 inherit pub_methods_classost_1_1_mutex"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ccc1c2e7278d8adc47fd728706c33a8 inherit pub_methods_classost_1_1_mutex"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_mutex.html#a5ccc1c2e7278d8adc47fd728706c33a8">~Mutex</a> ()</td></tr>
<tr class="memdesc:a5ccc1c2e7278d8adc47fd728706c33a8 inherit pub_methods_classost_1_1_mutex"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroying the mutex removes any system resources associated with it.  <a href="#a5ccc1c2e7278d8adc47fd728706c33a8">More...</a><br/></td></tr>
<tr class="separator:a5ccc1c2e7278d8adc47fd728706c33a8 inherit pub_methods_classost_1_1_mutex"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abed8b05b63f9cdd2c9ca1f92081b1a8a inherit pub_methods_classost_1_1_mutex"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_mutex.html#abed8b05b63f9cdd2c9ca1f92081b1a8a">nameMutex</a> (const char *name)</td></tr>
<tr class="memdesc:abed8b05b63f9cdd2c9ca1f92081b1a8a inherit pub_methods_classost_1_1_mutex"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable setting of mutex name for deadlock debug.  <a href="#abed8b05b63f9cdd2c9ca1f92081b1a8a">More...</a><br/></td></tr>
<tr class="separator:abed8b05b63f9cdd2c9ca1f92081b1a8a inherit pub_methods_classost_1_1_mutex"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc1471d0c2114e5c49e1fe7152448378 inherit pub_methods_classost_1_1_mutex"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_mutex.html#adc1471d0c2114e5c49e1fe7152448378">enterMutex</a> (void)</td></tr>
<tr class="memdesc:adc1471d0c2114e5c49e1fe7152448378 inherit pub_methods_classost_1_1_mutex"><td class="mdescLeft">&#160;</td><td class="mdescRight">Entering a <a class="el" href="classost_1_1_mutex.html" title="The Mutex class is used to protect a section of code so that at any given time only a single thread c...">Mutex</a> locks the mutex for the current thread.  <a href="#adc1471d0c2114e5c49e1fe7152448378">More...</a><br/></td></tr>
<tr class="separator:adc1471d0c2114e5c49e1fe7152448378 inherit pub_methods_classost_1_1_mutex"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aecb516325583e432bf2bf7e4b565f6f6 inherit pub_methods_classost_1_1_mutex"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_mutex.html#aecb516325583e432bf2bf7e4b565f6f6">enter</a> (void)</td></tr>
<tr class="memdesc:aecb516325583e432bf2bf7e4b565f6f6 inherit pub_methods_classost_1_1_mutex"><td class="mdescLeft">&#160;</td><td class="mdescRight">Future abi will use enter/leave/test members.  <a href="#aecb516325583e432bf2bf7e4b565f6f6">More...</a><br/></td></tr>
<tr class="separator:aecb516325583e432bf2bf7e4b565f6f6 inherit pub_methods_classost_1_1_mutex"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab6aaecac9c95d31a5862014d7f1afe73 inherit pub_methods_classost_1_1_mutex"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_mutex.html#ab6aaecac9c95d31a5862014d7f1afe73">leave</a> (void)</td></tr>
<tr class="memdesc:ab6aaecac9c95d31a5862014d7f1afe73 inherit pub_methods_classost_1_1_mutex"><td class="mdescLeft">&#160;</td><td class="mdescRight">Future abi will use enter/leave/test members.  <a href="#ab6aaecac9c95d31a5862014d7f1afe73">More...</a><br/></td></tr>
<tr class="separator:ab6aaecac9c95d31a5862014d7f1afe73 inherit pub_methods_classost_1_1_mutex"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1ff5454b2c9b55790c4bf33f751704c inherit pub_methods_classost_1_1_mutex"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_mutex.html#ac1ff5454b2c9b55790c4bf33f751704c">test</a> (void)</td></tr>
<tr class="memdesc:ac1ff5454b2c9b55790c4bf33f751704c inherit pub_methods_classost_1_1_mutex"><td class="mdescLeft">&#160;</td><td class="mdescRight">Future abi will use enter/leave/test members.  <a href="#ac1ff5454b2c9b55790c4bf33f751704c">More...</a><br/></td></tr>
<tr class="separator:ac1ff5454b2c9b55790c4bf33f751704c inherit pub_methods_classost_1_1_mutex"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa46b490ac92017ef89980b0020bff8c0 inherit pub_methods_classost_1_1_mutex"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_mutex.html#aa46b490ac92017ef89980b0020bff8c0">tryEnterMutex</a> (void)</td></tr>
<tr class="memdesc:aa46b490ac92017ef89980b0020bff8c0 inherit pub_methods_classost_1_1_mutex"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tries to lock the mutex for the current thread.  <a href="#aa46b490ac92017ef89980b0020bff8c0">More...</a><br/></td></tr>
<tr class="separator:aa46b490ac92017ef89980b0020bff8c0 inherit pub_methods_classost_1_1_mutex"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a403208d275c4c7b8087a40259b0cb0f3 inherit pub_methods_classost_1_1_mutex"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_mutex.html#a403208d275c4c7b8087a40259b0cb0f3">leaveMutex</a> (void)</td></tr>
<tr class="memdesc:a403208d275c4c7b8087a40259b0cb0f3 inherit pub_methods_classost_1_1_mutex"><td class="mdescLeft">&#160;</td><td class="mdescRight">Leaving a mutex frees that mutex for use by another thread.  <a href="#a403208d275c4c7b8087a40259b0cb0f3">More...</a><br/></td></tr>
<tr class="separator:a403208d275c4c7b8087a40259b0cb0f3 inherit pub_methods_classost_1_1_mutex"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classost_1_1_thread"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classost_1_1_thread')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classost_1_1_thread.html">ost::Thread</a></td></tr>
<tr class="memitem:a72470c1b00d098e74162284e248c0435 inherit pub_methods_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#a72470c1b00d098e74162284e248c0435">Thread</a> (bool isMain)</td></tr>
<tr class="memdesc:a72470c1b00d098e74162284e248c0435 inherit pub_methods_classost_1_1_thread"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is actually a special constructor that is used to create a thread "object" for the current execution context when that context is not created via an instance of a derived <a class="el" href="classost_1_1_thread.html" title="Every thread of execution in an application is created by instantiating an object of a class derived ...">Thread</a> object itself.  <a href="#a72470c1b00d098e74162284e248c0435">More...</a><br/></td></tr>
<tr class="separator:a72470c1b00d098e74162284e248c0435 inherit pub_methods_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a082ea94f104219969a2d75becc749af6 inherit pub_methods_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#a082ea94f104219969a2d75becc749af6">Thread</a> (int pri=0, size_t stack=0)</td></tr>
<tr class="memdesc:a082ea94f104219969a2d75becc749af6 inherit pub_methods_classost_1_1_thread"><td class="mdescLeft">&#160;</td><td class="mdescRight">When a thread object is contructed, a new thread of execution context is created.  <a href="#a082ea94f104219969a2d75becc749af6">More...</a><br/></td></tr>
<tr class="separator:a082ea94f104219969a2d75becc749af6 inherit pub_methods_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ba7f4211aabb5a278c546d0fae81f55 inherit pub_methods_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#a0ba7f4211aabb5a278c546d0fae81f55">Thread</a> (const <a class="el" href="classost_1_1_thread.html">Thread</a> &amp;th)</td></tr>
<tr class="memdesc:a0ba7f4211aabb5a278c546d0fae81f55 inherit pub_methods_classost_1_1_thread"><td class="mdescLeft">&#160;</td><td class="mdescRight">A thread of execution can also be specified by cloning an existing thread.  <a href="#a0ba7f4211aabb5a278c546d0fae81f55">More...</a><br/></td></tr>
<tr class="separator:a0ba7f4211aabb5a278c546d0fae81f55 inherit pub_methods_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad363397f26006af68fa9315c9bff8589 inherit pub_methods_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#ad363397f26006af68fa9315c9bff8589">~Thread</a> ()</td></tr>
<tr class="memdesc:ad363397f26006af68fa9315c9bff8589 inherit pub_methods_classost_1_1_thread"><td class="mdescLeft">&#160;</td><td class="mdescRight">The thread destructor should clear up any resources that have been allocated by the thread.  <a href="#ad363397f26006af68fa9315c9bff8589">More...</a><br/></td></tr>
<tr class="separator:ad363397f26006af68fa9315c9bff8589 inherit pub_methods_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ef198d7aefb93cf9de4fcc6b66c27a2 inherit pub_methods_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#a2ef198d7aefb93cf9de4fcc6b66c27a2">start</a> (<a class="el" href="classost_1_1_semaphore.html">Semaphore</a> *start=0)</td></tr>
<tr class="memdesc:a2ef198d7aefb93cf9de4fcc6b66c27a2 inherit pub_methods_classost_1_1_thread"><td class="mdescLeft">&#160;</td><td class="mdescRight">When a new thread is created, it does not begin immediate execution.  <a href="#a2ef198d7aefb93cf9de4fcc6b66c27a2">More...</a><br/></td></tr>
<tr class="separator:a2ef198d7aefb93cf9de4fcc6b66c27a2 inherit pub_methods_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac30778f0fffd9dd952fd73cb541cc70b inherit pub_methods_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#ac30778f0fffd9dd952fd73cb541cc70b">detach</a> (<a class="el" href="classost_1_1_semaphore.html">Semaphore</a> *<a class="el" href="classost_1_1_thread.html#a2ef198d7aefb93cf9de4fcc6b66c27a2">start</a>=0)</td></tr>
<tr class="memdesc:ac30778f0fffd9dd952fd73cb541cc70b inherit pub_methods_classost_1_1_thread"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start a new thread as "detached".  <a href="#ac30778f0fffd9dd952fd73cb541cc70b">More...</a><br/></td></tr>
<tr class="separator:ac30778f0fffd9dd952fd73cb541cc70b inherit pub_methods_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac5bc230c3bad5c837baa9e6d01f4c24 inherit pub_methods_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classost_1_1_thread.html">Thread</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#aac5bc230c3bad5c837baa9e6d01f4c24">getParent</a> (void)</td></tr>
<tr class="memdesc:aac5bc230c3bad5c837baa9e6d01f4c24 inherit pub_methods_classost_1_1_thread"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the pointer to the <a class="el" href="classost_1_1_thread.html" title="Every thread of execution in an application is created by instantiating an object of a class derived ...">Thread</a> class which created the current thread object.  <a href="#aac5bc230c3bad5c837baa9e6d01f4c24">More...</a><br/></td></tr>
<tr class="separator:aac5bc230c3bad5c837baa9e6d01f4c24 inherit pub_methods_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f1b650c1f3b71e458adfbd86b3acb83 inherit pub_methods_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#a5f1b650c1f3b71e458adfbd86b3acb83">suspend</a> (void)</td></tr>
<tr class="memdesc:a5f1b650c1f3b71e458adfbd86b3acb83 inherit pub_methods_classost_1_1_thread"><td class="mdescLeft">&#160;</td><td class="mdescRight">Suspends execution of the selected thread.  <a href="#a5f1b650c1f3b71e458adfbd86b3acb83">More...</a><br/></td></tr>
<tr class="separator:a5f1b650c1f3b71e458adfbd86b3acb83 inherit pub_methods_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0861f734ad77b1ba517fce302215e41e inherit pub_methods_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#a0861f734ad77b1ba517fce302215e41e">resume</a> (void)</td></tr>
<tr class="memdesc:a0861f734ad77b1ba517fce302215e41e inherit pub_methods_classost_1_1_thread"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resumes execution of the selected thread.  <a href="#a0861f734ad77b1ba517fce302215e41e">More...</a><br/></td></tr>
<tr class="separator:a0861f734ad77b1ba517fce302215e41e inherit pub_methods_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3524521d80bcc0562fb59a28ce5d62a4 inherit pub_methods_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classost_1_1_thread.html#a24f333b09607b7c48a97e05865ada69b">Cancel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#a3524521d80bcc0562fb59a28ce5d62a4">getCancel</a> (void)</td></tr>
<tr class="memdesc:a3524521d80bcc0562fb59a28ce5d62a4 inherit pub_methods_classost_1_1_thread"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used to retrieve the cancellation mode in effect for the selected thread.  <a href="#a3524521d80bcc0562fb59a28ce5d62a4">More...</a><br/></td></tr>
<tr class="separator:a3524521d80bcc0562fb59a28ce5d62a4 inherit pub_methods_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa04a06a086dffad7ffc67dba4ea431ab inherit pub_methods_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#aa04a06a086dffad7ffc67dba4ea431ab">isRunning</a> (void) const </td></tr>
<tr class="memdesc:aa04a06a086dffad7ffc67dba4ea431ab inherit pub_methods_classost_1_1_thread"><td class="mdescLeft">&#160;</td><td class="mdescRight">Verifies if the thread is still running or has already been terminated but not yet deleted.  <a href="#aa04a06a086dffad7ffc67dba4ea431ab">More...</a><br/></td></tr>
<tr class="separator:aa04a06a086dffad7ffc67dba4ea431ab inherit pub_methods_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1bbbe1d6bc6dea6bea48cdabe2c7da20 inherit pub_methods_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#a1bbbe1d6bc6dea6bea48cdabe2c7da20">isDetached</a> (void) const </td></tr>
<tr class="memdesc:a1bbbe1d6bc6dea6bea48cdabe2c7da20 inherit pub_methods_classost_1_1_thread"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if this thread is detached.  <a href="#a1bbbe1d6bc6dea6bea48cdabe2c7da20">More...</a><br/></td></tr>
<tr class="separator:a1bbbe1d6bc6dea6bea48cdabe2c7da20 inherit pub_methods_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e6d355ea0d9b0b023f3fc2aa91a25e8 inherit pub_methods_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#a1e6d355ea0d9b0b023f3fc2aa91a25e8">join</a> (void)</td></tr>
<tr class="memdesc:a1e6d355ea0d9b0b023f3fc2aa91a25e8 inherit pub_methods_classost_1_1_thread"><td class="mdescLeft">&#160;</td><td class="mdescRight">Blocking call which unlocks when thread terminates.  <a href="#a1e6d355ea0d9b0b023f3fc2aa91a25e8">More...</a><br/></td></tr>
<tr class="separator:a1e6d355ea0d9b0b023f3fc2aa91a25e8 inherit pub_methods_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69ae124edf7e7989db0f911b847cacae inherit pub_methods_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#a69ae124edf7e7989db0f911b847cacae">isThread</a> (void) const </td></tr>
<tr class="memdesc:a69ae124edf7e7989db0f911b847cacae inherit pub_methods_classost_1_1_thread"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests to see if the current execution context is the same as the specified thread object.  <a href="#a69ae124edf7e7989db0f911b847cacae">More...</a><br/></td></tr>
<tr class="separator:a69ae124edf7e7989db0f911b847cacae inherit pub_methods_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3947a150139cf226626f47166ff92286 inherit pub_methods_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top"><a class="el" href="thread_8h.html#a3f0d0226a694bf1e508e1b1c758e6ae6">cctid_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#a3947a150139cf226626f47166ff92286">getId</a> (void) const </td></tr>
<tr class="memdesc:a3947a150139cf226626f47166ff92286 inherit pub_methods_classost_1_1_thread"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get system thread numeric identifier.  <a href="#a3947a150139cf226626f47166ff92286">More...</a><br/></td></tr>
<tr class="separator:a3947a150139cf226626f47166ff92286 inherit pub_methods_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b578a4a82d61060d1b17109caddc1a5 inherit pub_methods_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#a6b578a4a82d61060d1b17109caddc1a5">getName</a> (void) const </td></tr>
<tr class="memdesc:a6b578a4a82d61060d1b17109caddc1a5 inherit pub_methods_classost_1_1_thread"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the name string for this thread, to use in debug messages.  <a href="#a6b578a4a82d61060d1b17109caddc1a5">More...</a><br/></td></tr>
<tr class="separator:a6b578a4a82d61060d1b17109caddc1a5 inherit pub_methods_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classost_1_1_semaphore"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classost_1_1_semaphore')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classost_1_1_semaphore.html">ost::Semaphore</a></td></tr>
<tr class="memitem:a0a6f933da386bbe01b2b0b6b266bcc85 inherit pub_methods_classost_1_1_semaphore"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_semaphore.html#a0a6f933da386bbe01b2b0b6b266bcc85">Semaphore</a> (unsigned resource=0)</td></tr>
<tr class="memdesc:a0a6f933da386bbe01b2b0b6b266bcc85 inherit pub_methods_classost_1_1_semaphore"><td class="mdescLeft">&#160;</td><td class="mdescRight">The initial value of the semaphore can be specified.  <a href="#a0a6f933da386bbe01b2b0b6b266bcc85">More...</a><br/></td></tr>
<tr class="separator:a0a6f933da386bbe01b2b0b6b266bcc85 inherit pub_methods_classost_1_1_semaphore"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a138de594478446aa07f3bad15dce3846 inherit pub_methods_classost_1_1_semaphore"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_semaphore.html#a138de594478446aa07f3bad15dce3846">~Semaphore</a> ()</td></tr>
<tr class="memdesc:a138de594478446aa07f3bad15dce3846 inherit pub_methods_classost_1_1_semaphore"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroying a semaphore also removes any system resources associated with it.  <a href="#a138de594478446aa07f3bad15dce3846">More...</a><br/></td></tr>
<tr class="separator:a138de594478446aa07f3bad15dce3846 inherit pub_methods_classost_1_1_semaphore"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f2526be16a463d2392a74f668a91d80 inherit pub_methods_classost_1_1_semaphore"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_semaphore.html#a1f2526be16a463d2392a74f668a91d80">wait</a> (<a class="el" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> timeout=0)</td></tr>
<tr class="memdesc:a1f2526be16a463d2392a74f668a91d80 inherit pub_methods_classost_1_1_semaphore"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wait is used to keep a thread held until the semaphore counter is greater than 0.  <a href="#a1f2526be16a463d2392a74f668a91d80">More...</a><br/></td></tr>
<tr class="separator:a1f2526be16a463d2392a74f668a91d80 inherit pub_methods_classost_1_1_semaphore"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7535c9c3f3c60596b21b5275342cbe1e inherit pub_methods_classost_1_1_semaphore"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_semaphore.html#a7535c9c3f3c60596b21b5275342cbe1e">post</a> (void)</td></tr>
<tr class="memdesc:a7535c9c3f3c60596b21b5275342cbe1e inherit pub_methods_classost_1_1_semaphore"><td class="mdescLeft">&#160;</td><td class="mdescRight">Posting to a semaphore increments its current value and releases the first thread waiting for the semaphore if it is currently at 0.  <a href="#a7535c9c3f3c60596b21b5275342cbe1e">More...</a><br/></td></tr>
<tr class="separator:a7535c9c3f3c60596b21b5275342cbe1e inherit pub_methods_classost_1_1_semaphore"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23c458d249a3f68b83deaa5c7986dfca inherit pub_methods_classost_1_1_semaphore"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_semaphore.html#a23c458d249a3f68b83deaa5c7986dfca">force_unlock_after_cancellation</a> ()</td></tr>
<tr class="memdesc:a23c458d249a3f68b83deaa5c7986dfca inherit pub_methods_classost_1_1_semaphore"><td class="mdescLeft">&#160;</td><td class="mdescRight">Call it after a deferred cancellation to avoid deadlocks.  <a href="#a23c458d249a3f68b83deaa5c7986dfca">More...</a><br/></td></tr>
<tr class="separator:a23c458d249a3f68b83deaa5c7986dfca inherit pub_methods_classost_1_1_semaphore"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-types"></a>
Protected Types</h2></td></tr>
<tr class="memitem:a2c4ca5c5c5cd0282aafb9a2f9004c980"><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak"/>
<a class="el" href="structost_1_1_thread_queue_1_1__data.html">ost::ThreadQueue::_data</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread_queue.html#a2c4ca5c5c5cd0282aafb9a2f9004c980">data_t</a></td></tr>
<tr class="separator:a2c4ca5c5c5cd0282aafb9a2f9004c980"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a73e81c6abad4dd4758ea95171f67a42b"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread_queue.html#a73e81c6abad4dd4758ea95171f67a42b">final</a> ()</td></tr>
<tr class="separator:a73e81c6abad4dd4758ea95171f67a42b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2687b56a3be47b5e9739737dcecd6c9d"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread_queue.html#a2687b56a3be47b5e9739737dcecd6c9d">startQueue</a> (void)</td></tr>
<tr class="memdesc:a2687b56a3be47b5e9739737dcecd6c9d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start of dequeing.  <a href="#a2687b56a3be47b5e9739737dcecd6c9d">More...</a><br/></td></tr>
<tr class="separator:a2687b56a3be47b5e9739737dcecd6c9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a573ca3660b00d14f79fe70773cd2d668"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread_queue.html#a573ca3660b00d14f79fe70773cd2d668">stopQueue</a> (void)</td></tr>
<tr class="memdesc:a573ca3660b00d14f79fe70773cd2d668"><td class="mdescLeft">&#160;</td><td class="mdescRight">End of dequeing, we expect the queue is empty for now.  <a href="#a573ca3660b00d14f79fe70773cd2d668">More...</a><br/></td></tr>
<tr class="separator:a573ca3660b00d14f79fe70773cd2d668"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3699f0fc2d626367c17afd8e411943d3"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread_queue.html#a3699f0fc2d626367c17afd8e411943d3">onTimer</a> (void)</td></tr>
<tr class="memdesc:a3699f0fc2d626367c17afd8e411943d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">A derivable method to call when the timout is expired.  <a href="#a3699f0fc2d626367c17afd8e411943d3">More...</a><br/></td></tr>
<tr class="separator:a3699f0fc2d626367c17afd8e411943d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae26b60d8e9a3b130a89bee13aae7069e"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread_queue.html#ae26b60d8e9a3b130a89bee13aae7069e">runQueue</a> (void *data)=0</td></tr>
<tr class="memdesc:ae26b60d8e9a3b130a89bee13aae7069e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual callback method to handle processing of a queued data items.  <a href="#ae26b60d8e9a3b130a89bee13aae7069e">More...</a><br/></td></tr>
<tr class="separator:ae26b60d8e9a3b130a89bee13aae7069e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classost_1_1_thread"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classost_1_1_thread')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classost_1_1_thread.html">ost::Thread</a></td></tr>
<tr class="memitem:ab6f72653183c4db0dfd6b254ddbf072e inherit pro_methods_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#ab6f72653183c4db0dfd6b254ddbf072e">setName</a> (const char *text)</td></tr>
<tr class="memdesc:ab6f72653183c4db0dfd6b254ddbf072e inherit pro_methods_classost_1_1_thread"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the name of the current thread.  <a href="#ab6f72653183c4db0dfd6b254ddbf072e">More...</a><br/></td></tr>
<tr class="separator:ab6f72653183c4db0dfd6b254ddbf072e inherit pro_methods_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a300c229e76725eeddc69867f7ecea91f inherit pro_methods_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#a300c229e76725eeddc69867f7ecea91f">initial</a> (void)</td></tr>
<tr class="memdesc:a300c229e76725eeddc69867f7ecea91f inherit pro_methods_classost_1_1_thread"><td class="mdescLeft">&#160;</td><td class="mdescRight">The initial method is called by a newly created thread when it starts execution.  <a href="#a300c229e76725eeddc69867f7ecea91f">More...</a><br/></td></tr>
<tr class="separator:a300c229e76725eeddc69867f7ecea91f inherit pro_methods_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab73c94e3ca46cb24f4246e71fff73026 inherit pro_methods_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top">virtual void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#ab73c94e3ca46cb24f4246e71fff73026">getExtended</a> (void)</td></tr>
<tr class="memdesc:ab73c94e3ca46cb24f4246e71fff73026 inherit pro_methods_classost_1_1_thread"><td class="mdescLeft">&#160;</td><td class="mdescRight">Since <a class="el" href="classost_1_1_thread.html#aac5bc230c3bad5c837baa9e6d01f4c24" title="Gets the pointer to the Thread class which created the current thread object. ">getParent()</a> and <a class="el" href="namespaceost.html#a99c7f7d02b00922b0f5ee62fc3bb75fd">getThread()</a> only refer to an object of the <a class="el" href="classost_1_1_thread.html" title="Every thread of execution in an application is created by instantiating an object of a class derived ...">Thread</a> "base" type, this virtual method can be replaced in a derived class with something that returns data specific to the derived class that can still be accessed through the pointer returned by <a class="el" href="classost_1_1_thread.html#aac5bc230c3bad5c837baa9e6d01f4c24" title="Gets the pointer to the Thread class which created the current thread object. ">getParent()</a> and <a class="el" href="namespaceost.html#a99c7f7d02b00922b0f5ee62fc3bb75fd">getThread()</a>.  <a href="#ab73c94e3ca46cb24f4246e71fff73026">More...</a><br/></td></tr>
<tr class="separator:ab73c94e3ca46cb24f4246e71fff73026 inherit pro_methods_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a390827ad98d3402dd84ee9f128bcd564 inherit pro_methods_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#a390827ad98d3402dd84ee9f128bcd564">notify</a> (<a class="el" href="classost_1_1_thread.html">Thread</a> *)</td></tr>
<tr class="memdesc:a390827ad98d3402dd84ee9f128bcd564 inherit pro_methods_classost_1_1_thread"><td class="mdescLeft">&#160;</td><td class="mdescRight">When a thread terminates, it now sends a notification message to the parent thread which created it.  <a href="#a390827ad98d3402dd84ee9f128bcd564">More...</a><br/></td></tr>
<tr class="separator:a390827ad98d3402dd84ee9f128bcd564 inherit pro_methods_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd315d7c877b346970680d739da3e994 inherit pro_methods_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#acd315d7c877b346970680d739da3e994">exit</a> (void)</td></tr>
<tr class="memdesc:acd315d7c877b346970680d739da3e994 inherit pro_methods_classost_1_1_thread"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used to properly exit from a <a class="el" href="classost_1_1_thread.html" title="Every thread of execution in an application is created by instantiating an object of a class derived ...">Thread</a> derived <a class="el" href="classost_1_1_thread.html#add7d339d94b8a1ed2b2b0324a95b7e74" title="All threads execute by deriving the Run method of Thread. ">run()</a> or <a class="el" href="classost_1_1_thread.html#a300c229e76725eeddc69867f7ecea91f" title="The initial method is called by a newly created thread when it starts execution. ">initial()</a> method.  <a href="#acd315d7c877b346970680d739da3e994">More...</a><br/></td></tr>
<tr class="separator:acd315d7c877b346970680d739da3e994 inherit pro_methods_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1cda4748073c4d55e2d0504e7c9b09cc inherit pro_methods_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#a1cda4748073c4d55e2d0504e7c9b09cc">sync</a> (void)</td></tr>
<tr class="memdesc:a1cda4748073c4d55e2d0504e7c9b09cc inherit pro_methods_classost_1_1_thread"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used to wait for a join or cancel, in place of explicit exit.  <a href="#a1cda4748073c4d55e2d0504e7c9b09cc">More...</a><br/></td></tr>
<tr class="separator:a1cda4748073c4d55e2d0504e7c9b09cc inherit pro_methods_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8afe7a3330b69dff685415aae14657c inherit pro_methods_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#af8afe7a3330b69dff685415aae14657c">testCancel</a> (void)</td></tr>
<tr class="memdesc:af8afe7a3330b69dff685415aae14657c inherit pro_methods_classost_1_1_thread"><td class="mdescLeft">&#160;</td><td class="mdescRight">test a cancellation point for deferred thread cancellation.  <a href="#af8afe7a3330b69dff685415aae14657c">More...</a><br/></td></tr>
<tr class="separator:af8afe7a3330b69dff685415aae14657c inherit pro_methods_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4bff373a83b90f6f44d1519ef893e35b inherit pro_methods_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#a4bff373a83b90f6f44d1519ef893e35b">setCancel</a> (<a class="el" href="classost_1_1_thread.html#a24f333b09607b7c48a97e05865ada69b">Cancel</a> mode)</td></tr>
<tr class="memdesc:a4bff373a83b90f6f44d1519ef893e35b inherit pro_methods_classost_1_1_thread"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets thread cancellation mode.  <a href="#a4bff373a83b90f6f44d1519ef893e35b">More...</a><br/></td></tr>
<tr class="separator:a4bff373a83b90f6f44d1519ef893e35b inherit pro_methods_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad226f8bca85bf68ce71d90baca6434d6 inherit pro_methods_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#ad226f8bca85bf68ce71d90baca6434d6">setSuspend</a> (<a class="el" href="classost_1_1_thread.html#aff7bd364ce645eac95affbf74f1a7087">Suspend</a> mode)</td></tr>
<tr class="memdesc:ad226f8bca85bf68ce71d90baca6434d6 inherit pro_methods_classost_1_1_thread"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the thread's ability to be suspended from execution.  <a href="#ad226f8bca85bf68ce71d90baca6434d6">More...</a><br/></td></tr>
<tr class="separator:ad226f8bca85bf68ce71d90baca6434d6 inherit pro_methods_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae71c94c24733ed82f9b74c034744d002 inherit pro_methods_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#ae71c94c24733ed82f9b74c034744d002">terminate</a> (void)</td></tr>
<tr class="memdesc:ae71c94c24733ed82f9b74c034744d002 inherit pro_methods_classost_1_1_thread"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used by another thread to terminate the current thread.  <a href="#ae71c94c24733ed82f9b74c034744d002">More...</a><br/></td></tr>
<tr class="separator:ae71c94c24733ed82f9b74c034744d002 inherit pro_methods_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e574c2c5f388277527c9257524dd654 inherit pro_methods_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#a5e574c2c5f388277527c9257524dd654">clrParent</a> (void)</td></tr>
<tr class="memdesc:a5e574c2c5f388277527c9257524dd654 inherit pro_methods_classost_1_1_thread"><td class="mdescLeft">&#160;</td><td class="mdescRight">clear parent thread relationship.  <a href="#a5e574c2c5f388277527c9257524dd654">More...</a><br/></td></tr>
<tr class="separator:a5e574c2c5f388277527c9257524dd654 inherit pro_methods_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:adaf42df577b955fcea0dad9dd8a61202"><td class="memItemLeft" align="right" valign="top"><a class="el" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread_queue.html#adaf42df577b955fcea0dad9dd8a61202">timeout</a></td></tr>
<tr class="separator:adaf42df577b955fcea0dad9dd8a61202"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3202a4e136cd5e9b257b393a9984f3cd"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread_queue.html#a3202a4e136cd5e9b257b393a9984f3cd">started</a></td></tr>
<tr class="separator:a3202a4e136cd5e9b257b393a9984f3cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa36470ebc7660a7abe9bbcd85ec221aa"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classost_1_1_thread_queue.html#a2c4ca5c5c5cd0282aafb9a2f9004c980">data_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread_queue.html#aa36470ebc7660a7abe9bbcd85ec221aa">first</a></td></tr>
<tr class="separator:aa36470ebc7660a7abe9bbcd85ec221aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d34d11fd2535869d62c2c505e35f0a4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classost_1_1_thread_queue.html#a2c4ca5c5c5cd0282aafb9a2f9004c980">data_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread_queue.html#a5d34d11fd2535869d62c2c505e35f0a4">last</a></td></tr>
<tr class="separator:a5d34d11fd2535869d62c2c505e35f0a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1737937abcd8b410758d47d18b651e40"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classost_1_1_string.html">String</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread_queue.html#a1737937abcd8b410758d47d18b651e40">name</a></td></tr>
<tr class="separator:a1737937abcd8b410758d47d18b651e40"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_types_classost_1_1_thread"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classost_1_1_thread')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classost_1_1_thread.html">ost::Thread</a></td></tr>
<tr class="memitem:ab9538e839c06104af2974b77d2a5674d inherit pub_types_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#ab9538e839c06104af2974b77d2a5674d">Throw</a> { <a class="el" href="classost_1_1_thread.html#ab9538e839c06104af2974b77d2a5674da1b058025329425c90f383d124ee605e5">throwNothing</a>, 
<a class="el" href="classost_1_1_thread.html#ab9538e839c06104af2974b77d2a5674daea5957cd08cfecf17f366352bcf9ad80">throwObject</a>, 
<a class="el" href="classost_1_1_thread.html#ab9538e839c06104af2974b77d2a5674da8e51a6870e65238764becffff92d7f54">throwException</a>
 }</td></tr>
<tr class="memdesc:ab9538e839c06104af2974b77d2a5674d"><td class="mdescLeft">&#160;</td><td class="mdescRight">How to raise error.  <a href="classost_1_1_thread.html#ab9538e839c06104af2974b77d2a5674d">More...</a><br/></td></tr>
<tr class="separator:ab9538e839c06104af2974b77d2a5674d inherit pub_types_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24f333b09607b7c48a97e05865ada69b inherit pub_types_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#a24f333b09607b7c48a97e05865ada69b">Cancel</a> { <br/>
&#160;&#160;<a class="el" href="classost_1_1_thread.html#a24f333b09607b7c48a97e05865ada69babbf14157c17311ec31f0967032ecb357">cancelInitial</a> =0, 
<a class="el" href="classost_1_1_thread.html#a24f333b09607b7c48a97e05865ada69bab02b8cd8d899a693e8cbb86082f4ef16">cancelDeferred</a> =1, 
<a class="el" href="classost_1_1_thread.html#a24f333b09607b7c48a97e05865ada69ba57f820ea4f7a326c27cc504a213e167d">cancelImmediate</a>, 
<a class="el" href="classost_1_1_thread.html#a24f333b09607b7c48a97e05865ada69bae07cc9f6d3d7333c8cce543a8bb58215">cancelDisabled</a>, 
<br/>
&#160;&#160;<a class="el" href="classost_1_1_thread.html#a24f333b09607b7c48a97e05865ada69baa194b63cafc5387684afe7943fe3b5f0">cancelManual</a>, 
<a class="el" href="classost_1_1_thread.html#a24f333b09607b7c48a97e05865ada69badf753e6d700f194c1b8f695a9bd67554">cancelDefault</a> =cancelDeferred
<br/>
 }</td></tr>
<tr class="memdesc:a24f333b09607b7c48a97e05865ada69b"><td class="mdescLeft">&#160;</td><td class="mdescRight">How work cancellation.  <a href="classost_1_1_thread.html#a24f333b09607b7c48a97e05865ada69b">More...</a><br/></td></tr>
<tr class="separator:a24f333b09607b7c48a97e05865ada69b inherit pub_types_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff7bd364ce645eac95affbf74f1a7087 inherit pub_types_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#aff7bd364ce645eac95affbf74f1a7087">Suspend</a> { <a class="el" href="classost_1_1_thread.html#aff7bd364ce645eac95affbf74f1a7087a27f2f61f4bc18b64e9c25f73bb008a38">suspendEnable</a>, 
<a class="el" href="classost_1_1_thread.html#aff7bd364ce645eac95affbf74f1a7087a0e9f14f0e69d8c12c36a46d108a5074b">suspendDisable</a>
 }</td></tr>
<tr class="memdesc:aff7bd364ce645eac95affbf74f1a7087"><td class="mdescLeft">&#160;</td><td class="mdescRight">How work suspend.  <a href="classost_1_1_thread.html#aff7bd364ce645eac95affbf74f1a7087">More...</a><br/></td></tr>
<tr class="separator:aff7bd364ce645eac95affbf74f1a7087 inherit pub_types_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a511f08b9f1aef08b4f02e2ad225960ab inherit pub_types_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="classost_1_1_thread.html#ab9538e839c06104af2974b77d2a5674d">ost::Thread::Throw</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#a511f08b9f1aef08b4f02e2ad225960ab">Throw</a></td></tr>
<tr class="memdesc:a511f08b9f1aef08b4f02e2ad225960ab inherit pub_types_classost_1_1_thread"><td class="mdescLeft">&#160;</td><td class="mdescRight">How to raise error.  <a href="#a511f08b9f1aef08b4f02e2ad225960ab">More...</a><br/></td></tr>
<tr class="separator:a511f08b9f1aef08b4f02e2ad225960ab inherit pub_types_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d876c60edcf92d3d96121aacea441d0 inherit pub_types_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="classost_1_1_thread.html#a24f333b09607b7c48a97e05865ada69b">ost::Thread::Cancel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#a0d876c60edcf92d3d96121aacea441d0">Cancel</a></td></tr>
<tr class="memdesc:a0d876c60edcf92d3d96121aacea441d0 inherit pub_types_classost_1_1_thread"><td class="mdescLeft">&#160;</td><td class="mdescRight">How work cancellation.  <a href="#a0d876c60edcf92d3d96121aacea441d0">More...</a><br/></td></tr>
<tr class="separator:a0d876c60edcf92d3d96121aacea441d0 inherit pub_types_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a81069ba4a0bf16a0aa9f076aa725f0c1 inherit pub_types_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="classost_1_1_thread.html#aff7bd364ce645eac95affbf74f1a7087">ost::Thread::Suspend</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#a81069ba4a0bf16a0aa9f076aa725f0c1">Suspend</a></td></tr>
<tr class="memdesc:a81069ba4a0bf16a0aa9f076aa725f0c1 inherit pub_types_classost_1_1_thread"><td class="mdescLeft">&#160;</td><td class="mdescRight">How work suspend.  <a href="#a81069ba4a0bf16a0aa9f076aa725f0c1">More...</a><br/></td></tr>
<tr class="separator:a81069ba4a0bf16a0aa9f076aa725f0c1 inherit pub_types_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_static_methods_classost_1_1_mutex"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classost_1_1_mutex')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classost_1_1_mutex.html">ost::Mutex</a></td></tr>
<tr class="memitem:a83b66f786e344b5192a3993d319aa735 inherit pub_static_methods_classost_1_1_mutex"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_mutex.html#a83b66f786e344b5192a3993d319aa735">setDebug</a> (bool mode)</td></tr>
<tr class="memdesc:a83b66f786e344b5192a3993d319aa735 inherit pub_static_methods_classost_1_1_mutex"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable or disable deadlock debugging.  <a href="#a83b66f786e344b5192a3993d319aa735">More...</a><br/></td></tr>
<tr class="separator:a83b66f786e344b5192a3993d319aa735 inherit pub_static_methods_classost_1_1_mutex"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_static_methods_classost_1_1_thread"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classost_1_1_thread')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classost_1_1_thread.html">ost::Thread</a></td></tr>
<tr class="memitem:aaad41a9f7962bdc3058a429df48246fd inherit pub_static_methods_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classost_1_1_thread.html">Thread</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#aaad41a9f7962bdc3058a429df48246fd">get</a> (void)</td></tr>
<tr class="separator:aaad41a9f7962bdc3058a429df48246fd inherit pub_static_methods_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:accd29b724539d63a8495d954f9f56c72 inherit pub_static_methods_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#accd29b724539d63a8495d954f9f56c72">setStack</a> (size_t size=0)</td></tr>
<tr class="memdesc:accd29b724539d63a8495d954f9f56c72 inherit pub_static_methods_classost_1_1_thread"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set base stack limit before manual stack sizes have effect.  <a href="#accd29b724539d63a8495d954f9f56c72">More...</a><br/></td></tr>
<tr class="separator:accd29b724539d63a8495d954f9f56c72 inherit pub_static_methods_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a663d960e8599194f3b25169915c22fb6 inherit pub_static_methods_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#a663d960e8599194f3b25169915c22fb6">sleep</a> (<a class="el" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> msec)</td></tr>
<tr class="memdesc:a663d960e8599194f3b25169915c22fb6 inherit pub_static_methods_classost_1_1_thread"><td class="mdescLeft">&#160;</td><td class="mdescRight">A thread-safe sleep call.  <a href="#a663d960e8599194f3b25169915c22fb6">More...</a><br/></td></tr>
<tr class="separator:a663d960e8599194f3b25169915c22fb6 inherit pub_static_methods_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f4a4f9872ed8f80a591e6b020ecf5d7 inherit pub_static_methods_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#a3f4a4f9872ed8f80a591e6b020ecf5d7">yield</a> (void)</td></tr>
<tr class="memdesc:a3f4a4f9872ed8f80a591e6b020ecf5d7 inherit pub_static_methods_classost_1_1_thread"><td class="mdescLeft">&#160;</td><td class="mdescRight">Yields the current thread's CPU time slice to allow another thread to begin immediate execution.  <a href="#a3f4a4f9872ed8f80a591e6b020ecf5d7">More...</a><br/></td></tr>
<tr class="separator:a3f4a4f9872ed8f80a591e6b020ecf5d7 inherit pub_static_methods_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0272b6a8de586ee5ee2464bbdb030392 inherit pub_static_methods_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classost_1_1_thread.html#ab9538e839c06104af2974b77d2a5674d">Throw</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#a0272b6a8de586ee5ee2464bbdb030392">getException</a> (void)</td></tr>
<tr class="memdesc:a0272b6a8de586ee5ee2464bbdb030392 inherit pub_static_methods_classost_1_1_thread"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get exception mode of the current thread.  <a href="#a0272b6a8de586ee5ee2464bbdb030392">More...</a><br/></td></tr>
<tr class="separator:a0272b6a8de586ee5ee2464bbdb030392 inherit pub_static_methods_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9f30b27ca1322ccc3325ba9ca5157fa inherit pub_static_methods_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#ae9f30b27ca1322ccc3325ba9ca5157fa">setException</a> (<a class="el" href="classost_1_1_thread.html#ab9538e839c06104af2974b77d2a5674d">Throw</a> mode)</td></tr>
<tr class="memdesc:ae9f30b27ca1322ccc3325ba9ca5157fa inherit pub_static_methods_classost_1_1_thread"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set exception mode of the current thread.  <a href="#ae9f30b27ca1322ccc3325ba9ca5157fa">More...</a><br/></td></tr>
<tr class="separator:ae9f30b27ca1322ccc3325ba9ca5157fa inherit pub_static_methods_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a599880181a0aeaef8a0ddedeeceddb9a inherit pub_static_methods_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classost_1_1_thread.html#a24f333b09607b7c48a97e05865ada69b">Cancel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#a599880181a0aeaef8a0ddedeeceddb9a">enterCancel</a> (void)</td></tr>
<tr class="memdesc:a599880181a0aeaef8a0ddedeeceddb9a inherit pub_static_methods_classost_1_1_thread"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is used to help build wrapper functions in libraries around system calls that should behave as cancellation points but don't.  <a href="#a599880181a0aeaef8a0ddedeeceddb9a">More...</a><br/></td></tr>
<tr class="separator:a599880181a0aeaef8a0ddedeeceddb9a inherit pub_static_methods_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abcad222419e4106ac21ce12605eb4fe7 inherit pub_static_methods_classost_1_1_thread"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_thread.html#abcad222419e4106ac21ce12605eb4fe7">exitCancel</a> (<a class="el" href="classost_1_1_thread.html#a24f333b09607b7c48a97e05865ada69b">Cancel</a> cancel)</td></tr>
<tr class="memdesc:abcad222419e4106ac21ce12605eb4fe7 inherit pub_static_methods_classost_1_1_thread"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is used to restore a cancel block.  <a href="#abcad222419e4106ac21ce12605eb4fe7">More...</a><br/></td></tr>
<tr class="separator:abcad222419e4106ac21ce12605eb4fe7 inherit pub_static_methods_classost_1_1_thread"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Somewhat generic queue processing class to establish a producer consumer queue. </p>
<p>This may be used to buffer cdr records, or for other purposes where an in-memory queue is needed for rapid posting. This class is derived from <a class="el" href="classost_1_1_mutex.html" title="The Mutex class is used to protect a section of code so that at any given time only a single thread c...">Mutex</a> and maintains a linked list. A thread is used to dequeue data and pass it to a callback method that is used in place of "run" for each item present on the queue. The conditional is used to signal the run thread when new data is posted.</p>
<p>This class was changed by Angelo Naselli to have a timeout on the queue</p>
<p>in memory data queue interface. </p>
<dl class="section author"><dt>Author</dt><dd>David Sugar <a href="#" onclick="location.href='mai'+'lto:'+'dyf'+'et'+'@os'+'te'+'l.c'+'om'; return false;">dyfet<span style="display: none;">.nosp@m.</span>@ost<span style="display: none;">.nosp@m.</span>el.co<span style="display: none;">.nosp@m.</span>m</a> </dd></dl>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a class="anchor" id="a2c4ca5c5c5cd0282aafb9a2f9004c980"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structost_1_1_thread_queue_1_1__data.html">ost::ThreadQueue::_data</a>    <a class="el" href="classost_1_1_thread_queue.html#a2c4ca5c5c5cd0282aafb9a2f9004c980">ost::ThreadQueue::data_t</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="aa604895a1e9884e8a33d71542eab5fac"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ost::ThreadQueue::ThreadQueue </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>pri</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>stack</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create instance of our queue and give it a process priority. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">id</td><td>queue ID. </td></tr>
    <tr><td class="paramname">pri</td><td>process priority. </td></tr>
    <tr><td class="paramname">stack</td><td>stack size. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a8843f32e3bb271998fab06a6acabf256"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual ost::ThreadQueue::~ThreadQueue </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Destroy the queue. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a73e81c6abad4dd4758ea95171f67a42b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void ost::ThreadQueue::final </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Reimplemented from <a class="el" href="classost_1_1_thread.html#a6fb521eb3d23c51925472a3fe0abf327">ost::Thread</a>.</p>

</div>
</div>
<a class="anchor" id="a3699f0fc2d626367c17afd8e411943d3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void ost::ThreadQueue::onTimer </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>A derivable method to call when the timout is expired. </p>

</div>
</div>
<a class="anchor" id="aec4bca4a2933cd3063f76ac325774c35"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ost::ThreadQueue::post </td>
          <td>(</td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Put some unspecified data into this queue. </p>
<p>A new qd structure is created and sized to contain a copy of the actual content.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">data</td><td>pointer to data. </td></tr>
    <tr><td class="paramname">len</td><td>size of data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ae26b60d8e9a3b130a89bee13aae7069e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void ost::ThreadQueue::runQueue </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>data</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Virtual callback method to handle processing of a queued data items. </p>
<p>After the item is processed, it is deleted from memory. We can call multiple instances of runQueue in order if multiple items are waiting.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">data</td><td>item being dequed. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0813a4dc595164bc7216636503dd43c7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ost::ThreadQueue::setTimer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a>&#160;</td>
          <td class="paramname"><em>timeout</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the queue timeout. </p>
<p>When the timer expires, the <a class="el" href="classost_1_1_thread_queue.html#a3699f0fc2d626367c17afd8e411943d3" title="A derivable method to call when the timout is expired. ">onTimer()</a> method is called for the thread</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">timeout</td><td>timeout in milliseconds. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a2687b56a3be47b5e9739737dcecd6c9d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void ost::ThreadQueue::startQueue </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Start of dequeing. </p>
<p>Maybe we need to connect a database or something, so we have a virtual... </p>

</div>
</div>
<a class="anchor" id="a573ca3660b00d14f79fe70773cd2d668"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void ost::ThreadQueue::stopQueue </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>End of dequeing, we expect the queue is empty for now. </p>
<p>Maybe we need to disconnect a database or something, so we have another virtual. </p>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="aa36470ebc7660a7abe9bbcd85ec221aa"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classost_1_1_thread_queue.html#a2c4ca5c5c5cd0282aafb9a2f9004c980">data_t</a>* ost::ThreadQueue::first</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a5d34d11fd2535869d62c2c505e35f0a4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classost_1_1_thread_queue.html#a2c4ca5c5c5cd0282aafb9a2f9004c980">data_t</a> * ost::ThreadQueue::last</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a1737937abcd8b410758d47d18b651e40"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classost_1_1_string.html">String</a> ost::ThreadQueue::name</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a3202a4e136cd5e9b257b393a9984f3cd"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ost::ThreadQueue::started</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="adaf42df577b955fcea0dad9dd8a61202"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> ost::ThreadQueue::timeout</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="buffer_8h_source.html">buffer.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Oct 17 2013 23:24:57 for GNU CommonC++ by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</small></address>
</body>
</html>