xrtImapAtomValid

判断文本是否可以作为 IMAP atom 使用。

bool xrtImapAtomValid(xstrview Atom);
参数说明
xstrview Atom原子标识
返回:判断文本是否可以作为 IMAP atom 使用。

示例已编译验证

/* 判断文本是否可以作为 IMAP atom 使用。 */
result = xrtImapAtomValid(Atom);

xrtImapSequenceSetValid

验证序号集合、UID 集合或 SEARCHRES 的 `$` 引用。

bool xrtImapSequenceSetValid(xstrview Set);
参数说明
xstrview Set字节集合
返回:验证序号集合、UID 集合或 SEARCHRES 的 `$` 引用。

示例已编译验证

/* 验证序号集合、UID 集合或 SEARCHRES 的 `$` 引用。 */
result = xrtImapSequenceSetValid(Set);

xrtImapResponseParse

解析 tagged、untagged 或 continuation 响应行。

bool xrtImapResponseParse( xstrview Line, ximapresponseview* pResponse );
参数说明
xstrview LineLne 参数
ximapresponseview* pResponse响应对象
返回:解析 tagged、untagged 或 continuation 响应行。

示例已编译验证

/* 解析 tagged、untagged 或 continuation 响应行。 */
result = xrtImapResponseParse(Line, pResponse);

xrtImapLiteralParse

查找行尾 literal 标记;无标记返回 END,合法标记返回 ITEM。

xmailnext xrtImapLiteralParse( xstrview Line, ximapliteralview* pLiteral );
参数说明
xstrview LineLne 参数
ximapliteralview* pLiteralLteral 参数
返回:查找行尾 literal 标记;无标记返回 END,合法标记返回 ITEM。

示例已编译验证

/* 查找行尾 literal 标记;无标记返回 END,合法标记返回 ITEM。 */
result = xrtImapLiteralParse(Line, pLiteral);

xrtImapCodeParse

解析文本开头的 `[code arguments]`;没有响应码返回 END。

xmailnext xrtImapCodeParse( xstrview Text, ximapcodeview* pCode );
参数说明
xstrview Text文本视图
ximapcodeview* pCode代码
返回:解析文本开头的 `[code arguments]`;没有响应码返回 END。

示例已编译验证

/* 解析文本开头的 `[code arguments]`;没有响应码返回 END。 */
result = xrtImapCodeParse(Text, pCode);

xrtImapNumberParse

解析 `number name [text]`;不是数字响应返回 END。

xmailnext xrtImapNumberParse( xstrview Text, ximapnumberview* pNumber );
参数说明
xstrview Text文本视图
ximapnumberview* pNumber数字
返回:解析 `number name [text]`;不是数字响应返回 END。

示例已编译验证

/* 解析 `number name [text]`;不是数字响应返回 END。 */
result = xrtImapNumberParse(Text, pNumber);

xrtImapAtomCursorInit

初始化空白分隔 atom 游标。

bool xrtImapAtomCursorInit( ximapatomcursor* pCursor, xstrview Text );
参数说明
ximapatomcursor* pCursor游标
xstrview Text文本视图
返回:初始化空白分隔 atom 游标。

示例已编译验证

imapatomcursorinit obj;
xrtImapAtomCursorInit(&obj, pCursor, Text);

xrtImapAtomNext

返回下一 atom;控制字符或 IMAP atom-specials 返回错误。

xmailnext xrtImapAtomNext( ximapatomcursor* pCursor, xstrview* pAtom );
参数说明
ximapatomcursor* pCursor游标
xstrview* pAtom原子标识
返回:返回下一 atom;控制字符或 IMAP atom-specials 返回错误。

示例已编译验证

/* 返回下一 atom;控制字符或 IMAP atom-specials 返回错误。 */
result = xrtImapAtomNext(pCursor, pAtom);

xrtImapCapability

返回已知 IMAP capability 的稳定标记,未知扩展返回零。

uint64 xrtImapCapability(xstrview Capability);
参数说明
xstrview Capability能力列表
返回:返回已知 IMAP capability 的稳定标记,未知扩展返回零。

示例已编译验证

/* 返回已知 IMAP capability 的稳定标记,未知扩展返回零。 */
result = xrtImapCapability(Capability);

xrtImapQuoteWrite

写出转义后的 IMAP quoted string,容量包含末尾零字节。

bool xrtImapQuoteWrite( xstrview Text, char* sOutput, size_t iCapacity, size_t* pOutputSize );
参数说明
xstrview Text文本视图
char* sOutput输出缓冲
size_t iCapacity容量
size_t* pOutputSize出:输出长度
返回:写出转义后的 IMAP quoted string,容量包含末尾零字节。

示例已编译验证

/* 写出转义后的 IMAP quoted string,容量包含末尾零字节。 */
result = xrtImapQuoteWrite(Text, sOutput, iCapacity, pOutputSize);

xrtImapQuote

创建由 xrtFree 释放的 IMAP quoted string。

str xrtImapQuote(xstrview Text, size_t* pOutputSize);
参数说明
xstrview Text文本视图
size_t* pOutputSize出:输出长度
返回:创建由 xrtFree 释放的 IMAP quoted string。

示例已编译验证

/* 创建由 xrtFree 释放的 IMAP quoted string。 */
result = xrtImapQuote(Text, pOutputSize);

xrtImapCommandWrite

安全写出 `Tag Command [Arguments]\r\n`。

bool xrtImapCommandWrite( xstrview Tag, xstrview Command, xstrview Arguments, size_t iMaxLine, char* sOutput, size_t iCapacity, size_t* pOutputSize );
参数说明
xstrview Tag标签
xstrview Command命令文本
xstrview Arguments命令参数
size_t iMaxLineMaxLne 参数
char* sOutput输出缓冲
size_t iCapacity容量
size_t* pOutputSize出:输出长度
返回:安全写出 `Tag Command [Arguments]\r\n`。

示例已编译验证

/* 安全写出 `Tag Command [Arguments]\r\n`。 */
result = xrtImapCommandWrite(Tag, Command, Arguments, iMaxLine, sOutput, iCapacity, pOutputSize);

xrtImapCommand

创建由 xrtFree 释放的 IMAP 命令行。

str xrtImapCommand( xstrview Tag, xstrview Command, xstrview Arguments, size_t iMaxLine, size_t* pOutputSize );
参数说明
xstrview Tag标签
xstrview Command命令文本
xstrview Arguments命令参数
size_t iMaxLineMaxLne 参数
size_t* pOutputSize出:输出长度
返回:创建由 xrtFree 释放的 IMAP 命令行。

示例已编译验证

/* 创建由 xrtFree 释放的 IMAP 命令行。 */
result = xrtImapCommand(Tag, Command, Arguments, iMaxLine, pOutputSize);