---
name: "ost_SerialPort"
section: "3"
platform: "linux"
package: "libcommoncpp2-doc"
version: "1.8.1-10"
release: "Debian 11 (Bullseye)"
platforms: ["linux"]
url: "https://new.carta.tech/ost_SerialPort"
---

# ost\_SerialPort(3)

The serial port is an internal class which is attached to and then serviced by a specified SerialService thread.

## NAME

ost::SerialPort - The serial port is an internal class which is attached to and then serviced by a specified **SerialService** thread.

## SYNOPSIS

`#include <serial.h>`

Inherits **ost::Serial**, and **ost::TimerPort**.

### 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**\

### Additional Inherited Members

## 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.

**Author**

David Sugar dyfet@ostel.com

base class for thread pool serviced serial I/O.

## Constructor & Destructor Documentation

### ost::SerialPort::SerialPort (SerialService \* svc, const char \* name)` [protected]`

Construct a tty serial port for a named serial device.

**Parameters**

*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.

## Member Function Documentation

### 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.

### 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.

**Returns**

number of bytes received.

**Parameters**

*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.

**Returns**

number of bytes send.

**Parameters**

*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.

**Parameters**

*timeout* in milliseconds.

## Friends And Related Function Documentation

### friend class SerialService` [friend]`

## Author

Generated automatically by Doxygen for GNU CommonC++ from the source code.
