This method is used to communicate an error and invoke error callbacks etc. Basically a wrapper for PEAR::raiseError without the message string.
DBA_Driver_File provides a simple, file-based implementation of a
DBM-style database. It uses two files, and index and a data file to manage key/value pairs. These two files use the suffixes '.dat' and '.idx'. When a database is opened, only the index file is read. The index file contains pointers to locations within the data file, which are used to retrieve values.
The class uses a concept of blocks for data storage. When the first value is inserted, a new block is created by appending to the data file. If that value is deleted, it remains in the data file, but is marked as empty in the index file. A list of available blocks is kept, so when a new value is inserted, its size is compared to the list of available blocks. If one is of sufficient size, it is reused and marked as used in the index file. Blocks can be of any length.
In updating the index, lines are simply appended to the file after each operation. So, the index file might have the same block listed multiple time , just in different states. When the database is closed, it rewrites the index file, removing and duplicate entries for a single block. The index reader only uses the last entry for a block from the index file, so if close is not called for some reason, the index file is still in a valid state.
The optimize function merely removes duplicated index entries by rewriting the file, the same as close. The sync function calls fflush on the data and index files.
The mode in which to open a database. 'r' opens read-only. 'w' opens read-write. 'n' creates a new database and opens read-write. 'c' creates a new database if the database does not exist and opens read-write.
Determines whether to open the database peristently. Not supported here.