                   =====================================
                    FXBzMemoryStream and FXBzFileStream
                   =====================================

FXBzMemoryStream and FXBzFileStream are implementations of the standard FOX
classes FXMemoryStream and FXFileStream which provide data compression
using the bzip2 library. They are designed as drop-in replacements for their
uncompressed counterparts, with almost identical interfaces; the primary
difference is that the position() member function, which is used to set the
stream position, is disabled for these classes. FXBzMemoryStream also adds
a new member function getCompressedSize() which returns the size of the
compressed data in the buffer (which hopefully is much smaller than the
total buffer size).

To quote the bzip2 home page: "bzip2 is a freely available, patent free,
high-quality data compressor. It typically compresses files to within 10%
to 15% of the best available techniques, whilst being around twice as fast
at compression and six times faster at decompression." To download the
latest version of bzip2, please check the bzip2 home page at
http://sources.redhat.com/bzip2.

This code has been tested against fox-0.99.189 and bzip2-1.0.1, the current
stable versions of those libraries as of this writing. Two example programs
are included here; example1.cpp demonstrates the use of FXBzMemoryStream while
example2.cpp demonstrates the use of FXBzFileStream. These are very uninspired
examples but they should get the point across ;)

Please feel free to drop me a line if you have any questions about how to
use these in your applications, especially if you hit on any bugs. I'll try
to keep these up-to-date as both the FOX and bzip2 APIs evolve.

-- Lyle Johnson (lyle@users.sourceforge.net), January 22, 2002.
