Boost logo

Boost :

From: Jonathan Turkanis (technews_at_[hidden])
Date: 2003-11-28 14:35:26


 The new version of my iostreams library can be found at
    http://groups.yahoo.com/group/boost/files/iostreams_lib.zip.

The library serves two purposes:

- To allow the easy creation of standard C++ stream and stream buffer
classes for new data sources and sinks.
- To provide a convenient interface for defining i/o filters, linking
them together, and attaching them to standard streams and stream buffers.

(See usage examples below.)

As examples of real-world applications, I have included filters based on
Boost.Regex and Jean-loup Gailly's and Mark Adler's zlib compression
library.

The library supports streams for input only, output only and
random-access, as well as double-streams with separate input and output
sequences as in TCP.

It also comes with a collection of adaptors and object generators to
facilitate interaction with the STL.

The library has complete documentation, including a tutorial and
rationale, as well as example programs and a test program. It has been
tested on 12 compiler/standard library combinations on Windows and
Linux. It now works on VC6, with some caveats.

The library shares the namespace boost::io with the i/o state-savers
library and with some functions from Boost.Format.

-----------

Usage examples:

        /* Write compressed data to standard output */

    filtered_ostream out;
    out.push(zlib_compressor());
    out.push(cout);

        /* Read from standard input with 'top' replaced by 'bottom' */

    filtered_istream in;
    in.push(regex_input_filter("\\<top\\>", "bottom"));
    in.push(cin);

        /* Read from a vector */

    vector<char> v;
    filtered_istream in(make_source(v.begin(), v.end()));

-----------

I look forward to suggestions and criticism.

Regards,

Jonathan Turkanis


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk