Boost logo

Boost :

From: Dietmar Kuehl (dietmar_kuehl_at_[hidden])
Date: 2000-05-30 11:03:02

--- scleary_at_[hidden] wrote:
> I have a number of small "glue" classes, which I use to make
> different libraries work together more smoothly.

I think most of the stuff fits into the bigger context of I/O utilities
which should include glues to other libraries amoung other stuff: The
standard library provides basic I/O capabilities which can be extended
to support lots of different I/O mechanisms.

> FILEiter: input/output iterators for FILE * streams (using
> getc/putc/getwc/putwc).

There are more I/O related iterators which might be useful, eg. the
'otabstream_iterator' I posted in news today which just set the width
prior to writing the object (to generated neatly aligned tables using
'std::copy(c.begin(), c.end(), ...)').

> FILEstream: buffers and iostream classes for FILE * streams.
> HANDLEstream: buffers and iostream classes for Win32 file HANDLEs.
> VCLstream: buffers and iostream classes for BCB VCL "TStream *"s.

... and I got a whole bunch of other stream buffers/stream like eg.:

- posixbuf - explicitly using a file descriptor; might also provide
  access to additional POSIX features like eg. locking and file control
- teebuf - writing to two destination simultaneously
- nullbuf - do nothing but be successful (for input this means reading
  of null characters) and efficient (ie. it would use an output buffer
  which is just discarded when overflowing)
- queuebuf - store characters written to the buffer but not yet read
  from it (not yet implemented)
- memorybuf - provide stream access to a fixed size chunk of memory
- stdiobuf - my name for FILEstream
- pipebuf - communicate with a spawned process (not yet implemented)
- gzipbuf - read/write compressed data (not yet implemented)
- convertbuf - now, this is a big one: it does the code conversion
  like basic_filebuf does and delegates actual processing to another
  stream buffer. (partially implemented in my IOStream implementation)

There are other I/O utilities, too, like eg. a class restoring the
format flags and skiping other characters than only whitespace (just
examples I can immediately remember because I dealt with them
recently). I was thinking about packaging the stuff I have ready and
probably it would make sense to at least put the various streams and
stream buffers into one package. If there is interest in such stuff in
the first place...


Do You Yahoo!?
Kick off your party with Yahoo! Invites.

Boost list run by bdawes at, gregod at, cpdaniel at, john at