class SerialPort

base class for thread pool serviced serial I/O. More...

Full nameost::SerialPort
Definition#include <serial.h>
Inheritsost::Serial [public ], ost::TimerPort [public ]
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

Public Methods

Protected Methods


Detailed Description

The serial port is an internal class which is attached to and then serviced by a specified SerialService thread. Derived versions of this class offer specific functionality such as serial integration protocols.

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.

 SerialPort (SerialService *svc, const char *name)

SerialPort

[protected]

Construct a tty serial port for a named serial device.

Parameters:
svcpool thread object.
nameof tty port.

 ~SerialPort ()

~SerialPort

[protected virtual]

Disconnect the Serial Port from the service pool thread and shutdown the port.

void  setDetectPending ( bool )

setDetectPending

[protected]

Used to indicate if the service thread should monitor pending data for us.

bool  getDetectPending ( void )

getDetectPending

[protected const]

Get the current state of the DetectPending flag.

void  setDetectOutput ( bool )

setDetectOutput

[protected]

Used to indicate if output ready monitoring should be performed by the service thread.

bool  getDetectOutput ( void )

getDetectOutput

[protected const]

Get the current state of the DetectOutput flag.

void  Expired (void)

Expired

[protected virtual]

Called by the service thread when the objects timer has expired.

void  Pending (void)

Pending

[protected virtual]

Called by the service thread when input data is pending for this tty port. Effected by setPacketInput and by setLineInput.

void  Disconnect (void)

Disconnect

[protected virtual]

Called by the service thread when an exception has occured such as a hangup.

inline int  Output (void *buf, int len)

Output

[protected]

Transmit "send" data to the serial port. This is not public since it's meant to support internal protocols rather than direct public access to the device.

Parameters:
addressof buffer to send.
lenof bytes to send.

Returns: number of bytes send.

void  Output (void)

Output

[protected virtual]

Perform when output is available for sending data.

inline int  Input (void *buf, int len)

Input

[protected]

Receive "input" for pending data from the serial port. This is not a public member since it's meant to support internal protocols rather than direct external access to the device.

Parameters:
addressof buffer to input.
lenof input buffer used.

Returns: number of bytes received.

void  setTimer (timeout_t timeout = 0)

setTimer

Derived setTimer to notify the service thread pool of changes in expected timeout. This allows SerialService to reschedule all timers.

Parameters:
timeoutin milliseconds.

Reimplemented from TimerPort.

void  incTimer (timeout_t timeout)

incTimer

Derived incTimer to notify the service thread pool of a change in expected timeout. This allows SerialService to reschedule all timers.

Reimplemented from TimerPort.