#include <TransferEncoding.h>
|
static ByteString | encode (const ByteString &_str) |
Definition at line 39 of file TransferEncoding.h.
◆ encode()
ByteString Base64Encoder::encode |
( |
const ByteString & | _str | ) |
|
|
static |
Definition at line 193 of file TransferEncoding.cpp.
194{
196
197 size_t nAllocLength = ((_str.length() + 2) / 3) * 4;
199
200 ByteBuffer*
buf = ByteBuffer::create(nAllocLength);
202
204 size_t len = _str.length();
205 for(
size_t i = 1;
len >= 3;
len -= 3, src += 3)
206 {
207 *dest++ = aBase64Table[src[0] >> 2];
208 *dest++ = aBase64Table[((src[0] & 0x03) << 4) + (src[1] >> 4)];
209 *dest++ = aBase64Table[((src[1] & 0x0f) << 2) + (src[2] >> 6)];
210 *dest++ = aBase64Table[src[2] & 0x3f];
211 if ((i++) == 19)
212 {
215 i = 1;
216 }
217 }
218
220 {
221 *dest++ = aBase64Table[src[0] >> 2];
223 {
224 *dest++ = aBase64Table[((src[0] & 0x03) << 4) + (src[1] >> 4)];
225 *dest++ = aBase64Table[((src[1] & 0x0f) << 2)];
227 }
228 else
229 {
230 *dest++ = aBase64Table[((src[0] & 0x03) << 4)];
233 }
234 }
235
238
241 buf->__dataLength = (
char*) dest -
buf->data();
243
247}
#define __DCL_ASSERT(expr)
#define BASE64_PADDING_CHAR
The documentation for this class was generated from the following files: