IO - I/O Support Library

The IO library contains abstraction classes for file I/O. It is used extensively throughout the higher-level libraries.

Header Files

File.h
File is an abstract base class to support high-performance endianness-safe binary read/write access to data sources and sinks of various types.
SeekableFile.h
SeekableFile is a base class derived from IO::File to indicate files whose read and write positions can be changed via seek... methods.
StandardFile.h
StandardFile is a concrete class to support high-performance access to standard files.
MemMappedFile.h
MemMappedFile is a concrete class for read/write access to memory-mapped files, mostly to simplify resource management.
FixedMemoryFile.h
FixedMemoryFile is a concrete class to support high-performance reading from temporary files represented as fixed-size in-memory buffers.
VariableMemoryFile.h
VariableMemoryFile is a concrete class to support high-performance writing to temporary files represented as linked lists of in-memory buffers.
GzippedFile.h
GzippedFile is a concrete class for read access to gzip-compressed files.
GzipFilter.h
GzipFilter is a class to layer on-the-fly gzip compression or decompression over an underlying IO::File object.
SeekableFilter.h
SeekableFilter is a class to convert a streaming IO::File object into a seekable IO::SeekableFile object via in-memory caching.
ReadAheadFilter.h
ReadAheadFilter is an adapter for IO::File objects to provide read throughput via background read-ahead. It's especially useful for high-latency base files such as IO::GzipFilter.
Directory.h
Directory is an abstract base class to access directory-like objects in a generic fashion.
StandardDirectory.h
StandardDirectory is a concrete class derived from IO::Directory to read standard filesystem directories.
OpenFile.h
OpenFile.h contains namespace-global functions to open files using appropriate concrete implementations of the IO::File abstraction.
IFFChunk.h
IFFChunk is a class to read container files in IFF (Interchange File Format) format using an IO::File abstraction.
ZipArchive.h
ZipArchive is a class representing ZIP archive files, using a IO::SeekableFile abstraction to represent the ZIP archive, and granting read access to files stored in a ZIP archive using IO::File abstractions.
XBaseTable.h
XBaseTable is a class to read from database tables in XBase (dBASE III, dBASE IV, FoxPro, Clipper,...) format. It currently only supports basic dBASE III data types, and no memo fields.
TokenSource.h
TokenSource is a class to split the character stream from an object derived from IO::File into a stream of tokens, with flexible definitions of syntactic character classes.
ValueSource.h
ValueSource is a class to split the character stream from an object derived from IO::File into a stream of strings or numbers, with flexible definitions of syntactic character classes.
CSVSource.h
CSVSource is a class implementing a comma-separated value file structure over objects derived from IO::File.
OStream.h
OStream is a wrapper class to layer a std::ostream abstraction over an IO::File object.
FileMonitor.h
FileMonitor is a class to asynchronously monitor changes to selected files or directories in an OS-independent fashion. Currently only implemented for Linux with kernel >= 2.6.13 and glibc >= 2.5, using the inotify service.