Sophie

Sophie

distrib > Mandriva > 8.2 > i586 > media > contrib > by-pkgid > 68d373e54fb21da3730c08bede406633 > files > 301

libCommonC++1.9_3-devel-1.9.4-2mdk.i586.rpm

<!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>SerialService 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> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="namespacemembers.html">Namespace Members</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>SerialService  Class Reference</h1>The SerialService is a thead service object that is meant to service attached serial ports. <a class="el" href="class_thread.html">Thread</a> pool service for serial ports. 
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="serial_8h-source.html">serial.h</a>&gt;</code>
<p>
<p>Inheritance diagram for SerialService::
<p><center><img src="class_serial_service.gif" usemap="#SerialService_map" border="0"></center>
<map name="SerialService_map">
<area href="class_thread.html" alt="Thread" shape="rect" coords="0,0,89,24">
<area href="class_mutex.html" alt="Mutex" shape="rect" coords="99,0,188,24">
</map>
<a href="class_serial_service-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&nbsp;</td><td valign=bottom><a class="el" href="class_serial_service.html#a0">Update</a> (unsigned char flag=0xff)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>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.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="class_serial_service.html#a1">SerialService</a> (int pri=0)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Create a service thread for attaching serial ports.</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>virtual&nbsp;</td><td valign=bottom><a class="el" href="class_serial_service.html#a2">~SerialService</a> ()</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Terminate the service thread and update attached objects.</em> <a href="#a2">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="class_serial_service.html#a3">getCount</a> (void)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Get current reference count.</em> <a href="#a3">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>virtual void&nbsp;</td><td valign=bottom><a class="el" href="class_serial_service.html#b0">OnUpdate</a> (unsigned char flag)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>A virtual handler for processing user defined update requests (1-254) which have been posted through Update.</em> <a href="#b0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="class_serial_service.html#b1">OnEvent</a> (void)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>A virtual handler for event loop calls.</em> <a href="#b1">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="class_serial_service.html#b2">OnCallback</a> (<a class="el" href="class_serial_port.html">SerialPort</a> *port)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>A virtual handler for adding support for additional callback events into <a class="el" href="class_serial_port.html">SerialPort</a>.</em> <a href="#b2">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>class&nbsp;</td><td valign=bottom><a class="el" href="class_serial_service.html#l0">SerialPort</a></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
The SerialService is a thead service object that is meant to service attached serial ports. <a class="el" href="class_thread.html">Thread</a> pool service for serial ports.
<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>
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 compact><dt><b>
Author: </b><dd>
David Sugar &lt;<a href="mailto:dyfet@ostel.com">dyfet@ostel.com</a>&gt; </dl>
<p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a name="a1" doxytag="SerialService::SerialService"></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"> SerialService::SerialService </td>
          <td class="md">(&nbsp;</td>
          <td class="md">int</td>
          <td class="mdname1">&nbsp; <em>pri</em> = 0          </td>
          <td class="md">)&nbsp;</td>
          <td class="md"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Create a service thread for attaching serial ports.
<p>
The thread begins execution with the first attached port.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>pri
</em>&nbsp;</td><td>
of this thread to run under. </td></tr>
</table>
</dl>    </td>
  </tr>
</table>
<a name="a2" doxytag="SerialService::~SerialService"></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 SerialService::~SerialService </td>
          <td class="md">(&nbsp;</td>
          <td class="mdname1">&nbsp;          </td>
          <td class="md">)&nbsp;</td>
          <td class="md"><code> [virtual]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Terminate the service thread and update attached objects.
<p>
    </td>
  </tr>
</table>
<hr><h2>Member Function Documentation</h2>
<a name="b2" doxytag="SerialService::OnCallback"></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 SerialService::OnCallback </td>
          <td class="md">(&nbsp;</td>
          <td class="md"><a class="el" href="class_serial_port.html">SerialPort</a> *</td>
          <td class="mdname1">&nbsp; <em>port</em>          </td>
          <td class="md">)&nbsp;</td>
          <td class="md"><code> [inline, protected, virtual]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
A virtual handler for adding support for additional callback events into <a class="el" href="class_serial_port.html">SerialPort</a>.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>serial
</em>&nbsp;</td><td>
port currently being evaluated. </td></tr>
</table>
</dl>    </td>
  </tr>
</table>
<a name="b1" doxytag="SerialService::OnEvent"></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 SerialService::OnEvent </td>
          <td class="md">(&nbsp;</td>
          <td class="md">void</td>
          <td class="mdname1">&nbsp;          </td>
          <td class="md">)&nbsp;</td>
          <td class="md"><code> [inline, protected, virtual]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
A virtual handler for event loop calls.
<p>
This can be used to extend event loop processing.     </td>
  </tr>
</table>
<a name="b0" doxytag="SerialService::OnUpdate"></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 SerialService::OnUpdate </td>
          <td class="md">(&nbsp;</td>
          <td class="md">unsigned char</td>
          <td class="mdname1">&nbsp; <em>flag</em>          </td>
          <td class="md">)&nbsp;</td>
          <td class="md"><code> [inline, protected, virtual]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
A virtual handler for processing user defined update requests (1-254) which have been posted through Update.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>flag
</em>&nbsp;</td><td>
of update request. </td></tr>
</table>
</dl>    </td>
  </tr>
</table>
<a name="a0" doxytag="SerialService::Update"></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 SerialService::Update </td>
          <td class="md">(&nbsp;</td>
          <td class="md">unsigned char</td>
          <td class="mdname1">&nbsp; <em>flag</em> = 0xff          </td>
          <td class="md">)&nbsp;</td>
          <td class="md"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<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>
This can also be used to pass requests to the <a class="el" href="class_serial_service.html#b0">OnUpdate</a>() event handler.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>flag
</em>&nbsp;</td><td>
event for OnUpdate, termination, or reschedule. </td></tr>
</table>
</dl>    </td>
  </tr>
</table>
<a name="a3" doxytag="SerialService::getCount"></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"> int SerialService::getCount </td>
          <td class="md">(&nbsp;</td>
          <td class="md">void</td>
          <td class="mdname1">&nbsp;          </td>
          <td class="md">)&nbsp;</td>
          <td class="md"><code> [inline]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get current reference count.
<p>
This can be used when selecting the lead used service handler from a pool.
<p>
<dl compact><dt><b>
Returns: </b><dd>
count of active ports. </dl>    </td>
  </tr>
</table>
<hr><h2>Friends And Related Function Documentation</h2>
<a name="l0" doxytag="SerialService::SerialPort"></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"> friend class SerialPort<code> [friend]</code>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<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></ul>
<hr><address><small>Generated at Tue Nov 20 13:28:50 2001 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>,
 &copy;&nbsp;1997-2001</small></address>
</body>
</html>