NCBI C++ ToolKit
Implementations of this interface should provide life-cycle functions as well as functions which satisfy the BlastSeqSrc interface.
These functions must have C linkage, as these functions are invoked by the BlastSeqSrc framework. An initialization function must also be provided, this is intended to be invoked by client code which wants to use a specific BlastSeqSrc implementation through the BlastSeqSrc interface. For example, MyDatabaseFormat implementation would define the following functions:
Since the life-cycle and BlastSeqSrc interface functions above are called by the BlastSeqSrc framework (BlastSeqSrc* functions declared in blast_seqsrc.h), no exceptions should be thrown in C++ implementations. When not obvious, please see the required signature's documentation for determining what to implement (see blast_seqsrc_impl.h).
For ease of maintenance, please follow the following conventions:
Xis the name of the implementation
Xis the name of the implementation.