|
Boost : |
From: Sebastian Redl (sebastian.redl_at_[hidden])
Date: 2007-11-30 18:43:33
Hi,
Back in June I posted some thoughts about what I'd expect from a
properly done I/O library.[1] Based on the ensuing discussion I then
designed such a library. Over the last months, I've worked hard at
implementing the thing.
It is with quite a bit of pride, then, that I announce the IOChain
preview release 1.
You can get the source here:
http://stud3.tuwien.ac.at/~e0226430/iochain-preview-1.tar.bz2
There are currently some assumptions in the build files that require a
tiny bit of setup.
1) Unpack the source into some directory.
2) Grab the latest Boost trunk.
3) In the unpacked source, make a symlink to the Boost trunk called
"realboost".
E.g.
tar -xjf iochain-preview-1.tar.bz2
cd iochain
ln -s /path/to/boost/trunk realboost
4) Add zlib to your user config. If you have zlib where it is easily
found, this is as easy as adding this line to ${HOME}/user-config.jam:
lib zlib : : <name>z ;
I'm sorry for the inconvenience.
Documentation is in quickbook format. A generated version is available here:
http://stud3.tuwien.ac.at/~e0226430/iochain/
This is a preview release. Its only purpose is to get comments. It has
not seen widespread compiler testing yet (only GCC 4.1 on a 64-bit
Linux). Features implemented so far:
- The infrastructure.
- File I/O (POSIX only - a Win32 implementation exists, but hasn't seen
a compiler yet, so don't expect it to compile, much less work)
- In-memory I/O (fixed buffers and std::vector).
- Read-ahead and write-collect buffers (like buffering in the current
streams).
- Various tools to support backtracking.
- Combining bytes into larger types. (Only naive methods currently.)
- On-the-fly CRC calculation.
- On-the-fly zlib compression.
The ultimate goal of the library is to completely replace iostreams.
All discussion, suggestions, and criticisms are welcome.
Sebastian Redl
[1] http://lists.boost.org/Archives/boost/2007/06/123478.php
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk