8 #ifndef BASE64_ENCODE_H
9 #define BASE64_ENCODE_H
11 #define BUFFERSIZE 16777216
27 encoder(
int buffersize_in = BUFFERSIZE)
28 : _buffersize(buffersize_in)
31 int encode(
char value_in)
33 return base64_encode_value(value_in);
36 int encode(
const char* code_in,
const int length_in,
char* plaintext_out)
38 return base64_encode_block(code_in, length_in, plaintext_out, &_state);
41 int encode_end(
char* plaintext_out)
43 return base64_encode_blockend(plaintext_out, &_state);
46 void encode(std::istream& istream_in, std::ostream& ostream_in)
48 base64_init_encodestate(&_state);
50 const int N = _buffersize;
51 char* plaintext =
new char[N];
52 char* code =
new char[2*N];
58 istream_in.read(plaintext, N);
59 plainlength = istream_in.gcount();
61 codelength = encode(plaintext, plainlength, code);
62 ostream_in.write(code, codelength);
64 while (istream_in.good() && plainlength > 0);
66 codelength = encode_end(code);
67 ostream_in.write(code, codelength);
69 base64_init_encodestate(&_state);
78 #endif // BASE64_ENCODE_H