I/O Endpoints

The Conexus library is centered around the concept of generic I/O endpoints.

The Conexus::Endpoint class embodies the concepts of a generic I/O communicator, and conceptually is very close to a socket. However, the inheritance hierarchy imposed allows classes that derive from Conexus::Endpoint to leverage polymorphic behavior.

An endpoint serves to abstract the details of communication. Various APIs such as the BSD Socket API, POSIX File I/O API, pcap (Packet Capture) library API each have their own syntax and mechanisms for communication. The following shows several communication mechanisms and a sampling of the knowledge (functions, ioctls, etc.) associated with each mechanism.

problem.png

Example communication mechanisms and sampling of functions, ioctls etc. associated with each mechanism

An endpoint abstracts these details to a minimum set of communication mechanisms that are similar to the POSIX API.

endpoints.png

An endpoint abstracts many, but not all, I/O concepts. Children of Conexus::Endpoint are responsible for mechanism specifics.

Since each of the communication mechanisms have unique aspects, such as the TCP and UDP protocols concept of a port, children of Conexus::Endpoint such as Conexus::IPv4::TCP, Conexus::IPv4::UDP and Conexus::TTY provide the additional functionality for each mechanism.

An endpoint supports the following generic communication mechanisms:

  1. Delivery of data from an external source via callbacks
  2. Notification when data has been transmitted from the source
  3. Reading of data from the endpoint

Generated on Sat Aug 26 17:34:53 2006 by  doxygen 1.4.6