8 #ifndef BASE64_DECODE_H 
    9 #define BASE64_DECODE_H 
   11 #define BUFFERSIZE 16777216 
   27         decoder(
int buffersize_in = BUFFERSIZE)
 
   28         : _buffersize(buffersize_in)
 
   31         int decode(
char value_in)
 
   33             return base64_decode_value(value_in);
 
   36         int decode(
const char* code_in, 
const int length_in, 
char* plaintext_out)
 
   38             return base64_decode_block(code_in, length_in, plaintext_out, &_state);
 
   41         void decode(std::istream& istream_in, std::ostream& ostream_in)
 
   43             base64_init_decodestate(&_state);
 
   45             const int N = _buffersize;
 
   46             char* code = 
new char[N];
 
   47             char* plaintext = 
new char[N];
 
   53                 istream_in.read((
char*)code, N);
 
   54                 codelength = istream_in.gcount();
 
   55                 plainlength = decode(code, codelength, plaintext);
 
   56                 ostream_in.write((
const char*)plaintext, plainlength);
 
   58             while (istream_in.good() && codelength > 0);
 
   60             base64_init_decodestate(&_state);
 
   71 #endif // BASE64_DECODE_H