There are many goals to achieve when deciding to write an API. The functions in the library should be reenterable, easy to include in an application, platform independent, and reasonably flexible with enough functionality to be usable. These goals can often be contradictory; however, they are achievable with enough forethought and planning.

This package is sufficiently abstracted so that the programmer will neither need to know or care how it is implemented; at least that is the goal I have striven to achieve while writing it.

Within this package is found the: source files written in C; make files for various platforms and compilers; a text script which sets the environment correctly when it runs the demo program created by the make utility; README and INSTALL text files; Artistic and Eclipse Licenses; documentation in LATEX2e form; and Python epydoc API documentation; however, most of this document is dedicated to the C API.

A short overview will follow, discussing the philosophy of how the package works including a rationale of the structure and type definition used in the package.

Then the library itself is broken into six groups: initialization, status and state, pointer manipulation, list update, search, and input/output. The Python version has a seventh miscellaneous helper methods.

(a) The initialization group handles the creation, initializing, and destruction of the link list.

(b) The status and state group returns various kinds of information about the status of the link list during its operation.

(c) The pointer manipulation group allows the positioning of the current pointer to the head, the tail, or an arbitrary node within the list.

(d) The list update group adds and deletes nodes.

(e) The search group returns the record information based on key data or on the absolute record position.

(f) The input/output group saves or retrieves record data to or from a disk file.

(g) The Python miscellaneous helper methods group adds some functionality for comparison and testing the Info object.

At this writing there are 29 functions in the C library, each one of which is thoroughly explained and examples given when needed.

Carl J. Nobile 2012-01-15