#include <mime_code.hpp>
|
| mime_code (bool addCrlf, bool addInvalid, const char *encoding_type) |
|
virtual | ~mime_code (void)=0 |
|
const char * | get_encoding_type (void) const |
|
virtual void | encode_update (const char *src, int n, string *out) |
|
virtual void | encode_finish (string *out) |
|
virtual void | decode_update (const char *src, int n, string *out) |
|
virtual void | decode_finish (string *out) |
|
virtual void | reset (void) |
|
virtual void | add_crlf (bool on) |
|
virtual void | add_invalid (bool on) |
|
void | init (const unsigned char *toTab, const unsigned char *unTab, unsigned char fillChar) |
|
void | set_status (bool encoding=true) |
|
virtual int | push_pop (const char *in, size_t len, string *out, size_t max=0) |
|
virtual int | pop_end (string *out, size_t max=0) |
|
virtual void | clear (void) |
|
| pipe_stream () |
|
virtual | ~pipe_stream () |
|
◆ mime_code()
acl::mime_code::mime_code |
( |
bool |
addCrlf, |
|
|
bool |
addInvalid, |
|
|
const char * |
encoding_type |
|
) |
| |
构造函数
- 参数
-
addCrlf | {bool} 非流式编码时是否在末尾添加 "\r\n" |
addInvalid | {bool} 流式解码时是否遇到非法字符是否原样拷贝 |
encoding_type | {const char*} 编码类型标识符 |
◆ ~mime_code()
virtual acl::mime_code::~mime_code |
( |
void |
| ) |
|
|
pure virtual |
◆ add_crlf()
virtual void acl::mime_code::add_crlf |
( |
bool |
on | ) |
|
|
virtual |
◆ add_invalid()
virtual void acl::mime_code::add_invalid |
( |
bool |
on | ) |
|
|
virtual |
◆ clear()
virtual void acl::mime_code::clear |
( |
void |
| ) |
|
|
virtual |
◆ create()
static mime_code* acl::mime_code::create |
( |
int |
encoding, |
|
|
bool |
warn_unsupport = true |
|
) |
| |
|
static |
静态函数,根据编码类型 MIME_ENC_XXX (参见:mime_define.hpp) 获得 对应的编解码对象,当有当 encoding 类型为 MIME_ENC_QP, MIME_ENC_BASE64, MIME_ENC_UUCODE, MIME_ENC_XXCODE
- 参数
-
encoding | {int} 编码类型,只能为 MIME_ENC_QP, MIME_ENC_BASE64, MIME_ENC_UUCODE, MIME_ENC_XXCODE |
warn_unsupport | {bool} 当未找到匹配的编码对象时是否记录警告信息 |
- 返回
- {mime_code*} 编码对象,当未找到匹配的编码类型时返回 NULL
◆ create_decode_tab()
static void acl::mime_code::create_decode_tab |
( |
const unsigned char * |
toTab, |
|
|
string * |
out |
|
) |
| |
|
static |
根据输入的编码表生成相应的解码表
- 参数
-
toTab | {const unsigned char*} 编码表字符串 |
out | {string*} 存储结果 |
◆ decode_finish()
virtual void acl::mime_code::decode_finish |
( |
string * |
out | ) |
|
|
virtual |
解码结束后需要调用此函数来对可能存在于临时缓存中的 源数据进行最后的解码
- 参数
-
out | {string*} 存储解码结果, 可以通过比较 调用此函数前后的 out->length() 来判断该函数是进行了 解码过程还是临时缓存过程; 如果使用了 out 中的结果数据, 则用完后应该调用 out->clear() 清空用过的数据 |
被 acl::mime_quoted_printable 重载.
◆ decode_update()
virtual void acl::mime_code::decode_update |
( |
const char * |
src, |
|
|
int |
n, |
|
|
string * |
out |
|
) |
| |
|
virtual |
解码过程, 添加经过编码的数据, 经本函数后进行解码, 如果 输入的数据不满足解码时的字节数条件, 则内部仅是临时缓存 该数据, 等满足解码条件时才进行解码
- 参数
-
src | {const char*} 经过编码后的数据 |
n | {int} 数据长度 |
out | {string*} 存储解码结果, 可以通过比较 调用此函数前后的 out->length() 来判断该函数是进行了 解码过程还是临时缓存过程; 如果使用了 out 中的结果数据, 则用完后应该调用 out->clear() 清空用过的数据 |
被 acl::mime_quoted_printable 重载.
◆ encode_finish()
virtual void acl::mime_code::encode_finish |
( |
string * |
out | ) |
|
|
virtual |
编码结束后需要调用此函数来对可能存在于临时缓存中的 源数据进行最后的编码
- 参数
-
out | {string*} 存储编码结果, 可以通过比较 调用此函数前后的 out->length() 来判断该函数是进行了 编码过程还是临时缓存过程; 如果使用了 out 中的结果数据, 则用完后应该调用 out->clear() 清空用过的数据 |
被 acl::mime_quoted_printable 重载.
◆ encode_update()
virtual void acl::mime_code::encode_update |
( |
const char * |
src, |
|
|
int |
n, |
|
|
string * |
out |
|
) |
| |
|
virtual |
编码过程, 添加源数据, 结果存于 out 中, 如果输入的 数据不满足编码时缓存条件, 则内部仅临时缓存而不做编码
- 参数
-
src | {const char*} 源数据地址 |
n | {int} 源数据长度 |
out | {string*} 存储编码结果, 可以通过比较 调用此函数前后的 out->length() 来判断该函数是进行了 编码过程还是临时缓存过程; 如果使用了 out 中的结果数据, 则用完后应该调用 out->clear() 清空用过的数据 |
被 acl::mime_quoted_printable 重载.
◆ get_encoding_type()
const char* acl::mime_code::get_encoding_type |
( |
void |
| ) |
const |
|
inline |
获得编码类型标识符
- 返回
- {const char*}
在文件 mime_code.hpp 第 27 行定义.
29 return encoding_type_;
◆ init()
void acl::mime_code::init |
( |
const unsigned char * |
toTab, |
|
|
const unsigned char * |
unTab, |
|
|
unsigned char |
fillChar |
|
) |
| |
如果子类未重载以上虚函数而因此使用基类的以上默认虚函数时 则子类必须调用此函数设置自己的编码表, 解码表及填充字符
- 参数
-
toTab | {const unsigned char*} 编码表 |
unTab | {const unsigned char*} 解码表 |
fillChar | {unsigned char} 填充字符 |
◆ pop_end()
virtual int acl::mime_code::pop_end |
( |
string * |
out, |
|
|
size_t |
max = 0 |
|
) |
| |
|
virtual |
◆ push_pop()
virtual int acl::mime_code::push_pop |
( |
const char * |
in, |
|
|
size_t |
len, |
|
|
string * |
out, |
|
|
size_t |
max = 0 |
|
) |
| |
|
virtual |
◆ reset()
virtual void acl::mime_code::reset |
( |
void |
| ) |
|
|
virtual |
◆ set_status()
void acl::mime_code::set_status |
( |
bool |
encoding = true | ) |
|
设置转码器的工作状态,因为该转码器由编码器和解码器组成, 所以在使用 pipe_stream 方式工作时必须指定该转码器的状态 以指定是处于编码器状态还是解码器状态
- 参数
-
encoding | {bool} 如果为 true 表示为编码器状态,否则 为解码器状态 |
该类的文档由以下文件生成: