<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>ost::PosixThread class Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body bgcolor="#ffffff"> <!-- Generated by Doxygen 1.2.10 --> <center> <a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="namespaces.html">Namespace List</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="classes.html">Alphabetical List</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="namespacemembers.html">Namespace Members</a> <a class="qindex" href="functions.html">Compound Members</a> <a class="qindex" href="globals.html">File Members</a> </center> <hr><h1>ost::PosixThread Class Reference</h1><code>#include <<a class="el" href="thread_8h-source.html">thread.h</a>></code> <p> <p>Inheritance diagram for ost::PosixThread:: <p><center><img src="classost_1_1_posix_thread.gif" usemap="#ost::PosixThread_map" border="0"></center> <map name="ost::PosixThread_map"> <area href="classost_1_1_thread.html" alt="ost::Thread" shape="rect" coords="0,0,104,24"> </map> <a href="classost_1_1_posix_thread-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0> <tr><td colspan=2><br><h2>Public Methods</h2></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classost_1_1_posix_thread.html#a0">SignalThread</a> (int signo)</td></tr> <tr><td> </td><td><font size=-1><em>Delivers a Posix signal to the current thread.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> <tr><td colspan=2><br><h2>Protected Methods</h2></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classost_1_1_posix_thread.html#b0">SignalParent</a> (<a class="el" href="namespaceost.html#a141">signo_t</a> signo)</td></tr> <tr><td> </td><td><font size=-1><em>In the Posix version of Common C++, this can be used to send a signal into the parent thread of the current object.</em> <a href="#b0">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classost_1_1_posix_thread.html#b1">SignalMain</a> (<a class="el" href="namespaceost.html#a141">signo_t</a> signo)</td></tr> <tr><td> </td><td><font size=-1><em>In the Posix version of Common C++, this can be used to send a signal into the main application thread.</em> <a href="#b1">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>virtual void </td><td valign=bottom><a class="el" href="classost_1_1_posix_thread.html#b2">OnTimer</a> (void)</td></tr> <tr><td> </td><td><font size=-1><em>A derivable method to call when a SIGALRM is being delivered to a specific thread.</em> <a href="#b2">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>virtual void </td><td valign=bottom><a class="el" href="classost_1_1_posix_thread.html#b3">OnHangup</a> (void)</td></tr> <tr><td> </td><td><font size=-1><em>A derived method to handle hangup events being delivered to a specific thread.</em> <a href="#b3">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>virtual void </td><td valign=bottom><a class="el" href="classost_1_1_posix_thread.html#b4">OnException</a> (void)</td></tr> <tr><td> </td><td><font size=-1><em>A derived method to call when a SIGABRT is being delivered to a specific thread.</em> <a href="#b4">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>virtual void </td><td valign=bottom><a class="el" href="classost_1_1_posix_thread.html#b5">OnDisconnect</a> (void)</td></tr> <tr><td> </td><td><font size=-1><em>A derived method to call when a SIGPIPE is being delivered to a specific thread.</em> <a href="#b5">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>virtual void </td><td valign=bottom><a class="el" href="classost_1_1_posix_thread.html#b6">OnPolling</a> (void)</td></tr> <tr><td> </td><td><font size=-1><em>A derived method to handle asynchronous I/O requests delivered to the specified thread.</em> <a href="#b6">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>virtual void </td><td valign=bottom><a class="el" href="classost_1_1_posix_thread.html#b7">OnSignal</a> (int signo)</td></tr> <tr><td> </td><td><font size=-1><em>A derivable method to call for delivering a signal event to a specified thread.</em> <a href="#b7">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classost_1_1_posix_thread.html#b8">setTimer</a> (<a class="el" href="thread_8h.html#a11">timeout_t</a> timer)</td></tr> <tr><td> </td><td><font size=-1><em>Used to specify a timeout event that can be delivered to the current thread via SIGALRM.</em> <a href="#b8">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a class="el" href="thread_8h.html#a11">timeout_t</a> </td><td valign=bottom><a class="el" href="classost_1_1_posix_thread.html#b9">getTimer</a> (void)</td></tr> <tr><td> </td><td><font size=-1><em>Gets the time remaining for the current threads timer before it expires.</em> <a href="#b9">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classost_1_1_posix_thread.html#b10">endTimer</a> (void)</td></tr> <tr><td> </td><td><font size=-1><em>Terminates the timer before the timeout period has expired.</em> <a href="#b10">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classost_1_1_posix_thread.html#b11">WaitSignal</a> (<a class="el" href="namespaceost.html#a141">signo_t</a> signo)</td></tr> <tr><td> </td><td><font size=-1><em>Used to wait on a Posix signal from another thread.</em> <a href="#b11">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classost_1_1_posix_thread.html#b12">setSignal</a> (int signo, bool mode)</td></tr> <tr><td> </td><td><font size=-1><em>Used to enable or disable a signal within the current thread.</em> <a href="#b12">More...</a><em></em></font><br><br></td></tr> <tr><td colspan=2><br><h2>Friends</h2></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classost_1_1_posix_thread.html#l0">execHandler</a> (<a class="el" href="classost_1_1_thread.html">Thread</a> *th)</td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classost_1_1_posix_thread.html#l1">sigHandler</a> (int signo)</td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classost_1_1_posix_thread.html#l2">siginstall</a> (int signo)</td></tr> <tr><td> </td><td><font size=-1><em>Install a signal handler for use by threads and the <a class="el" href="classost_1_1_posix_thread.html#b7">OnSignal</a>() event notification handler.</em> <a href="#l2">More...</a><em></em></font><br><br></td></tr> </table> <hr><h2>Member Function Documentation</h2> <a name="b5" doxytag="ost::PosixThread::OnDisconnect"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> virtual void ost::PosixThread::OnDisconnect </td> <td class="md">( </td> <td class="md">void</td> <td class="mdname1"> </td> <td class="md">) </td> <td class="md"><code> [inline, protected, virtual]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> A derived method to call when a SIGPIPE is being delivered to a specific thread. <p> </td> </tr> </table> <a name="b4" doxytag="ost::PosixThread::OnException"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> virtual void ost::PosixThread::OnException </td> <td class="md">( </td> <td class="md">void</td> <td class="mdname1"> </td> <td class="md">) </td> <td class="md"><code> [inline, protected, virtual]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> A derived method to call when a SIGABRT is being delivered to a specific thread. <p> </td> </tr> </table> <a name="b3" doxytag="ost::PosixThread::OnHangup"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> virtual void ost::PosixThread::OnHangup </td> <td class="md">( </td> <td class="md">void</td> <td class="mdname1"> </td> <td class="md">) </td> <td class="md"><code> [inline, protected, virtual]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> A derived method to handle hangup events being delivered to a specific thread. <p> </td> </tr> </table> <a name="b6" doxytag="ost::PosixThread::OnPolling"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> virtual void ost::PosixThread::OnPolling </td> <td class="md">( </td> <td class="md">void</td> <td class="mdname1"> </td> <td class="md">) </td> <td class="md"><code> [inline, protected, virtual]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> A derived method to handle asynchronous I/O requests delivered to the specified thread. <p> </td> </tr> </table> <a name="b7" doxytag="ost::PosixThread::OnSignal"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> virtual void ost::PosixThread::OnSignal </td> <td class="md">( </td> <td class="md">int</td> <td class="mdname1"> <em>signo</em> </td> <td class="md">) </td> <td class="md"><code> [inline, protected, virtual]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> A derivable method to call for delivering a signal event to a specified thread. <p> <dl compact><dt><b> Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>signo </em> </td><td> posix signal id. </td></tr> </table> </dl> </td> </tr> </table> <a name="b2" doxytag="ost::PosixThread::OnTimer"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> virtual void ost::PosixThread::OnTimer </td> <td class="md">( </td> <td class="md">void</td> <td class="mdname1"> </td> <td class="md">) </td> <td class="md"><code> [inline, protected, virtual]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> A derivable method to call when a SIGALRM is being delivered to a specific thread. <p> </td> </tr> </table> <a name="b1" doxytag="ost::PosixThread::SignalMain"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void ost::PosixThread::SignalMain </td> <td class="md">( </td> <td class="md"><a class="el" href="namespaceost.html#a141">signo_t</a></td> <td class="mdname1"> <em>signo</em> </td> <td class="md">) </td> <td class="md"><code> [inline, protected]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> In the Posix version of Common C++, this can be used to send a signal into the main application thread. <p> <dl compact><dt><b> Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>signo </em> </td><td> a posix signal id. </td></tr> </table> </dl> </td> </tr> </table> <a name="b0" doxytag="ost::PosixThread::SignalParent"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void ost::PosixThread::SignalParent </td> <td class="md">( </td> <td class="md"><a class="el" href="namespaceost.html#a141">signo_t</a></td> <td class="mdname1"> <em>signo</em> </td> <td class="md">) </td> <td class="md"><code> [inline, protected]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> In the Posix version of Common C++, this can be used to send a signal into the parent thread of the current object. <p> <dl compact><dt><b> Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>signo </em> </td><td> a posix signal id. </td></tr> </table> </dl> </td> </tr> </table> <a name="a0" doxytag="ost::PosixThread::SignalThread"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void ost::PosixThread::SignalThread </td> <td class="md">( </td> <td class="md">int</td> <td class="mdname1"> <em>signo</em> </td> <td class="md">) </td> <td class="md"><code> [inline]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Delivers a Posix signal to the current thread. <p> <dl compact><dt><b> Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>signo </em> </td><td> a posix signal id. </td></tr> </table> </dl> </td> </tr> </table> <a name="b11" doxytag="ost::PosixThread::WaitSignal"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void ost::PosixThread::WaitSignal </td> <td class="md">( </td> <td class="md"><a class="el" href="namespaceost.html#a141">signo_t</a></td> <td class="mdname1"> <em>signo</em> </td> <td class="md">) </td> <td class="md"><code> [protected]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Used to wait on a Posix signal from another thread. <p> This can be used as a crude rondevious/synchronization method between threads.<dl compact><dt><b> Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>signo </em> </td><td> a posix signal id. </td></tr> </table> </dl> </td> </tr> </table> <a name="b10" doxytag="ost::PosixThread::endTimer"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void ost::PosixThread::endTimer </td> <td class="md">( </td> <td class="md">void</td> <td class="mdname1"> </td> <td class="md">) </td> <td class="md"><code> [protected]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Terminates the timer before the timeout period has expired. <p> This prevents the timer from sending it's SIGALRM and makes the timer available to other threads. </td> </tr> </table> <a name="b9" doxytag="ost::PosixThread::getTimer"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> <a class="el" href="thread_8h.html#a11">timeout_t</a> ost::PosixThread::getTimer </td> <td class="md">( </td> <td class="md">void</td> <td class="mdname1"> </td> <td class="md">) </td> <td class="md"><code> [protected]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Gets the time remaining for the current threads timer before it expires. <p> <dl compact><dt><b> Returns: </b><dd> time remaining before timer expires in milliseconds. </dl> </td> </tr> </table> <a name="b12" doxytag="ost::PosixThread::setSignal"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void ost::PosixThread::setSignal </td> <td class="md">( </td> <td class="md">int</td> <td class="mdname"> <em>signo</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md">bool</td> <td class="mdname"> <em>mode</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"><code> [protected]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Used to enable or disable a signal within the current thread. <p> <dl compact><dt><b> Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>signo </em> </td><td> posix signal id. </td></tr> <tr><td valign=top><em>active </em> </td><td> set to true to enable. </td></tr> </table> </dl> </td> </tr> </table> <a name="b8" doxytag="ost::PosixThread::setTimer"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void ost::PosixThread::setTimer </td> <td class="md">( </td> <td class="md"><a class="el" href="thread_8h.html#a11">timeout_t</a></td> <td class="mdname1"> <em>timer</em> </td> <td class="md">) </td> <td class="md"><code> [protected]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Used to specify a timeout event that can be delivered to the current thread via SIGALRM. <p> When the timer expires, the <a class="el" href="classost_1_1_posix_thread.html#b2">OnTimer</a>() method is called for the thread. At present, only one thread timer can be active at any given time. On some operating systems (including Linux) a timer can be active on each thread.<dl compact><dt><b> Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>timer </em> </td><td> timeout in milliseconds. </td></tr> </table> </dl> </td> </tr> </table> <hr><h2>Friends And Related Function Documentation</h2> <a name="l0" doxytag="ost::PosixThread::execHandler"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void execHandler </td> <td class="md">( </td> <td class="md"><a class="el" href="classost_1_1_thread.html">Thread</a> *</td> <td class="mdname1"> <em>th</em> </td> <td class="md">) </td> <td class="md"><code> [friend]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> <p> Reimplemented from <a class="el" href="classost_1_1_thread.html#l3">ost::Thread</a>. </td> </tr> </table> <a name="l1" doxytag="ost::PosixThread::sigHandler"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void sigHandler </td> <td class="md">( </td> <td class="md">int</td> <td class="mdname1"> <em>signo</em> </td> <td class="md">) </td> <td class="md"><code> [friend]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="l2" doxytag="ost::PosixThread::siginstall"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void siginstall </td> <td class="md">( </td> <td class="md">int</td> <td class="mdname1"> <em>signo</em> </td> <td class="md">) </td> <td class="md"><code> [friend]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Install a signal handler for use by threads and the <a class="el" href="classost_1_1_posix_thread.html#b7">OnSignal</a>() event notification handler. <p> <dl compact><dt><b> Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>signo </em> </td><td> posix signal id. </td></tr> </table> </dl> </td> </tr> </table> <hr>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="thread_8h-source.html">thread.h</a></ul> <hr><address><small>Generated at Fri Jan 4 18:51:50 2002 for CommonC++ by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.gif" alt="doxygen" align="middle" border=0 width=110 height=53></a>1.2.10 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>, © 1997-2001</small></address> </body> </html>