Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

FilterStreambuf Class Template Reference

#include <filterstreambuf.h>

Inheritance diagram for FilterStreambuf:

Inheritance graph
[legend]
Collaboration diagram for FilterStreambuf:

Collaboration graph
[legend]
List of all members.

Public Methods

 FilterStreambuf (Filter &filter)
virtual ~FilterStreambuf ()
const Filter & filter () const
Filter & filter ()
FilterStreambuf & filter (Filter &filter)
bool close ()

Protected Methods

virtual int sync ()
virtual int underflow ()
virtual int overflow (int c)

Private Attributes

char inbuf_ [1]
Filter & filter_

template<class Filter>
class FilterStreambuf< Filter >


Constructor & Destructor Documentation

template<class Filter>
FilterStreambuf< Filter >::FilterStreambuf Filter & filter [inline, explicit]
 

Definition at line 31 of file filterstreambuf.h.

00031                                           : filter_(filter) {
00032     setg(inbuf_,inbuf_+1,inbuf_+1); // very small input buffer
00033     setp(0,0); // no output buffer
00034     }

template<class Filter>
virtual FilterStreambuf< Filter >::~FilterStreambuf [inline, virtual]
 

Definition at line 37 of file filterstreambuf.h.

00037 {}


Member Function Documentation

template<class Filter>
const Filter& FilterStreambuf< Filter >::filter const [inline]
 

Definition at line 40 of file filterstreambuf.h.

00040 { return filter_; }

template<class Filter>
Filter& FilterStreambuf< Filter >::filter [inline]
 

Definition at line 41 of file filterstreambuf.h.

00041 { return filter_; }

template<class Filter>
FilterStreambuf& FilterStreambuf< Filter >::filter Filter & filter [inline]
 

Definition at line 44 of file filterstreambuf.h.

00044 { filter_ = filter; return *this; }

template<class Filter>
bool FilterStreambuf< Filter >::close [inline]
 

Definition at line 47 of file filterstreambuf.h.

00047 { int tmp=sync(); filter_.close(); return tmp; }

template<class Filter>
virtual int FilterStreambuf< Filter >::sync [inline, protected, virtual]
 

Definition at line 52 of file filterstreambuf.h.

Referenced by close().

00052 { return filter_.sync(); }

template<class Filter>
virtual int FilterStreambuf< Filter >::underflow [inline, protected, virtual]
 

Definition at line 53 of file filterstreambuf.h.

00053                            { 
00054     if (gptr()<egptr()) // buffer not empty
00055       return *gptr();
00056     if ( (inbuf_[0] = filter_.get()) != EOF)
00057       setg(inbuf_,inbuf_,inbuf_+1);
00058     return inbuf_[0];
00059     }  

template<class Filter>
virtual int FilterStreambuf< Filter >::overflow int c [inline, protected, virtual]
 

Definition at line 60 of file filterstreambuf.h.

00060 { return filter_.put(c); }


Member Data Documentation

template<class Filter>
char FilterStreambuf::inbuf_[1] [private]
 

Definition at line 63 of file filterstreambuf.h.

template<class Filter>
Filter& FilterStreambuf::filter_ [private]
 

Definition at line 64 of file filterstreambuf.h.


The documentation for this class was generated from the following file:
FSM [ August, 2001]