xrtHttpBodyCreate
XRT_API xhttpbody* xrtHttpBodyCreate( const xhttpbodyops* pOps, ptr pFactory, uint64 iLength, uint32 iFlags );
示例已编译验证
/* XRT_API xhttpbody* xrtHttpBodyCreate( const xhttpbodyops* pOps, ptr pFactory, uint64 iLength, uint32 iFlags ); */ xhandle* h = xrtHttpBodyCreate();
xrtHttpBodyEmpty
创建可重放的空正文。
示例已编译验证
/* 创建可重放的空正文。 */ result = xrtHttpBodyEmpty();
xrtHttpBodyCopy
创建拥有正文副本的可重放正文。
| 参数 | 说明 |
|---|---|
| xbytesview Data | 数据内容 |
示例已编译验证
/* 创建拥有正文副本的可重放正文。 */ result = xrtHttpBodyCopy(Data);
xrtHttpBodyBorrow
创建借用外部内存的可重放正文,外部内存必须覆盖正文对象使用期。
| 参数 | 说明 |
|---|---|
| xbytesview Data | 数据内容 |
示例已编译验证
/* 创建借用外部内存的可重放正文,外部内存必须覆盖正文对象使用期。 */ result = xrtHttpBodyBorrow(Data);
xrtHttpBodyTake
成功时接管由 xrtMalloc 分配的数据,失败时所有权仍归调用方。
| 参数 | 说明 |
|---|---|
| ptr pData | 用户数据 |
| size_t iSize | 字节数 |
示例已编译验证
/* 成功时接管由 xrtMalloc 分配的数据,失败时所有权仍归调用方。 */ result = xrtHttpBodyTake(pData, iSize);
xrtHttpBodyReference
XRT_API xhttpbody* xrtHttpBodyReference( xbytesview Data, xhttpbodyreleaseproc pRelease, ptr pContext );
示例已编译验证
/* XRT_API xhttpbody* xrtHttpBodyReference( xbytesview Data, xhttpbodyreleaseproc pRelease, ptr pContext ); */ result = xrtHttpBodyReference();
xrtHttpBodyRef
增加正文对象引用并返回原指针。
| 参数 | 说明 |
|---|---|
| xhttpbody* pBody | 消息体 |
示例已编译验证
/* 增加正文对象引用并返回原指针。 */ result = xrtHttpBodyRef(pBody);
xrtHttpBodyDestroy
释放正文对象引用;空指针安全,清理回调不会改变当前错误。
| 参数 | 说明 |
|---|---|
| xhttpbody* pBody | 消息体 |
示例已编译验证
xrtHttpBodyDestroy(pBody);
xrtHttpBodyLength
返回正文线性字节长度或 XHTTP_BODY_UNKNOWN。
| 参数 | 说明 |
|---|---|
| const xhttpbody* pBody | 消息体 |
示例已编译验证
/* 返回正文线性字节长度或 XHTTP_BODY_UNKNOWN。 */ result = xrtHttpBodyLength(pBody);
xrtHttpBodyFlags
返回正文源公开能力标志。
| 参数 | 说明 |
|---|---|
| const xhttpbody* pBody | 消息体 |
示例已编译验证
/* 返回正文源公开能力标志。 */ result = xrtHttpBodyFlags(pBody);
xrtHttpBodyReplayable
判断正文能否重新 Open 并从头读取。
| 参数 | 说明 |
|---|---|
| const xhttpbody* pBody | 消息体 |
示例已编译验证
/* 判断正文能否重新 Open 并从头读取。 */ result = xrtHttpBodyReplayable(pBody);
xrtHttpBodyView
XRT_API bool xrtHttpBodyView( const xhttpbody* pBody, xbytesview* pData );
示例已编译验证
/* XRT_API bool xrtHttpBodyView( const xhttpbody* pBody, xbytesview* pData ); */ result = xrtHttpBodyView();
xrtHttpBodyOpen
打开独立 Reader;非可重放正文一生最多尝试一次。
| 参数 | 说明 |
|---|---|
| xhttpbody* pBody | 消息体 |
示例已编译验证
/* 打开独立 Reader;非可重放正文一生最多尝试一次。 */ result = xrtHttpBodyOpen(pBody);
xrtHttpBodyNext
XRT_API xhttpbodystatus xrtHttpBodyNext( xhttpbodyreader* pReader, size_t iMaxBytes, xhttpbodychunk* pChunk );
示例已编译验证
/* XRT_API xhttpbodystatus xrtHttpBodyNext( xhttpbodyreader* pReader, size_t iMaxBytes, xhttpbodychunk* pChunk ); */ result = xrtHttpBodyNext();
xrtHttpBodyRead
XRT_API xhttpbodystatus xrtHttpBodyRead( xhttpbodyreader* pReader, void* pOutput, size_t iCapacity, size_t* pSize );
示例已编译验证
/* XRT_API xhttpbodystatus xrtHttpBodyRead( xhttpbodyreader* pReader, void* pOutput, size_t iCapacity, size_t* pSize ); */ result = xrtHttpBodyRead();
xrtHttpBodyChunkRelease
先清空再释放 Chunk 租约;空结构安全,回调不会改变当前错误。
| 参数 | 说明 |
|---|---|
| xhttpbodychunk* pChunk | Chunk 参数 |
示例已编译验证
xrtHttpBodyChunkRelease(pChunk);
xrtHttpBodyReaderBytes
返回 Reader 已发布的正文总字节数。
| 参数 | 说明 |
|---|---|
| const xhttpbodyreader* pReader | 读取器 |
示例已编译验证
/* 返回 Reader 已发布的正文总字节数。 */ result = xrtHttpBodyReaderBytes(pReader);
xrtHttpBodyReaderError
返回失败 Reader 借用的稳定错误,其他状态返回空指针。
| 参数 | 说明 |
|---|---|
| const xhttpbodyreader* pReader | 读取器 |
示例已编译验证
/* 返回失败 Reader 借用的稳定错误,其他状态返回空指针。 */ result = xrtHttpBodyReaderError(pReader);
xrtHttpBodyReaderDestroy
关闭 Reader 并释放正文引用;未释放 Chunk 仍保持有效。
| 参数 | 说明 |
|---|---|
| xhttpbodyreader* pReader | 读取器 |
示例已编译验证
xrtHttpBodyReaderDestroy(pReader);
xrtHttpBodyReaderWait
XRT_API xfuture* xrtHttpBodyReaderWait(xhttpbodyreader* pReader);
示例已编译验证
/* XRT_API xfuture* xrtHttpBodyReaderWait(xhttpbodyreader* pReader); */ result = xrtHttpBodyReaderWait();