xrtHttpLanguageRangeValid

判断文本是否是 RFC 4647 basic language range;纯谓词不修改错误槽。

bool xrtHttpLanguageRangeValid(xstrview Range);
参数说明
xstrview RangeRange 参数
返回:判断文本是否是 RFC 4647 basic language range;纯谓词不修改错误槽。

示例已编译验证

/* 判断文本是否是 RFC 4647 basic language range;纯谓词不修改错误槽。 */
result = xrtHttpLanguageRangeValid(Range);

xrtHttpLanguageTagValid

判断文本是否是可用于匹配的基本语言标签;纯谓词不修改错误槽。

bool xrtHttpLanguageTagValid(xstrview Tag);
参数说明
xstrview Tag标签
返回:判断文本是否是可用于匹配的基本语言标签;纯谓词不修改错误槽。

示例已编译验证

/* 判断文本是否是可用于匹配的基本语言标签;纯谓词不修改错误槽。 */
result = xrtHttpLanguageTagValid(Tag);

xrtHttpLanguageCursorInit

初始化可重复使用的 Accept-Language 字段游标。

void xrtHttpLanguageCursorInit(xhttplanguagecursor* pCursor);
参数说明
xhttplanguagecursor* pCursor游标
返回:初始化可重复使用的 Accept-Language 字段游标。

示例已编译验证

httplanguagecursorinit obj;
xrtHttpLanguageCursorInit(&obj, pCursor);

xrtHttpLanguageRangeNext

严格迭代一个 Accept-Language 字段值。

xhttpnext xrtHttpLanguageRangeNext( xstrview List, size_t* pOffset, xhttplanguagerange* pRange );
参数说明
xstrview ListLst 参数
size_t* pOffset出:偏移
xhttplanguagerange* pRangeRange 参数
返回:严格迭代一个 Accept-Language 字段值。

示例已编译验证

/* 严格迭代一个 Accept-Language 字段值。 */
result = xrtHttpLanguageRangeNext(List, pOffset, pRange);

xrtHttpAcceptLanguageNext

按线路顺序跨越全部重复 Accept-Language 字段迭代语言范围。

xhttpnext xrtHttpAcceptLanguageNext( const xhttpfield* pFields, size_t iCount, xhttplanguagecursor* pCursor, xhttplanguagerange* pRange );
参数说明
const xhttpfield* pFields字段数组
size_t iCount数量
xhttplanguagecursor* pCursor游标
xhttplanguagerange* pRangeRange 参数
返回:按线路顺序跨越全部重复 Accept-Language 字段迭代语言范围。

示例已编译验证

/* 按线路顺序跨越全部重复 Accept-Language 字段迭代语言范围。 */
result = xrtHttpAcceptLanguageNext(pFields, iCount, pCursor, pRange);

xrtHttpLanguageBasicMatch

按 RFC 4647 Basic Filtering 判断语言范围是否匹配语言标签。

xhttpnext xrtHttpLanguageBasicMatch( xstrview Range, xstrview Tag );
参数说明
xstrview RangeRange 参数
xstrview Tag标签
返回:按 RFC 4647 Basic Filtering 判断语言范围是否匹配语言标签。

示例已编译验证

/* 按 RFC 4647 Basic Filtering 判断语言范围是否匹配语言标签。 */
result = xrtHttpLanguageBasicMatch(Range, Tag);

xrtHttpAcceptLanguageMatch

计算语言标签的有效 Accept-Language 匹配;缺失字段质量为 1000。

bool xrtHttpAcceptLanguageMatch( const xhttpfield* pFields, size_t iCount, xstrview Tag, xhttplanguagematch* pMatch );
参数说明
const xhttpfield* pFields字段数组
size_t iCount数量
xstrview Tag标签
xhttplanguagematch* pMatch出:匹配详情
返回:计算语言标签的有效 Accept-Language 匹配;缺失字段质量为 1000。

示例已编译验证

/* 计算语言标签的有效 Accept-Language 匹配;缺失字段质量为 1000。 */
result = xrtHttpAcceptLanguageMatch(pFields, iCount, Tag, pMatch);

xrtHttpAcceptLanguageQuality

返回语言标签的有效质量;错误与不可接受都返回零,错误槽区分二者。

uint16 xrtHttpAcceptLanguageQuality( const xhttpfield* pFields, size_t iCount, xstrview Tag );
参数说明
const xhttpfield* pFields字段数组
size_t iCount数量
xstrview Tag标签
返回:返回语言标签的有效质量;错误与不可接受都返回零,错误槽区分二者。

示例已编译验证

/* 返回语言标签的有效质量;错误与不可接受都返回零,错误槽区分二者。 */
result = xrtHttpAcceptLanguageQuality(pFields, iCount, Tag);

xrtHttpAcceptLanguageSelect

使用 Basic Filtering 从服务端偏好顺序中选择最高质量语言。

xhttpnext xrtHttpAcceptLanguageSelect( const xhttpfield* pFields, size_t iFieldCount, const xstrview* pTags, size_t iTagCount, size_t* pIndex );
参数说明
const xhttpfield* pFields字段数组
size_t iFieldCount字段数量
const xstrview* pTagsTags 参数
size_t iTagCountTagCount 参数
size_t* pIndex出:下标
返回:使用 Basic Filtering 从服务端偏好顺序中选择最高质量语言。

示例已编译验证

/* 使用 Basic Filtering 从服务端偏好顺序中选择最高质量语言。 */
result = xrtHttpAcceptLanguageSelect(pFields, iFieldCount, pTags, iTagCount, pIndex);

xrtHttpAcceptLanguageLookup

按 RFC 4647 Lookup 逐级回退,并返回可用语言数组中的索引。

xhttpnext xrtHttpAcceptLanguageLookup( const xhttpfield* pFields, size_t iFieldCount, const xstrview* pTags, size_t iTagCount, size_t* pIndex );
参数说明
const xhttpfield* pFields字段数组
size_t iFieldCount字段数量
const xstrview* pTagsTags 参数
size_t iTagCountTagCount 参数
size_t* pIndex出:下标
返回:按 RFC 4647 Lookup 逐级回退,并返回可用语言数组中的索引。

示例已编译验证

/* 按 RFC 4647 Lookup 逐级回退,并返回可用语言数组中的索引。 */
result = xrtHttpAcceptLanguageLookup(pFields, iFieldCount, pTags, iTagCount, pIndex);