I am not a native English speaker and hard as I might try, my writing will always be prone to blunders. Your comments regarding my style and usage are welcome and would be highly appreciated.
This document is organized in the following way: the first chapter illustrates library usage as an application shell. This role is illustrated with the infamous Hello World example. Then, the detailed account of different application options is given.
The second chapter describes the network communications aspects of the library. The fully functional logging server and client applications are developed along the line to illustrate the point of discussion.
The third chapter briefly describes those classes found in the library that might be picked up and used on their own. They have weak bonds with the rest of the library and thus can be used in the broader range of applications with minimal modifications if any.
libassa library is composed of several layers:
Starting from the bottom up:
Utilities is a collection of helper classes that encapsulates most commonly used repetetive tasks.
UNIX Primitive Wrappers is composed of classes that directly wrap UNIX data structures and encapsulate relevant functionality.
BSD Socket Wrappers is the implementation of an Object-Oriented asynchronous communication layer over UNIX BSD TCP/UDP sockets. It includes events (I/O, signals, timers) scheduling and processing.
Application Shell is a set of classes that helps a programmer to create a UNIX client/server application quickly and easily. The classes factor out most common functionality such as processing command-line arguments, debug messages logging and managing global variable space found in any modern application.