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