Sophie

Sophie

distrib > Mandriva > current > i586 > media > main-updates > by-pkgid > ed376d6842ea322c25405e7c23b3bc12 > files > 327

libcommoncpp-devel-1.8.0-5.1mdv2010.1.i586.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"/>
<title>GNU CommonC++: ost::SerialService Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.3 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;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 class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="classes.html"><span>Class&nbsp;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="namespaceost.html">ost</a>::<a class="el" href="classost_1_1_serial_service.html">SerialService</a>
  </div>
</div>
<div class="contents">
<h1>ost::SerialService Class Reference</h1><!-- doxytag: class="ost::SerialService" --><!-- doxytag: inherits="ost::Thread,ost::Mutex" -->
<p>The <a class="el" href="classost_1_1_serial_service.html" title="The SerialService is a thead service object that is meant to service attached serial...">SerialService</a> is a thead service object that is meant to service attached serial ports.  
<a href="#_details">More...</a></p>

<p><code>#include &lt;<a class="el" href="serial_8h_source.html">serial.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for ost::SerialService:</div>
<div class="dynsection">
 <div class="center">
  <img src="classost_1_1_serial_service.png" usemap="#ost::SerialService_map" alt=""/>
  <map id="ost::SerialService_map" name="ost::SerialService_map">
<area href="classost_1_1_thread.html" alt="ost::Thread" shape="rect" coords="0,0,111,24"/>
<area href="classost_1_1_mutex.html" alt="ost::Mutex" shape="rect" coords="121,0,232,24"/>
</map>
 </div>
</div>

