GNU CommonC++
|
The serial port is an internal class which is attached to and then serviced by a specified SerialService thread. More...
#include <serial.h>
Public Member Functions | |
void | setTimer (timeout_t timeout=0) |
Derived setTimer to notify the service thread pool of changes in expected timeout. | |
void | incTimer (timeout_t timeout) |
Derived incTimer to notify the service thread pool of a change in expected timeout. | |
Protected Member Functions | |
SerialPort (SerialService *svc, const char *name) | |
Construct a tty serial port for a named serial device. | |
virtual | ~SerialPort () |
Disconnect the Serial Port from the service pool thread and shutdown the port. | |
void | setDetectPending (bool) |
Used to indicate if the service thread should monitor pending data for us. | |
bool | getDetectPending (void) const |
Get the current state of the DetectPending flag. | |
void | setDetectOutput (bool) |
Used to indicate if output ready monitoring should be performed by the service thread. | |
bool | getDetectOutput (void) const |
Get the current state of the DetectOutput flag. | |
virtual void | expired (void) |
Called by the service thread when the objects timer has expired. | |
virtual void | pending (void) |
Called by the service thread when input data is pending for this tty port. | |
virtual void | disconnect (void) |
Called by the service thread when an exception has occured such as a hangup. | |
int | output (void *buf, int len) |
Transmit "send" data to the serial port. | |
virtual void | output (void) |
Perform when output is available for sending data. | |
int | input (void *buf, int len) |
Receive "input" for pending data from the serial port. | |
Friends | |
class | SerialService |
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.
ost::SerialPort::SerialPort | ( | SerialService * | svc, |
const char * | name | ||
) | [protected] |
Construct a tty serial port for a named serial device.
svc | pool thread object. |
name | of tty port. |
virtual ost::SerialPort::~SerialPort | ( | ) | [protected, virtual] |
Disconnect the Serial Port from the service pool thread and shutdown the port.
virtual void ost::SerialPort::disconnect | ( | void | ) | [protected, virtual] |
Called by the service thread when an exception has occured such as a hangup.
virtual void ost::SerialPort::expired | ( | void | ) | [protected, virtual] |
Called by the service thread when the objects timer has expired.
bool ost::SerialPort::getDetectOutput | ( | void | ) | const [inline, protected] |
Get the current state of the DetectOutput flag.
bool ost::SerialPort::getDetectPending | ( | void | ) | const [inline, protected] |
Get the current state of the DetectPending flag.
void ost::SerialPort::incTimer | ( | timeout_t | timeout | ) |
Derived incTimer to notify the service thread pool of a change in expected timeout.
This allows SerialService to reschedule all timers.
Reimplemented from ost::TimerPort.
int ost::SerialPort::input | ( | void * | buf, |
int | len | ||
) | [inline, 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.
buf | address of buffer to input. |
len | of input buffer used. |
int ost::SerialPort::output | ( | void * | buf, |
int | len | ||
) | [inline, 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.
buf | address of buffer to send. |
len | of bytes to send. |
virtual void ost::SerialPort::output | ( | void | ) | [protected, virtual] |
Perform when output is available for sending data.
virtual void ost::SerialPort::pending | ( | void | ) | [protected, virtual] |
Called by the service thread when input data is pending for this tty port.
Effected by setPacketInput and by setLineInput.
void ost::SerialPort::setDetectOutput | ( | bool | ) | [protected] |
Used to indicate if output ready monitoring should be performed by the service thread.
void ost::SerialPort::setDetectPending | ( | bool | ) | [protected] |
Used to indicate if the service thread should monitor pending data for us.
void ost::SerialPort::setTimer | ( | timeout_t | timeout = 0 | ) |
Derived setTimer to notify the service thread pool of changes in expected timeout.
This allows SerialService to reschedule all timers.
timeout | in milliseconds. |
Reimplemented from ost::TimerPort.
friend class SerialService [friend] |