Download c-advio.hqx (178,464 KB)
From: oleg@pobox.com
Subject: Advanced i/o & arithmetic compression
Attached is an updated version of c++advio, an advanced i/o &
arithmetic compression classlib, Mac distribution.
The new version is more portable: besides a Mac, the source code
compiles and correctly runs on various UNIX boxes (Sun/Solaris, HP
9000/7xx, FreeBSD, DEC Alpha), and even
package pulls off a few tricks (like accessing a single file buffer
from several (byte/bit/compression) streams, or substituting a base
class in a compiled hierarchy). Yet the package compiles and correctly
works with both GNU (libg++) and a template-based Modena C++ stream
libraries (in CodeWarrior's Metrowerks Standard Library, MSL C++). For
the first time, this release of c++advio includes a Vocabulary
package, (poly/homo)morphic dictionaries with a dynamic "inheritance"
path. The new version also adds a few utility C++ functions, and code
to validate them.
c++advio: Various advanced i/o codings of streams of integers
Keywords: arithmetic coding, start-stop coding, endian i/o,
compression, fall-back
Hot points:
- variable-bit coding of sequences of integers
(including the Arithmetic compression)
- explicit endian specification in dealing with integer streams
- a trick of sharing a stream buffer (a "file") among several streams
- with a validation code to verify everything
- simple database service (vocabulary) featuring polymorphism,
late binding, and dynamic inheritance
- with a commented source and CW11 projects
Please see a README file for more details.
Contents:
README - tells what this is all about and how to use it
c++serv.dr - tells what the other files are for
libserv.a - compiled PowerMac library
libserv.pi - project to make it
*.h, *.cc - source code
v*.cc - verification code (test cases)
test suite.stat - stationary for validation projects
Run Validation Tests - AppleScript applet to run them
ANSI #includes addenda - portability extensions (for non-gcc compilers)
Language: C++, CodeWarrior11
System: System 7.x (7.5.5) but probably 6.x is OK, too.
Comments to: oleg@pobox.com or oleg@acm.org
Version 2.3, Mar 1997