UCommon
ost::SerialService Class Reference

The SerialService is a thead service object that is meant to service attached serial ports. More...

#include <serial.h>

Inherits ost::Thread, and ost::Mutex.

Public Member Functions

int getCount (void) const
 Get current reference count.
 
 SerialService (int pri=0, size_t stack=0, const char *id=NULL)
 Create a service thread for attaching serial ports.
 
void update (uint8_t flag=0xff)
 Notify service thread that a port has been added or removed, or a timer changed, so that a new schedule can be computed for expiring attached ports.
 
virtual ~SerialService ()
 Terminate the service thread and update attached objects.
 

Protected Member Functions

virtual void onCallback (SerialPort *port)
 A virtual handler for adding support for additional callback events into SerialPort.
 
virtual void onEvent (void)
 A virtual handler for event loop calls.
 
virtual void onUpdate (uint8_t flag)
 A virtual handler for processing user defined update requests (1-254) which have been posted through Update.
 

Friends

class SerialPort
 

Detailed Description

The SerialService is a thead service object that is meant to service attached serial ports.

Multiple pool objects may be created and multiple serial ports may be attached to the same thread of of execution. This allows one to balance threads and the serial ports they service.

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.nosp@m.@ost.nosp@m.el.co.nosp@m.m

Thread pool service for serial ports.

Definition at line 785 of file serial.h.

Constructor & Destructor Documentation

◆ SerialService()

ost::SerialService::SerialService ( int pri = 0,
size_t stack = 0,
const char * id = NULL )

Create a service thread for attaching serial ports.

The thread begins execution with the first attached port.

Parameters
priof this thread to run under.
stackstack size.
idstack ID.

Member Function Documentation

◆ getCount()

int ost::SerialService::getCount ( void ) const
inline

Get current reference count.

This can be used when selecting the lead used service handler from a pool.

Returns
count of active ports.

Definition at line 873 of file serial.h.

◆ onCallback()

virtual void ost::SerialService::onCallback ( SerialPort * port)
protectedvirtual

A virtual handler for adding support for additional callback events into SerialPort.

Parameters
portserial port currently being evaluated.

◆ onEvent()

virtual void ost::SerialService::onEvent ( void )
protectedvirtual

A virtual handler for event loop calls.

This can be used to extend event loop processing.

◆ onUpdate()

virtual void ost::SerialService::onUpdate ( uint8_t flag)
protectedvirtual

A virtual handler for processing user defined update requests (1-254) which have been posted through Update.

Parameters
flagof update request.

◆ update()

void ost::SerialService::update ( uint8_t flag = 0xff)

Notify service thread that a port has been added or removed, or a timer changed, so that a new schedule can be computed for expiring attached ports.

This can also be used to pass requests to the OnUpdate() event handler.

Parameters
flagevent for OnUpdate, termination, or reschedule.

Friends And Related Symbol Documentation

◆ SerialPort

friend class SerialPort
friend

Definition at line 815 of file serial.h.


The documentation for this class was generated from the following file: