[Introduction] [Next]

Programming Interfaces

XFlaim API Overview

XFLMIUnknown Base class for IF_DbSystem interface.
XF_RefCount Base class for all public interfaces except IF_DbSystem.
IF_DbSystem XFLAIM database system object.  All access to any XFLAIM functionality must start with the creation of an IF_DbSystem object.  It contains methods for initializing the database system (init), shutting down the database system (exit), creating a database (dbCreate), opening an existing database (dbOpen), and many other system level database operations.  This object may be created by calling FlmAllocDbSystem.
IF_Db Database object.  All access to a specific database (transactions, etc.) is done through a database object.  This object is created by calling IF_DbSystem::dbOpen or IF_DbSystem::dbCreate.
IF_DOMNode Object for creating DOM nodes, browsing a document, and setting/getting DOM node values.  Various methods on the IF_Db object can create this object.  Some methods on this class can also create other objects of this class.
IF_DataVector Object for for building index search keys and for accessing key components when reading an index directly.  Object is created by calling IF_DbSystem::createIFDataVector.
IF_Backup Object for performing a database backup.  Object is created by calling IF_Db::backupBegin.
IF_BackupClient Interface for allowing an application to receive and write out backup data during a database backup operation.  Application must provide implementation.
IF_BackupStatus Interface for allowing an application to receive progress reports during a backup operation.  Application must provide implementation.
IF_RestoreClient Interface for allowing an application to supply backup data to a restore operation.  Application must provide implementation.
IF_RestoreStatus Interface for allowing an application to get progress reports during a database restore operation.  Application must provide implementation.
IF_IStream Interface for reading data from an input stream.  Applications may do custom implementations, or use some pre-defined implementations provided by XFLAIM.  Pre-defined implementations include streams for reading from a file (IF_DbSystem::openFileIStream), a buffer (IF_DbSystem::openBufferIStream), and multiple files (IF_DbSystem::openMultiFileIStream).
IF_PosIStream Interface for a positionable input stream.  Applications may do custom implementations, or use some pre-defined implementations provided by XFLAIM.  Pre-defined implementations include streams for reading from a file (IF_DbSystem::openFileIStream) and a buffer (IF_DbSystem::openBufferIStream).
IF_OStream Interface for writing data to an output stream.  Applications may do custom implementations, or use some pre-defined implementations provided by XFLAIM.  Pre-defined implementations include streams for writing to a file (IF_DbSystem::openFileOStream) as well as multiple files (IF_DbSystem::openMultiFileOStream).

IF_ThreadInfo

Interface for allowing an application to get thread information via a callback from within the IF_DbSystem::getThreadInfo method.  Application must provide implementation.
IF_CommitClient Interface for allowing an application to perform operations after a transaction has committed, but before the database has been unlocked.  Application must provide implementation.
IF_EventClient Interface for allowing an application to catch database events.  Application must provide implementation.
IF_IxClient Interface for allowing an application to perform special processing after a document has been indexed.  Application must provide implementation.

IF_LockInfoClient

Interface for allowing an application to receive information on database lock waiters and holders.  Application must provide implementation.
IF_LoggerClient Interface for allowing an application to capture messages logged by XFLAIM.  Application must provide implementation.
IF_LogMessageClient Interface for allowing an application to capture messages logged by XFLAIM.  Application must provide implementation.
IF_UpgradeClient Interface for allowing an application to get called back during a database upgrade.  Application must provide implementation. - NOTE: Not yet defined.
IF_DbCheckStatus Interface for allowing an application to get progress reports during a database check operation.  Application must provide implementation.
IF_DbCopyStatus Interface for allowing an application to get progress reports during a database copy operation.  Application must provide implementation.
IF_DbRebuildStatus Interface for allowing an application to get progress reports during a database rebuild operation.  Application must provide implementation.
IF_DbRenameStatus Interface for allowing an application to get progress reports during a database rename operation.  Application must provide implementation.
IF_DeleteStatus Interface for allowing an application to get progress reports during a database remove operation.  Application must provide implementation.
IF_IxStatus Interface for allowing an application to get progress reports while building an index in the foreground.  Application must provide implementation.
IF_FileSystem Object for performing file system operations - file creation, open, delete, directory lookups, etc.  Object is created by calling IF_DbSystem::getFileSystem
IF_FileHdl Object for performing file I/O operations.  Allows opening, creating, reading, writing, etc. to individual files.  Object is created by calling various methods on the IF_FileSystem object (e.g., Create, Open, etc.)
IF_DirHdl Object for browsing a file system directory.  Object is created by calling the IF_FileSystem::OpenDir method.
IF_DbInfo Object created by the IF_DbSystem::dbCheck method to return statistical information that was collected during the database check operation.  Methods on the object allow an application to retrieve the information that was collected.
IF_ResultSet Object for creating result sets and sorting and accessing their members.  Object is created by calling IF_DbSystem::createIFResultSet.
IF_ResultSetSortStatus Interface for allowing an application to get progress reports while XFLAIM is sorting of a result set.  Application must provide implementation.
IF_ResultSetCompare Interface for allowing an application to implement a custom comparison method for result sets.  Application must provide implementation.
IF_Query Object for doing database queries.  Allows query to be set up and then the query result set to be traversed.  Object is created by calling IF_DbSystem::createIFQuery.
IF_QueryStatus Interface for allowing an application to get progress reports during a query operation.  Application must provide implementation.
IF_QueryValidator Interface for allowing an application to implement custom methods for validating documents and nodes before they are returned from a query operation.  Application must provide implementation.
IF_QueryValFunc Interface for allowing an application to implement custom operands inside query criteria.  Application must provide implementation.
IF_QueryNodeSource Interface for allowing an application to implement custom node sources inside query criteria.  These may be embedded sub-queries.  Application must provide implementation.
IF_OperandComparer Interface for allowing an application to implement a custom query operator.  Application must provide implementation.
IF_NodeInfo Object for collecting disk usage information for DOM nodes and documents in a database.  Object is created by calling IF_DbSystem::createIFNodeInfo.
IF_BTreeInfo Object for collecting disk usage information for index and collection b-trees in a database.  Object is created by calling IF_DbSystem::createIFBTreeInfo.
IF_BTreeInfoStatus Interface for allowing an application to get progress reports during a b-tree information gathering operation.  Application must provide implementation.
IF_DynaBuf Interface for allowing an application to provide a dynamic buffer implementation that XFLAIM can use to return strings and binary values from various methods.  Application must provide implementation.
IF_Pool Object for doing pool memory allocations.  Object is created by calling IF_DbSystem::createMemoryPool.

[Introduction] [Next]