xrtHttpETagParse
严格解析一个 entity-tag;未对齐 Tag 可用,Opaque 借用输入且不含双引号。
| 参数 | 说明 |
|---|---|
| xstrview Text | 文本视图 |
| xhttpetag* pTag | 认证标签 |
示例已编译验证
/* 严格解析一个 entity-tag;未对齐 Tag 可用,Opaque 借用输入且不含双引号。 */ result = xrtHttpETagParse(Text, pTag);
xrtHttpETagNext
XRT_API xhttpnext xrtHttpETagNext( xstrview List, size_t* pOffset, xhttpetagitem* pItem );
示例已编译验证
/* XRT_API xhttpnext xrtHttpETagNext( xstrview List, size_t* pOffset, xhttpetagitem* pItem ); */ result = xrtHttpETagNext();
xrtHttpETagStrongEqual
按强规则比较两个可未对齐的实体标签,任一弱标签都不匹配。
| 参数 | 说明 |
|---|---|
| const xhttpetag* pLeft | 左操作数 |
| const xhttpetag* pRight | 右操作数 |
示例已编译验证
/* 按强规则比较两个可未对齐的实体标签,任一弱标签都不匹配。 */ result = xrtHttpETagStrongEqual(pLeft, pRight);
xrtHttpETagWeakEqual
按弱规则比较两个可未对齐的实体标签,只比较 opaque-tag 正文。
| 参数 | 说明 |
|---|---|
| const xhttpetag* pLeft | 左操作数 |
| const xhttpetag* pRight | 右操作数 |
示例已编译验证
/* 按弱规则比较两个可未对齐的实体标签,只比较 opaque-tag 正文。 */ result = xrtHttpETagWeakEqual(pLeft, pRight);
xrtHttpETagListStrongHas
XRT_API bool xrtHttpETagListStrongHas( xstrview List, const xhttpetag* pTag );
示例已编译验证
/* XRT_API bool xrtHttpETagListStrongHas( xstrview List, const xhttpetag* pTag ); */ result = xrtHttpETagListStrongHas();
xrtHttpETagListWeakHas
XRT_API bool xrtHttpETagListWeakHas( xstrview List, const xhttpetag* pTag );
示例已编译验证
/* XRT_API bool xrtHttpETagListWeakHas( xstrview List, const xhttpetag* pTag ); */ result = xrtHttpETagListWeakHas();
xrtHttpETagWrite
写出可未对齐的 entity-tag;未对齐 Size 可用,结果不附加零字符。
| 参数 | 说明 |
|---|---|
| const xhttpetag* pTag | 认证标签 |
| void* pOutput | 出:输出缓冲 |
| size_t iCapacity | 容量 |
| size_t* pSize | 出:大小 |
示例已编译验证
/* 写出可未对齐的 entity-tag;未对齐 Size 可用,结果不附加零字符。 */ result = xrtHttpETagWrite(pTag, pOutput, iCapacity, pSize);
xrtHttpETagBuild
从可未对齐的 entity-tag 构建零结尾文本,返回值由 xrtFree 释放。
| 参数 | 说明 |
|---|---|
| const xhttpetag* pTag | 认证标签 |
| size_t* pSize | 出:大小 |
示例已编译验证
/* 从可未对齐的 entity-tag 构建零结尾文本,返回值由 xrtFree 释放。 */ result = xrtHttpETagBuild(pTag, pSize);
xrtHttpPreconditionsEvaluate
XRT_API xhttpprecondition xrtHttpPreconditionsEvaluate( xstrview Method, const xhttpfield* pFields, size_t iFieldCount, const xhttprepresentation* pCurrent );
示例已编译验证
/* XRT_API xhttpprecondition xrtHttpPreconditionsEvaluate( xstrview Method, const xhttpfield* pFields, size_t iFieldCount, const xhttprepresentation* pCurrent ); */ result = xrtHttpPreconditionsEvaluate();
xrtHttpIfRangeMatch
XRT_API bool xrtHttpIfRangeMatch( xstrview Value, const xhttprepresentation* pCurrent );
示例已编译验证
/* XRT_API bool xrtHttpIfRangeMatch( xstrview Value, const xhttprepresentation* pCurrent ); */ result = xrtHttpIfRangeMatch();
xrtHttpRangeParse
把 Range 字段拆成范围单位和单位专用集合;未对齐输出仍借用输入。
| 参数 | 说明 |
|---|---|
| xstrview Value | 值 |
| xstrview* pUnit | Unt 参数 |
| xstrview* pSet | 集合对象 |
示例已编译验证
/* 把 Range 字段拆成范围单位和单位专用集合;未对齐输出仍借用输入。 */ result = xrtHttpRangeParse(Value, pUnit, pSet);
xrtHttpByteRangeNext
迭代 byte-range-set;Offset 和 Spec 可以未对齐,空列表元素会被忽略。
| 参数 | 说明 |
|---|---|
| xstrview Set | 字节集合 |
| size_t* pOffset | 出:偏移 |
| xhttprangespec* pSpec | 模式规格 |
示例已编译验证
/* 迭代 byte-range-set;Offset 和 Spec 可以未对齐,空列表元素会被忽略。 */ result = xrtHttpByteRangeNext(Set, pOffset, pSpec);
xrtHttpByteRangeCount
验证并统计完整 byte-range-set;未对齐 Count 可用,集合必须至少包含一项。
| 参数 | 说明 |
|---|---|
| xstrview Set | 字节集合 |
| size_t* pCount | 出:数量 |
示例已编译验证
/* 验证并统计完整 byte-range-set;未对齐 Count 可用,集合必须至少包含一项。 */ result = xrtHttpByteRangeCount(Set, pCount);
xrtHttpByteRangeResolve
XRT_API xhttprangeresult xrtHttpByteRangeResolve( const xhttprangespec* pSpec, uint64 iLength, xhttpbyterange* pRange );
示例已编译验证
/* XRT_API xhttprangeresult xrtHttpByteRangeResolve( const xhttprangespec* pSpec, uint64 iLength, xhttpbyterange* pRange ); */ result = xrtHttpByteRangeResolve();
xrtHttpByteRangesResolve
XRT_API xhttprangeresult xrtHttpByteRangesResolve( xstrview Set, uint64 iLength, xhttpbyterange* pRanges, size_t iCapacity, uint64 iMergeGap, size_t* pCount, uint64* pSelectedLength );
示例已编译验证
/* XRT_API xhttprangeresult xrtHttpByteRangesResolve( xstrview Set, uint64 iLength, xhttpbyterange* pRanges, size_t iCapacity, uint64 iMergeGap, size_t* pCount, uint64* pSelectedLength ); */ result = xrtHttpByteRangesResolve();
xrtHttpRangeWrite
写出可未对齐的 Range 项数组;空输出查询长度,Size 也可以未对齐。
| 参数 | 说明 |
|---|---|
| const xhttprangespec* pSpecs | Secs 参数 |
| size_t iCount | 数量 |
| void* pOutput | 出:输出缓冲 |
| size_t iCapacity | 容量 |
| size_t* pSize | 出:大小 |
示例已编译验证
/* 写出可未对齐的 Range 项数组;空输出查询长度,Size 也可以未对齐。 */ result = xrtHttpRangeWrite(pSpecs, iCount, pOutput, iCapacity, pSize);
xrtHttpRangeBuild
从可未对齐的 Range 项数组构建零结尾字段值,返回值由 xrtFree 释放。
| 参数 | 说明 |
|---|---|
| const xhttprangespec* pSpecs | Secs 参数 |
| size_t iCount | 数量 |
| size_t* pSize | 出:大小 |
示例已编译验证
/* 从可未对齐的 Range 项数组构建零结尾字段值,返回值由 xrtFree 释放。 */ result = xrtHttpRangeBuild(pSpecs, iCount, pSize);
xrtHttpContentRangeParse
严格解析 bytes Content-Range 字段值,Range 输出可以未对齐。
| 参数 | 说明 |
|---|---|
| xstrview Value | 值 |
| xhttpcontentrange* pRange | Range 参数 |
示例已编译验证
/* 严格解析 bytes Content-Range 字段值,Range 输出可以未对齐。 */ result = xrtHttpContentRangeParse(Value, pRange);
xrtHttpContentRangeWrite
写出可未对齐的 Content-Range;空输出查询长度,Size 也可未对齐。
| 参数 | 说明 |
|---|---|
| const xhttpcontentrange* pRange | Range 参数 |
| void* pOutput | 出:输出缓冲 |
| size_t iCapacity | 容量 |
| size_t* pSize | 出:大小 |
示例已编译验证
/* 写出可未对齐的 Content-Range;空输出查询长度,Size 也可未对齐。 */ result = xrtHttpContentRangeWrite(pRange, pOutput, iCapacity, pSize);
xrtHttpContentRangeBuild
从可未对齐的 Content-Range 构建零结尾文本,返回值由 xrtFree 释放。
| 参数 | 说明 |
|---|---|
| const xhttpcontentrange* pRange | Range 参数 |
| size_t* pSize | 出:大小 |
示例已编译验证
/* 从可未对齐的 Content-Range 构建零结尾文本,返回值由 xrtFree 释放。 */ result = xrtHttpContentRangeBuild(pRange, pSize);
xrtHttpRangeMultipartLength
XRT_API bool xrtHttpRangeMultipartLength( const xhttpbyterange* pRanges, size_t iRangeCount, uint64 iCompleteLength, xstrview ContentType, xstrview Boundary, uint64* pLength );
示例已编译验证
/* XRT_API bool xrtHttpRangeMultipartLength( const xhttpbyterange* pRanges, size_t iRangeCount, uint64 iCompleteLength, xstrview ContentType, xstrview Boundary, uint64* pLength ); */ result = xrtHttpRangeMultipartLength();
xrtHttpRangeMultipartHeadWrite
XRT_API bool xrtHttpRangeMultipartHeadWrite( const xhttpbyterange* pRange, uint64 iCompleteLength, xstrview ContentType, xstrview Boundary, void* pOutput, size_t iCapacity, size_t* pSize );
示例已编译验证
/* XRT_API bool xrtHttpRangeMultipartHeadWrite( const xhttpbyterange* pRange, uint64 iCompleteLength, xstrview ContentType, xstrview Boundary, void* pOutput, size_t iCapacity, size_t* pSize ); */ result = xrtHttpRangeMultipartHeadWrite();
xrtHttpRangeMultipartEndWrite
写出一个范围 Part 数据后的 CRLF;Size 输出可以未对齐。
| 参数 | 说明 |
|---|---|
| void* pOutput | 出:输出缓冲 |
| size_t iCapacity | 容量 |
| size_t* pSize | 出:大小 |
示例已编译验证
/* 写出一个范围 Part 数据后的 CRLF;Size 输出可以未对齐。 */ result = xrtHttpRangeMultipartEndWrite(pOutput, iCapacity, pSize);
xrtHttpRangeMultipartCloseWrite
写出最后一个 Part 之后的关闭 boundary;Size 输出可以未对齐。
| 参数 | 说明 |
|---|---|
| xstrview Boundary | MIME 边界 |
| void* pOutput | 出:输出缓冲 |
| size_t iCapacity | 容量 |
| size_t* pSize | 出:大小 |
示例已编译验证
/* 写出最后一个 Part 之后的关闭 boundary;Size 输出可以未对齐。 */ result = xrtHttpRangeMultipartCloseWrite(Boundary, pOutput, iCapacity, pSize);