Sophie

Sophie

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

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta name="robots" content="noindex">
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>serial.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body bgcolor="#ffffff">
<!-- Generated by Doxygen 1.2.5 on Thu Oct 4 15:32:58 2001 -->
<center>
<a class="qindex" href="index.html">Main Page</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="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>serial.h</h1><a href="serial_h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <font class="comment">// Copyright (C) 1999-2001 Open Source Telecom Corporation.</font>
00002 <font class="comment">//  </font>
00003 <font class="comment">// This program is free software; you can redistribute it and/or modify</font>
00004 <font class="comment">// it under the terms of the GNU General Public License as published by</font>
00005 <font class="comment">// the Free Software Foundation; either version 2 of the License, or</font>
00006 <font class="comment">// (at your option) any later version.</font>
00007 <font class="comment">// </font>
00008 <font class="comment">// This program is distributed in the hope that it will be useful,</font>
00009 <font class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</font>
00010 <font class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</font>
00011 <font class="comment">// GNU General Public License for more details.</font>
00012 <font class="comment">// </font>
00013 <font class="comment">// You should have received a copy of the GNU General Public License</font>
00014 <font class="comment">// along with this program; if not, write to the Free Software </font>
00015 <font class="comment">// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.</font>
00016 <font class="comment">// </font>
00017 <font class="comment">// As a special exception to the GNU General Public License, permission is </font>
00018 <font class="comment">// granted for additional uses of the text contained in its release </font>
00019 <font class="comment">// of APE.</font>
00020 <font class="comment">// </font>
00021 <font class="comment">// The exception is that, if you link the APE library with other files</font>
00022 <font class="comment">// to produce an executable, this does not by itself cause the</font>
00023 <font class="comment">// resulting executable to be covered by the GNU General Public License.</font>
00024 <font class="comment">// Your use of that executable is in no way restricted on account of</font>
00025 <font class="comment">// linking the APE library code into it.</font>
00026 <font class="comment">//</font>
00027 <font class="comment">// This exception does not however invalidate any other reasons why</font>
00028 <font class="comment">// the executable file might be covered by the GNU General Public License.</font>
00029 <font class="comment">//</font>
00030 <font class="comment">// This exception applies only to the code released under the </font>
00031 <font class="comment">// name APE.  If you copy code from other releases into a copy of</font>
00032 <font class="comment">// APE, as the General Public License permits, the exception does</font>
00033 <font class="comment">// not apply to the code that you add in this way.  To avoid misleading</font>
00034 <font class="comment">// anyone as to the status of such modified files, you must delete</font>
00035 <font class="comment">// this exception notice from them.</font>
00036 <font class="comment">// </font>
00037 <font class="comment">// If you write modifications of your own for APE, it is your choice</font>
00038 <font class="comment">// whether to permit this exception to apply to your modifications.</font>
00039 <font class="comment">// If you do not wish that, delete this exception notice.  </font>
00040 
00041 <font class="preprocessor">#ifndef __CCXX_SERIAL_H__</font>
00042 <font class="preprocessor"></font><font class="preprocessor">#define __CCXX_SERIAL_H__</font>
00043 <font class="preprocessor"></font>
00044 <font class="preprocessor">#ifndef __CCXX_THREAD_H__</font>
00045 <font class="preprocessor"></font><font class="preprocessor">#include &lt;cc++/<a class="code" href="thread_h.html">thread.h</a>&gt;</font>
00046 <font class="preprocessor">#else</font>
00047 <font class="preprocessor"></font><font class="preprocessor">#ifdef  __CCXX_NAMESPACE_H__</font>
00048 <font class="preprocessor"></font><font class="preprocessor">#include &lt;cc++/<a class="code" href="macros_h.html">macros.h</a>&gt;</font>
00049 <font class="preprocessor">#endif</font>
00050 <font class="preprocessor"></font><font class="preprocessor">#endif</font>
00051 <font class="preprocessor"></font>
00052 <font class="preprocessor">#include &lt;iostream&gt;</font>
00053 
<a name="l00054"></a><a class="code" href="serial_h.html#a24">00054</a> <font class="keyword">typedef</font> <font class="keyword">enum</font>
00055 {
00056         SERIAL_SUCCESS = 0,
00057         SERIAL_OPEN_NOTTY,
00058         SERIAL_OPEN_FAILED,
00059         SERIAL_SPEED_INVALID,
00060         SERIAL_FLOW_INVALID,
00061         SERIAL_PARITY_INVALID,
00062         SERIAL_CHARSIZE_INVALID,
00063         SERIAL_STOPBITS_INVALID,
00064         SERIAL_OPTION_INVALID,
00065         SERIAL_RESOURCE_FAILURE,
00066         SERIAL_OUTPUT_ERROR,
00067         SERIAL_INPUT_ERROR,
00068         SERIAL_TIMEOUT_ERROR,
00069         SERIAL_EXTENDED_ERROR
00070 } sioerror_t;
00071 
<a name="l00072"></a><a class="code" href="serial_h.html#a25">00072</a> <font class="keyword">typedef</font> <font class="keyword">enum</font>
00073 {
00074         SERIAL_FLOW_NONE,
00075         SERIAL_FLOW_SOFT,
00076         SERIAL_FLOW_HARD,
00077         SERIAL_FLOW_BOTH
00078 } sioflow_t;
00079 
<a name="l00080"></a><a class="code" href="serial_h.html#a26">00080</a> <font class="keyword">typedef</font> <font class="keyword">enum</font>
00081 {
00082         SERIAL_PARITY_NONE,
00083         SERIAL_PARITY_ODD,
00084         SERIAL_PARITY_EVEN
00085 } sioparity_t;
00086 
<a name="l00087"></a><a class="code" href="serial_h.html#a27">00087</a> <font class="keyword">typedef</font> <font class="keyword">enum</font>
00088 {
00089         SERIAL_PENDING_INPUT,
00090         SERIAL_PENDING_OUTPUT,
00091         SERIAL_PENDING_ERROR
00092 } siopend_t;
00093 
<a name="l00125"></a><a class="code" href="class_serial.html">00125</a> <font class="keyword">class </font><a class="code" href="class_serial.html">Serial</a>
00126 {
00127 <font class="keyword">private</font>:
00128         sioerror_t errid;
00129         <font class="keywordtype">char</font> *errstr;
00130 
00131         <font class="keyword">struct</font>
00132 <font class="keyword">        </font>{
00133                 <font class="keywordtype">bool</font> thrown: 1;
00134                 <font class="keywordtype">bool</font> linebuf: 1;
00135         } flags;
00136 
00137         <font class="keywordtype">void</font> *original, *current;
00138 
00142         <font class="keywordtype">void</font> initSerial(<font class="keywordtype">void</font>);
00143 
00144 <font class="keyword">protected</font>:
<a name="l00145"></a><a class="code" href="class_serial.html#n0">00145</a>         <font class="keywordtype">int</font> dev;
<a name="l00146"></a><a class="code" href="class_serial.html#n1">00146</a>         <font class="keywordtype">int</font> bufsize;
00147 
00155         sioerror_t <a class="code" href="class_serial.html#b0">Error</a>(sioerror_t error, <font class="keywordtype">char</font> *errstr = NULL);
00156 
<a name="l00163"></a><a class="code" href="class_serial.html#b1">00163</a>         <font class="keyword">inline</font> <font class="keywordtype">void</font> <a class="code" href="class_serial.html#b0">Error</a>(<font class="keywordtype">char</font> *errstr)<font class="keyword"></font>
00164 <font class="keyword">                </font>{<a class="code" href="class_serial.html#b0">Error</a>(SERIAL_EXTENDED_ERROR, errstr);};
00165 
00166 
<a name="l00173"></a><a class="code" href="class_serial.html#b2">00173</a>         <font class="keyword">inline</font> <font class="keywordtype">void</font> <a class="code" href="class_serial.html#b2">setError</a>(<font class="keywordtype">bool</font> enable)<font class="keyword"></font>
00174 <font class="keyword">                </font>{flags.thrown = !enable;};
00175 
00186         <font class="keywordtype">int</font> <a class="code" href="class_serial.html#b3">setPacketInput</a>(<font class="keywordtype">int</font> size, <font class="keywordtype">unsigned</font> <font class="keywordtype">char</font> btimer = 0);
00187 
00196         <font class="keywordtype">int</font> <a class="code" href="class_serial.html#b4">setLineInput</a>(<font class="keywordtype">char</font> newline = 13, <font class="keywordtype">char</font> nl1 = 0);
00197 
00201         <font class="keywordtype">void</font> <a class="code" href="class_serial.html#b5">Restore</a>(<font class="keywordtype">void</font>);
00202 
00206         <font class="keywordtype">void</font> <a class="code" href="class_serial.html#b6">flushInput</a>(<font class="keywordtype">void</font>);
00207 
00211         <font class="keywordtype">void</font> <a class="code" href="class_serial.html#b7">flushOutput</a>(<font class="keywordtype">void</font>);
00212 
00216         <font class="keywordtype">void</font> <a class="code" href="class_serial.html#b8">waitOutput</a>(<font class="keywordtype">void</font>);
00217 
00222         <font class="keywordtype">void</font> <a class="code" href="class_serial.html#b9">endSerial</a>(<font class="keywordtype">void</font>);
00223 
00229         <font class="keywordtype">void</font> <a class="code" href="class_serial.html#b10">initConfig</a>(<font class="keywordtype">void</font>);
00230 
00237         <a class="code" href="class_serial.html#b12">Serial</a>(<font class="keyword">const</font> <font class="keywordtype">char</font> *name);
00238 
<a name="l00243"></a><a class="code" href="class_serial.html#b12">00243</a>         <a class="code" href="class_serial.html#b12">Serial</a>()<font class="keyword"></font>
00244 <font class="keyword">                </font>{initSerial();};
00245 
00246 <font class="keyword">public</font>:
<a name="l00253"></a><a class="code" href="class_serial.html#a0">00253</a>         <font class="keyword">virtual</font> <a class="code" href="class_serial.html#a0">~Serial</a>()<font class="keyword"></font>
00254 <font class="keyword">                </font>{<a class="code" href="class_serial.html#b9">endSerial</a>();};
00255 
00260         <a class="code" href="class_serial.html">Serial</a> &amp;<a class="code" href="class_serial.html#a1">operator=</a>(<font class="keyword">const</font> <a class="code" href="class_serial.html">Serial</a> &amp;from);
00261         
00268         sioerror_t <a class="code" href="class_serial.html#a2">setSpeed</a>(<font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> speed);
00269 
00276         sioerror_t <a class="code" href="class_serial.html#a3">setCharBits</a>(<font class="keywordtype">int</font> bits);
00277 
00284         sioerror_t <a class="code" href="class_serial.html#a4">setParity</a>(sioparity_t parity);
00285 
00292         sioerror_t <a class="code" href="class_serial.html#a5">setStopBits</a>(<font class="keywordtype">int</font> bits);
00293 
00300         sioerror_t <a class="code" href="class_serial.html#a6">setFlowControl</a>(sioflow_t flow);
00301 
00307         <font class="keywordtype">void</font> <a class="code" href="class_serial.html#a7">toggleDTR</a>(timeout_t millisec);
00308 
00312         <font class="keywordtype">void</font> <a class="code" href="class_serial.html#a8">sendBreak</a>(<font class="keywordtype">void</font>);
00313 
<a name="l00320"></a><a class="code" href="class_serial.html#a9">00320</a>         <font class="keyword">inline</font> sioerror_t <a class="code" href="class_serial.html#a9">getErrorNumber</a>(<font class="keywordtype">void</font>)<font class="keyword"></font>
00321 <font class="keyword">                </font>{<font class="keywordflow">return</font> errid;};
00322 
<a name="l00329"></a><a class="code" href="class_serial.html#a10">00329</a>         <font class="keyword">inline</font> <font class="keywordtype">char</font> *<a class="code" href="class_serial.html#a10">getErrorString</a>(<font class="keywordtype">void</font>)<font class="keyword"></font>
00330 <font class="keyword">                </font>{<font class="keywordflow">return</font> errstr;};
00331 
<a name="l00339"></a><a class="code" href="class_serial.html#a11">00339</a>         <font class="keyword">inline</font> <font class="keywordtype">int</font> <a class="code" href="class_serial.html#a11">getBufferSize</a>(<font class="keywordtype">void</font>)<font class="keyword"></font>
00340 <font class="keyword">                </font>{<font class="keywordflow">return</font> bufsize;};
00341 
00351         <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="class_serial.html#a12">isPending</a>(siopend_t pend, timeout_t timeout = TIMEOUT_INF);
00352 };
00353 
00376 <font class="preprocessor">#if defined(STLPORT) || defined(__KCC)</font>
00377 <font class="preprocessor"></font><font class="preprocessor">#define iostream iostream_withassign</font>
00378 <font class="preprocessor"></font><font class="preprocessor">#endif</font>
<a name="l00379"></a><a class="code" href="class_ttystream.html">00379</a> <font class="preprocessor"></font><font class="keyword">class </font><a class="code" href="class_ttystream.html">TTYStream</a> : <font class="keyword">public</font> std::streambuf, <font class="keyword">public</font> std::iostream, <font class="keyword">public</font>
00380 <a class="code" href="class_serial.html">Serial</a>
00381 {
00382 <font class="keyword">private</font>:
00383         <font class="keywordtype">int</font> doallocate();
00384 
00385         <font class="keyword">friend</font> <a class="code" href="class_ttystream.html">TTYStream</a>&amp; <a class="code" href="class_ttystream.html#l0">crlf</a>(<a class="code" href="class_ttystream.html">TTYStream</a>&amp;);
00386         <font class="keyword">friend</font> <a class="code" href="class_ttystream.html">TTYStream</a>&amp; <a class="code" href="class_ttystream.html#l1">lfcr</a>(<a class="code" href="class_ttystream.html">TTYStream</a>&amp;);
00387 
00388 <font class="keyword">protected</font>:
<a name="l00389"></a><a class="code" href="class_ttystream.html#n1">00389</a>         <font class="keywordtype">char</font> *gbuf, *pbuf;
<a name="l00390"></a><a class="code" href="class_ttystream.html#n2">00390</a>         timeout_t timeout;
00391 
00396         <a class="code" href="class_ttystream.html#b0">TTYStream</a>();
00397 
00402         <font class="keywordtype">void</font> <a class="code" href="class_ttystream.html#b1">Allocate</a>(<font class="keywordtype">void</font>);
00403 
00408         <font class="keywordtype">void</font> <a class="code" href="class_ttystream.html#b2">endStream</a>(<font class="keywordtype">void</font>);
00409 
00416         <font class="keywordtype">int</font> <a class="code" href="class_ttystream.html#b3">underflow</a>(<font class="keywordtype">void</font>);
00417 
00426         <font class="keywordtype">int</font> <a class="code" href="class_ttystream.html#b4">uflow</a>(<font class="keywordtype">void</font>);
00427 
00435         <font class="keywordtype">int</font> <a class="code" href="class_ttystream.html#b5">overflow</a>(<font class="keywordtype">int</font> ch);
00436 
00437 <font class="keyword">public</font>:
00443         <a class="code" href="class_ttystream.html#b0">TTYStream</a>(<font class="keyword">const</font> <font class="keywordtype">char</font> *filename);
00444 
00448         <a class="code" href="class_ttystream.html#a1">~TTYStream</a>();
00449 
<a name="l00455"></a><a class="code" href="class_ttystream.html#a2">00455</a>         <font class="keyword">inline</font> <font class="keywordtype">void</font> <a class="code" href="class_ttystream.html#a2">setTimeout</a>(timeout_t to)<font class="keyword"></font>
00456 <font class="keyword">                </font>{timeout = to;};
00457 
00465         <font class="keywordtype">void</font> <a class="code" href="class_ttystream.html#a3">Interactive</a>(<font class="keywordtype">bool</font> flag);
00466         
00473         <font class="keywordtype">int</font> <a class="code" href="class_ttystream.html#a4">sync</a>(<font class="keywordtype">void</font>); 
00474 
00486         <font class="keywordtype">bool</font> <a class="code" href="class_serial.html#a12">isPending</a>(siopend_t pend, timeout_t timeout = TIMEOUT_INF);
00487 };      
00488 
<a name="l00498"></a><a class="code" href="class_ttystream.html">00498</a> <font class="keyword">class </font><a class="code" href="class_ttystream.html">ttystream</a> : <font class="keyword">public</font> <a class="code" href="class_ttystream.html">TTYStream</a>
00499 {
00500 <font class="keyword">public</font>:
00504         <a class="code" href="class_ttystream.html#a0">ttystream</a>();
00505 
00513         <a class="code" href="class_ttystream.html#a0">ttystream</a>(<font class="keyword">const</font> <font class="keywordtype">char</font> *name);
00514 
00520         <font class="keywordtype">void</font> <a class="code" href="class_ttystream.html#a2">open</a>(<font class="keyword">const</font> <font class="keywordtype">char</font> *name);
00521 
00525         <font class="keywordtype">void</font> <a class="code" href="class_ttystream.html#a3">close</a>(<font class="keywordtype">void</font>);
00526 
<a name="l00530"></a><a class="code" href="class_ttystream.html#a4">00530</a>         <font class="keyword">inline</font> <font class="keywordtype">bool</font> <a class="code" href="class_ttystream.html#a4">operator!</a>()<font class="keyword"></font>
00531 <font class="keyword">                </font>{<font class="keywordflow">return</font> (dev &lt; 0);};
00532 };
00533 
<a name="l00544"></a><a class="code" href="class_ttysession.html">00544</a> <font class="keyword">class </font><a class="code" href="class_ttysession.html">TTYSession</a> : <font class="keyword">public</font> <a class="code" href="class_ttystream.html">TTYStream</a>, <font class="keyword">public</font> <a class="code" href="class_thread.html">Thread</a>
00545 {
00546 <font class="keyword">public</font>:
00555         <a class="code" href="class_ttysession.html#a0">TTYSession</a>(<font class="keyword">const</font> <font class="keywordtype">char</font> *name, <a class="code" href="class_semaphore.html">Semaphore</a> *start = NULL, <font class="keywordtype">int</font> pri = 0, <font class="keywordtype">int</font> stack = 0);
00556 };
00557 
00558 <font class="keyword">class </font><a class="code" href="class_serialport.html">SerialPort</a>;
00559 <font class="keyword">class </font><a class="code" href="class_serialservice.html">SerialService</a>;
00560 
<a name="l00582"></a><a class="code" href="class_serialport.html">00582</a> <font class="keyword">class </font><a class="code" href="class_serialport.html">SerialPort</a>: <font class="keyword">public</font> <a class="code" href="class_serial.html">Serial</a>, <font class="keyword">public</font> <a class="code" href="class_timerport.html">TimerPort</a>
00583 {
00584 <font class="keyword">private</font>:
00585         <a class="code" href="class_serialport.html">SerialPort</a> *next, *prev;
00586         <a class="code" href="class_serialservice.html">SerialService</a> *service;
00587 <font class="preprocessor">#ifdef  __CCXX_USE_POLL</font>
00588 <font class="preprocessor"></font>        <font class="keyword">struct </font>pollfd *ufd;
00589 <font class="preprocessor">#endif</font>
00590 <font class="preprocessor"></font>        <font class="keywordtype">bool</font> detect_pending;
00591         <font class="keywordtype">bool</font> detect_output;
00592         <font class="keywordtype">bool</font> detect_disconnect;
00593 
<a name="l00594"></a><a class="code" href="class_serialport.html#l0">00594</a>         <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="class_serialservice.html">SerialService</a>;
00595 
00596 <font class="keyword">protected</font>:
00603         <a class="code" href="class_serialport.html#b0">SerialPort</a>(<a class="code" href="class_serialservice.html">SerialService</a> *svc, <font class="keyword">const</font> <font class="keywordtype">char</font> *name);
00604         
00609         <font class="keyword">virtual</font> <a class="code" href="class_serialport.html#b1">~SerialPort</a>();
00610 
00615         <font class="keywordtype">void</font> <a class="code" href="class_serialport.html#b2">setDetectPending</a>( <font class="keywordtype">bool</font> );
00616         
<a name="l00620"></a><a class="code" href="class_serialport.html#b3">00620</a>         <font class="keywordtype">bool</font> <a class="code" href="class_serialport.html#b3">getDetectPending</a>( <font class="keywordtype">void</font> )<font class="keyword"> const</font>
00621 <font class="keyword">                </font>{ <font class="keywordflow">return</font> detect_pending; }
00622         
00627         <font class="keywordtype">void</font> <a class="code" href="class_serialport.html#b4">setDetectOutput</a>( <font class="keywordtype">bool</font> );
00628         
<a name="l00632"></a><a class="code" href="class_serialport.html#b5">00632</a>         <font class="keywordtype">bool</font> <a class="code" href="class_serialport.html#b5">getDetectOutput</a>( <font class="keywordtype">void</font> )<font class="keyword"> const</font>
00633 <font class="keyword">                </font>{ <font class="keywordflow">return</font> detect_output; }
00634 
<a name="l00639"></a><a class="code" href="class_serialport.html#b6">00639</a>         <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_serialport.html#b6">Expired</a>(<font class="keywordtype">void</font>)<font class="keyword"></font>
00640 <font class="keyword">                </font>{<font class="keywordflow">return</font>;};
00641 
<a name="l00647"></a><a class="code" href="class_serialport.html#b7">00647</a>         <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_serialport.html#b7">Pending</a>(<font class="keywordtype">void</font>)<font class="keyword"></font>
00648 <font class="keyword">                </font>{<font class="keywordflow">return</font>;};
00649 
<a name="l00654"></a><a class="code" href="class_serialport.html#b8">00654</a>         <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_serialport.html#b8">Disconnect</a>(<font class="keywordtype">void</font>)<font class="keyword"></font>
00655 <font class="keyword">                </font>{<font class="keywordflow">return</font>;};
00656 
<a name="l00666"></a><a class="code" href="class_serialport.html#b9">00666</a>         <font class="keyword">inline</font> <font class="keywordtype">int</font> <a class="code" href="class_serialport.html#b10">Output</a>(<font class="keywordtype">void</font> *buf, <font class="keywordtype">int</font> len)<font class="keyword"></font>
00667 <font class="keyword">                </font>{return ::write(dev, (<font class="keywordtype">char</font> *)buf, len);};
00668 
<a name="l00672"></a><a class="code" href="class_serialport.html#b10">00672</a>         <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_serialport.html#b10">Output</a>(<font class="keywordtype">void</font>)<font class="keyword"></font>
00673 <font class="keyword">                </font>{<font class="keywordflow">return</font>;};
00674 
<a name="l00684"></a><a class="code" href="class_serialport.html#b11">00684</a>         <font class="keyword">inline</font> <font class="keywordtype">int</font> <a class="code" href="class_serialport.html#b11">Input</a>(<font class="keywordtype">void</font> *buf, <font class="keywordtype">int</font> len)<font class="keyword"></font>
00685 <font class="keyword">                </font>{return ::read(dev, (<font class="keywordtype">char</font> *)buf, len);};
00686 
00687 <font class="keyword">public</font>:
00695         <font class="keywordtype">void</font> <a class="code" href="class_thread.html#b16">setTimer</a>(timeout_t timeout = 0);
00696 
00702         <font class="keywordtype">void</font> <a class="code" href="class_timerport.html#a2">incTimer</a>(timeout_t timeout);
00703 };
00704 
<a name="l00727"></a><a class="code" href="class_serialservice.html">00727</a> <font class="keyword">class </font><a class="code" href="class_serialservice.html">SerialService</a> : <font class="keyword">public</font> <a class="code" href="class_thread.html">Thread</a>, <font class="keyword">private</font> <a class="code" href="class_mutex.html">Mutex</a>
00728 {
00729 <font class="keyword">private</font>:
00730         fd_set connect;
00731         <font class="keywordtype">int</font> iosync[2];
00732         <font class="keywordtype">int</font> hiwater;
00733         <font class="keywordtype">int</font> count;
00734         <a class="code" href="class_serialport.html">SerialPort</a> *first, *last;
00735 
00741         <font class="keywordtype">void</font> Attach(<a class="code" href="class_serialport.html">SerialPort</a> *port);
00742 
00748         <font class="keywordtype">void</font> <a class="code" href="class_thread.html#a5">Detach</a>(<a class="code" href="class_serialport.html">SerialPort</a> *port);
00749 
00753         <font class="keywordtype">void</font> <a class="code" href="class_thread.html#b0">Run</a>(<font class="keywordtype">void</font>);
00754 
<a name="l00755"></a><a class="code" href="class_serialservice.html#l0">00755</a>         <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="class_serialport.html">SerialPort</a>;
00756 
00757 <font class="keyword">protected</font>:
<a name="l00764"></a><a class="code" href="class_serialservice.html#b0">00764</a>         <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_serialservice.html#b0">OnUpdate</a>(<font class="keywordtype">unsigned</font> <font class="keywordtype">char</font> flag)<font class="keyword"></font>
00765 <font class="keyword">                </font>{<font class="keywordflow">return</font>;};
00766 
<a name="l00771"></a><a class="code" href="class_serialservice.html#b1">00771</a>         <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_serialservice.html#b1">OnEvent</a>(<font class="keywordtype">void</font>)<font class="keyword"></font>
00772 <font class="keyword">                </font>{<font class="keywordflow">return</font>;};
00773 
<a name="l00780"></a><a class="code" href="class_serialservice.html#b2">00780</a>         <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_serialservice.html#b2">OnCallback</a>(<a class="code" href="class_serialport.html">SerialPort</a> *port)<font class="keyword"></font>
00781 <font class="keyword">                </font>{<font class="keywordflow">return</font>;};
00782 
00783 <font class="keyword">public</font>:
00793         <font class="keywordtype">void</font> <a class="code" href="class_serialservice.html#a0">Update</a>(<font class="keywordtype">unsigned</font> <font class="keywordtype">char</font> flag = 0xff);
00794         
00801         <a class="code" href="class_serialservice.html#a1">SerialService</a>(<font class="keywordtype">int</font> pri = 0);
00802 
00806         <a class="code" href="class_serialservice.html#a2">~SerialService</a>();
00807 
<a name="l00814"></a><a class="code" href="class_serialservice.html#a3">00814</a>         <font class="keyword">inline</font> <font class="keywordtype">int</font> <a class="code" href="class_serialservice.html#a3">getCount</a>(<font class="keywordtype">void</font>)<font class="keyword"></font>
00815 <font class="keyword">                </font>{<font class="keywordflow">return</font> count;};
00816 };
00817 
00818 <font class="preprocessor">#ifdef  __CCXX_NAMESPACE_H__</font>
00819 <font class="preprocessor"></font><font class="preprocessor">#undef  __CCXX_NAMESPACE_H__</font>
00820 <font class="preprocessor"></font><font class="preprocessor">#include &lt;cc++/<a class="code" href="namespace_h.html">namespace.h</a>&gt;</font>
00821 <font class="preprocessor">#endif</font>
00822 <font class="preprocessor"></font><font class="preprocessor">#endif</font>
00823 <font class="preprocessor"></font>
</div></pre><hr><address><small>Generated at Thu Oct 4 15:32:58 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.5 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>,
 &copy;&nbsp;1997-2001</small></address>
</body>
</html>