39     virtual void begin() = 0;
 
   40     virtual void end() = 0;
 
   42     virtual std::string encode(
const std::string&) = 0;
 
   43     virtual std::string decode(
const std::string&) = 0;
 
   65    : m_streamBuffer(buffer), m_filter(filter)
 
   67     setp(m_outBuffer, m_outBuffer + (m_outBufferSize - 1));
 
   68     setg(m_inBuffer + m_inPutback, m_inBuffer + m_inPutback,
 
   69          m_inBuffer + m_inPutback);
 
   75   static const int m_outBufferSize = 10;
 
   76   char m_outBuffer[m_outBufferSize];
 
   78   static const int m_inBufferSize = 10;
 
   79   static const int m_inPutback = 4;
 
   80   char m_inBuffer[m_inBufferSize];
 
   84     int num = pptr() - pbase();
 
   85     std::string encoded = m_filter.encode(std::string(pbase(), pptr()));
 
   86     m_streamBuffer.sputn(encoded.c_str(), (
long) encoded.size());
 
   91   virtual int_type overflow(int_type c);
 
   92   virtual int_type underflow();
 
   97   std::streambuf& m_streamBuffer;