Boost logo

Boost :

From: Larry Evans (jcampbell3_at_[hidden])
Date: 2003-06-15 08:31:31


Larry Evans wrote:
> Larry Evans wrote:
>
> [snip]
>
>> Please see the just uploaded marg_ostreambuf.cpp for a
>> little better version.
>
>
> The just uploaded test_ostreambuf_decorator.zip contains
> renamed classes as well as virtual {detach,attach}_ostream
> to avoid using ostream* m_ostream==0 as flag indicating
> the end of the chain of decorators.

The code mentioned MAY be very similar to that of J. Kanze available
at:

http://www.gabi-soft.fr/code/Util/IO/FilteringOutputStream/gb/FilteringOutputStream.hh

I say this because in the comments to the code, in class:

   class GB_FilteringOutputStreambufBase : public GB_iostd::streambuf

and after:

private:
     // insert :
     // --------

there's the following:

     // Inserts a character into the destination. This is where
     // the actual filtering takes place. The function receives
     // the destination streambuf and the character as arguments;
     // in case of error, it should return EOF, otherwise,
     // anything else. Exactly what it does with the character is
     // upto the function in the derived class: it can pass it on
     // to the destination, simply drop it, send a dozen or so
     // other characters as well, or whatever it wants.

Since this is essentially what marg_ostreambuf does when it sees a
'\n' character( i.e. it outputs the margin before the next output
char) , I thought maybe this would be a better, more general, solution
to the problem solved by marg_ostreambuf and marg_ostream in:

   http://groups.yahoo.com/group/boost/files/col_io

What do other's think. Would J. Kanze be interested and have time to
contribute this work to boost?


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