---
name: "SerialPort"
section: "3cc"
platform: "linux"
package: "libcommoncpp2-dev"
version: "1.0.13-5"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/SerialPort/3cc"
---

# SerialPort(3cc)

The serial port is an internal class which is attached to and then serviced by a specified SerialService thread. base class for thread pool serviced serial I/O.

## NAME

SerialPort - The serial port is an internal class which is attached to and then serviced by a specified **SerialService** thread. base class for thread pool serviced serial I/O.

## SYNOPSIS

`#include <serial.h>`

Inherits **Serial**, and **TimerPort**.

### Public Methods

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 Methods

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

## DETAILED DESCRIPTION

The serial port is an internal class which is attached to and then serviced by a specified **SerialService** thread. base class for thread pool serviced serial I/O.

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

## CONSTRUCTOR & DESTRUCTOR DOCUMENTATION

### 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 SerialPort::~SerialPort ()` [protected, virtual]`

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

## MEMBER FUNCTION DOCUMENTATION

### virtual void SerialPort::disconnect (void)` [inline, protected, virtual]`

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

### virtual void SerialPort::expired (void)` [inline, protected, virtual]`

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

### bool SerialPort::getDetectOutput (void) const` [inline, protected]`

*Get the current state of the DetectOutput flag.*

### bool SerialPort::getDetectPending (void) const` [inline, protected]`

*Get the current state of the DetectPending flag.*

### void 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* **TimerPort***.*

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

### virtual void SerialPort::output (void)` [inline, protected, virtual]`

*Perform when output is available for sending data.*

### int 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 SerialPort::pending (void)` [inline, protected, virtual]`

*Called by the service thread when input data is pending for this tty port.*

*Effected by setPacketInput and by setLineInput.*

### void SerialPort::setDetectOutput (bool)` [protected]`

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

### void SerialPort::setDetectPending (bool)` [protected]`

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

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

*Reimplemented from* **TimerPort***.*

## FRIENDS AND RELATED FUNCTION DOCUMENTATION

### friend class SerialService` [friend]`

## AUTHOR

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