A streambuf specialization that cooperates with a filter class object. More...
#include <filterstreambuf.h>
Public Member Functions | |
filterstreambuf (Filter &filter) | |
The constructor remembers the filter to which I/O will be forwarded. | |
virtual | ~filterstreambuf () |
This is already virtual in streambuf. | |
const Filter & | filter () const |
Filter & | filter () |
filterstreambuf & | filter (Filter &filter) |
Set underlying filter. | |
bool | close () |
Close -- indicate intention not to use the filter anymore. | |
virtual int | sync () |
Override iostream::sync(). | |
Protected Member Functions | |
virtual int | underflow () |
Override iostream::underflow(). | |
virtual int | overflow (int c) |
Override iostream::overflow(). | |
Private Attributes | |
Filter & | filter_ |
char | inbuf_ [1] |
char | outbuf_ [1] |
A streambuf specialization that cooperates with a filter class object.
A filterstreambuf does not buffer data, but immediately passes them on (resp. obtains them from) to the filter.
The requirements for the Filter template parameter are as follows:
class Filter { public: int get(); // return next input char or Traits::eof int put(int c); // output c if c!=EOF, return EOF if error int sync(); // synchronize filter, return 0 (ok) or -1 (EOF) void close(); // close filter, no obligations.. ios_base::iostate state(); // return status of filter };
Here, state() is not used by filterstreambuf but may be convenient for streams based on a filterstreambuf: the constructor can use basic_ios::clear(filter.state()) to inherit the initial state of the filter.
Definition at line 38 of file filterstreambuf.h.
Dv::Util::filterstreambuf< Filter >::filterstreambuf | ( | Filter & | filter | ) | [inline, explicit] |
The constructor remembers the filter to which I/O will be forwarded.
filter | to which I/O operations will be forwarded. |
Definition at line 47 of file filterstreambuf.h.
References Dv::Util::filterstreambuf< Filter >::inbuf_, and Dv::Util::filterstreambuf< Filter >::outbuf_.
virtual Dv::Util::filterstreambuf< Filter >::~filterstreambuf | ( | ) | [inline, virtual] |
This is already virtual in streambuf.
Definition at line 54 of file filterstreambuf.h.
const Filter& Dv::Util::filterstreambuf< Filter >::filter | ( | ) | const [inline] |
Definition at line 58 of file filterstreambuf.h.
References Dv::Util::filterstreambuf< Filter >::filter_.
Filter& Dv::Util::filterstreambuf< Filter >::filter | ( | ) | [inline] |
Definition at line 62 of file filterstreambuf.h.
References Dv::Util::filterstreambuf< Filter >::filter_.
filterstreambuf& Dv::Util::filterstreambuf< Filter >::filter | ( | Filter & | filter | ) | [inline] |
Set underlying filter.
filter | to which I/O operations will be forwarded. |
Definition at line 70 of file filterstreambuf.h.
References Dv::Util::filterstreambuf< Filter >::filter_.
bool Dv::Util::filterstreambuf< Filter >::close | ( | ) | [inline] |
Close -- indicate intention not to use the filter anymore.
Definition at line 75 of file filterstreambuf.h.
References Dv::Util::filterstreambuf< Filter >::filter_, and Dv::Util::filterstreambuf< Filter >::sync().
virtual int Dv::Util::filterstreambuf< Filter >::sync | ( | ) | [inline, virtual] |
Override iostream::sync().
Definition at line 80 of file filterstreambuf.h.
References Dv::Util::filterstreambuf< Filter >::filter_.
Referenced by Dv::Util::filterstreambuf< Filter >::close().
virtual int Dv::Util::filterstreambuf< Filter >::underflow | ( | ) | [inline, protected, virtual] |
Override iostream::underflow().
Definition at line 86 of file filterstreambuf.h.
References Dv::Util::filterstreambuf< Filter >::filter_, and Dv::Util::filterstreambuf< Filter >::inbuf_.
virtual int Dv::Util::filterstreambuf< Filter >::overflow | ( | int | c | ) | [inline, protected, virtual] |
Override iostream::overflow().
c | next char to put |
Definition at line 98 of file filterstreambuf.h.
References Dv::Util::filterstreambuf< Filter >::filter_.
Filter& Dv::Util::filterstreambuf< Filter >::filter_ [private] |
Definition at line 101 of file filterstreambuf.h.
Referenced by Dv::Util::filterstreambuf< Filter >::close(), Dv::Util::filterstreambuf< Filter >::filter(), Dv::Util::filterstreambuf< Filter >::overflow(), Dv::Util::filterstreambuf< Filter >::sync(), and Dv::Util::filterstreambuf< Filter >::underflow().
char Dv::Util::filterstreambuf< Filter >::inbuf_[1] [private] |
Definition at line 102 of file filterstreambuf.h.
Referenced by Dv::Util::filterstreambuf< Filter >::filterstreambuf(), and Dv::Util::filterstreambuf< Filter >::underflow().
char Dv::Util::filterstreambuf< Filter >::outbuf_[1] [private] |
Definition at line 103 of file filterstreambuf.h.
Referenced by Dv::Util::filterstreambuf< Filter >::filterstreambuf().
dvutil-1.0.10 | [ 5 December, 2009] |