This section describes in greater detail how the various classes which implement method libraries interact. It is intended for those writing new classes to support new library types.
The basic library framework comprises five classes, all of which are declared in the header file ringing/library.h.
This is the basic interface that all implementations will need to implement. It describes how to iterate through a library, and provides hooks that can be used to provide more efficient algorithms for searching through the library.
The
library
class serves two purposes: it acts as a shared pointer to a library_base, and it handles the auto-detection of libraries. Implementations only need to derive from this if they want to provide an alternative to the standard auto-detection mechansim.
This class represents an entry in a library. It has value semantics; thus it is safe to hold onto multiple entries from a single library.