| Strings |
The String
class stores and manipulates ASCII strings with or without a
terminating NULL character.
A SubString class compliments
the String class for inherent
functionality as does StringList
in offering an Template Class for double-linked list for Strings.
An StringListIterator Template
class extends StringList with
object instances rather than pointers.
A comprehensive suite of member functions and operators (global
and local scope) is implemented for the asaid classes; inclusive of
portable streams.
|
| Link
Lists |
The DList
is a base class for Doubly Linked lists. A DNode
class is used in the construction of doubly-linked lists. The list nodes contain only the pointers
required to maintain the list; derived classes add the functionality to include data objects.
Template classes TPDNode and TPDList
exist as wrappers for type independant DList
and DNode classes.
Template classes TVDNode and TVDList
also exist as wrappers for type independant DList
and DNode classes. However, the list nodes contain object instances rather than pointers.
The above classes are all supplemented with iterator classses of
the same name extension e.g. DListIterator.
A comprehensive suite of member functions and operators (global
and local scope) is implemented for the asaid classes.
|
| Portable
Streams |
The Portable
Stream classes PIStream
and POStream allow input and output
with a stream in a format that is portable between machine architectures. All characters are printable
ASCII.
For serialising lists derived from the Double Linked class, the list element derived class most supply suitable operator functions to
serialise the element itself.
A comprehensive suite of member functions and operators (global
and local scope) is implemented for the asaid classes.
|
| Queues |
A template class, TQueue
provides a basis for in-memory object queues. The queue stores pointers to objects, along with time
stamps to allow gathering of queuing statistics.
A comprehensive suite of member functions and operators (global
and local scope) is implemented for the asaid class.
|
| Events |
This class, EventTrap
allows asynchronous events to be detected, recorded, and waited for. It is useful for trapping signals and other
such occurrences that may happen at any time, even before we are ready to wait for them. Different kinds of event are
recorded in a bit mask.
A comprehensive suite of member functions and operators (global
and local scope) is implemented for the asaid class.
|
| Threads |
The Threads classes
encapsulates native thread functionality. It can be changed to incorporate support for various flavours of threads
packages by the use of conditional compilation. Incorporates a mutex for synchronising access to thread control functions.
In addition these classes specialise the Thread
base class for threads that are intended to be used as a group, for example as members of a thread
resource pool. All threads of such a group share a common condition variable.
A comprehensive suite of member functions and
operators (global and local scope) is implemented for the asaid
class.
|
| Name
Value Pairs |
The Name Value
Pairs (NVP) classes
maintain pairs of string values, for use as a token name and an associated value.
In addition a specialisation of the TVDList doubly-linked list template class
exists for NVP,
along with an iterator.
A comprehensive suite of member functions and operators (global and
local scope) is implemented for the asaid classes.
|