|
||
Provides file-based structured data storage, using networks of streams.
The File Stores API is based on the abstract store types defined by the Stores API. The underlying file handling is provided by the File Server.
The permanent file stores defined in this API are used by the relational database API, DBMS, for data storage.
The API has five key concepts: file store base (CFileStore
), direct file store (CDirectFileStore
),
permanent file store (CPermanentFileStore
), dictionary file store (CDictionaryFileStore
), and file streams (RFileWriteStream
and RFileReadStream
).
This abstract base class provides basic behaviour for file stores, such as reading a store from a specified file.
File stores are derived from the persistent store base
(CPersistentStore
) provided by the Stores API. This means that
they have a root stream, from which all other streams within the store can be
found.
The file store base class is CFileStore
.
A direct file store implements a file store in which once the streams have been committed and closed, they cannot subsequently be changed. They are used by the type of application that treats the in-memory copy of its data as its prime copy, and on saving, replaces the entire store.
The direct file store is a concrete type, derived from
CFileStore
, and is provided by
CDirectFileStore
.
A permanent file store implements a file store in which existing streams within the store can be changed. They are used by the type of application which treats the data in the store as its prime copy. Typically, the object network comprising the application’s data is structured so that sections of data can be loaded in, and, if changed, written back to the store. Memory is used as a workplace for changing data.
The permanent file store is a concrete type, derived from
CFileStore
, and is provided by
CPermanentFileStore
.
The dictionary file store implements a dictionary store, a network of streams each of which can be accessed via a UID, in file storage.
The dictionary file store is a concrete type, derived from
CDictionaryStore
, and is provided by
CDictionaryFileStore
.
File streams allow standard files (RFile
objects as defined in the File Server Client Side API), not file stores, to be
written to as streams. This can be simpler and more efficient than using the
equivalent RFile
functions.
The file stream classes are RFileReadStream
and
RFileWriteStream
.