<p><a href="classost_1_1_serial_service-members.html">List of all members.</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial_service.html#a66efc4ea33b87c147ab0a207eb35a208">update</a> (unsigned char flag=0xff)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Notify service thread that a port has been added or removed, or a timer changed, so that a new schedule can be computed for expiring attached ports.  <a href="#a66efc4ea33b87c147ab0a207eb35a208"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial_service.html#a976999ced6e562ef85e13482c4a62667">SerialService</a> (int pri=0, size_t stack=0, const char *id=NULL)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a service thread for attaching serial ports.  <a href="#a976999ced6e562ef85e13482c4a62667"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial_service.html#a51858284192f8089ab3cdda7eb431a0c">~SerialService</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Terminate the service thread and update attached objects.  <a href="#a51858284192f8089ab3cdda7eb431a0c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial_service.html#a9b613f73f7222745076f9f78aff7c78c">getCount</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get current reference count.  <a href="#a9b613f73f7222745076f9f78aff7c78c"></a><br/></td></tr>
<tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial_service.html#a39e53b68c6108d78ac3afea01d7cba05">onUpdate</a> (unsigned char flag)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A virtual handler for processing user defined update requests (1-254) which have been posted through Update.  <a href="#a39e53b68c6108d78ac3afea01d7cba05"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial_service.html#a857ecbd9c831d019400b5d9e9a02a6ac">onEvent</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A virtual handler for event loop calls.  <a href="#a857ecbd9c831d019400b5d9e9a02a6ac"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial_service.html#aeb873fd33e21aeebf78cb291a170fe27">onCallback</a> (<a class="el" href="classost_1_1_serial_port.html">SerialPort</a> *port)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A virtual handler for adding support for additional callback events into <a class="el" href="classost_1_1_serial_port.html" title="The serial port is an internal class which is attached to and then serviced by a...">SerialPort</a>.  <a href="#aeb873fd33e21aeebf78cb291a170fe27"></a><br/></td></tr>
<tr><td colspan="2"><h2>Friends</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial_service.html#a84d7b24f575569e86cb63b1f8c62e84a">SerialPort</a></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>The <a class="el" href="classost_1_1_serial_service.html" title="The SerialService is a thead service object that is meant to service attached serial...">SerialService</a> is a thead service object that is meant to service attached serial ports. </p>
<p>Multiple pool objects may be created and multiple serial ports may be attached to the same thread of of execution. This allows one to balance threads and the serial ports they service.</p>
<p>The TTYPort and TTYService classes are used to form thread-pool serviced serial I/O protocol sets. These can be used when one has a large number of serial devices to manage, and a single (or limited number of) thread(s) can then be used to service the tty port objects present. Each tty port supports a timer control and several virtual methods that the service thread can call when events occur. This model provides for "callback" event management, whereby the service thread performs a "callback" into the port object when events occur. Specific events supported include the expiration of a TTYPort timer, pending input data waiting to be read, and "sighup" connection breaks.</p>
<dl class="author"><dt><b>Author:</b></dt><dd>David Sugar &lt;<a href="mailto:dyfet@ostel.com">dyfet@ostel.com</a>&gt; <a class="el" href="classost_1_1_thread.html" title="Every thread of execution in an application is created by instantiating an object...">Thread</a> pool service for serial ports. </dd></dl>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a976999ced6e562ef85e13482c4a62667"></a><!-- doxytag: member="ost::SerialService::SerialService" ref="a976999ced6e562ef85e13482c4a62667" args="(int pri=0, size_t stack=0, const char *id=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ost::SerialService::SerialService </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>pri</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>stack</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>id</em> = <code>NULL</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a service thread for attaching serial ports. </p>
<p>The thread begins execution with the first attached port.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>pri</em>&nbsp;</td><td>of this thread to run under. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>stack</em>&nbsp;</td><td>stack size. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>stack ID. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a51858284192f8089ab3cdda7eb431a0c"></a><!-- doxytag: member="ost::SerialService::~SerialService" ref="a51858284192f8089ab3cdda7eb431a0c" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual ost::SerialService::~SerialService </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Terminate the service thread and update attached objects. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a9b613f73f7222745076f9f78aff7c78c"></a><!-- doxytag: member="ost::SerialService::getCount" ref="a9b613f73f7222745076f9f78aff7c78c" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ost::SerialService::getCount </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get current reference count. </p>
<p>This can be used when selecting the lead used service handler from a pool.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>count of active ports. </dd></dl>

</div>
</div>
<a class="anchor" id="aeb873fd33e21aeebf78cb291a170fe27"></a><!-- doxytag: member="ost::SerialService::onCallback" ref="aeb873fd33e21aeebf78cb291a170fe27" args="(SerialPort *port)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void ost::SerialService::onCallback </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classost_1_1_serial_port.html">SerialPort</a> *&nbsp;</td>
          <td class="paramname"> <em>port</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A virtual handler for adding support for additional callback events into <a class="el" href="classost_1_1_serial_port.html" title="The serial port is an internal class which is attached to and then serviced by a...">SerialPort</a>. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>port</em>&nbsp;</td><td>serial port currently being evaluated. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a857ecbd9c831d019400b5d9e9a02a6ac"></a><!-- doxytag: member="ost::SerialService::onEvent" ref="a857ecbd9c831d019400b5d9e9a02a6ac" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void ost::SerialService::onEvent </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A virtual handler for event loop calls. </p>
<p>This can be used to extend event loop processing. </p>

</div>
</div>
<a class="anchor" id="a39e53b68c6108d78ac3afea01d7cba05"></a><!-- doxytag: member="ost::SerialService::onUpdate" ref="a39e53b68c6108d78ac3afea01d7cba05" args="(unsigned char flag)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void ost::SerialService::onUpdate </td>
          <td>(</td>
          <td class="paramtype">unsigned char&nbsp;</td>
          <td class="paramname"> <em>flag</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A virtual handler for processing user defined update requests (1-254) which have been posted through Update. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>flag</em>&nbsp;</td><td>of update request. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a66efc4ea33b87c147ab0a207eb35a208"></a><!-- doxytag: member="ost::SerialService::update" ref="a66efc4ea33b87c147ab0a207eb35a208" args="(unsigned char flag=0xff)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ost::SerialService::update </td>
          <td>(</td>
          <td class="paramtype">unsigned char&nbsp;</td>
          <td class="paramname"> <em>flag</em> = <code>0xff</code></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Notify service thread that a port has been added or removed, or a timer changed, so that a new schedule can be computed for expiring attached ports. </p>
<p>This can also be used to pass requests to the OnUpdate() event handler.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>flag</em>&nbsp;</td><td>event for OnUpdate, termination, or reschedule. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/><h2>Friends And Related Function Documentation</h2>
<a class="anchor" id="a84d7b24f575569e86cb63b1f8c62e84a"></a><!-- doxytag: member="ost::SerialService::SerialPort" ref="a84d7b24f575569e86cb63b1f8c62e84a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">friend class <a class="el" href="classost_1_1_serial_port.html">SerialPort</a><code> [friend]</code></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="serial_8h_source.html">serial.h</a></li>
</ul>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Nov 12 09:55:47 2010 for GNU CommonC++ by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>