xrtHttpHeadersConfigValid
验证 Header 容量、字段和字节限额能够形成有效容器。
bool xrtHttpHeadersConfigValid( const xhttpheadersconfig* pConfig );
| 参数 | 说明 |
|---|---|
| const xhttpheadersconfig* pConfig | 配置结构 |
返回:验证 Header 容量、字段和字节限额能够形成有效容器。
示例已编译验证
/* 验证 Header 容量、字段和字节限额能够形成有效容器。 */ result = xrtHttpHeadersConfigValid(pConfig);
xrtHttpHeadersConfigInit
初始化拥有型 Header 容器的默认容量与安全上限。
void xrtHttpHeadersConfigInit(xhttpheadersconfig* pConfig);
| 参数 | 说明 |
|---|---|
| xhttpheadersconfig* pConfig | 配置结构 |
返回:初始化拥有型 Header 容器的默认容量与安全上限。
示例已编译验证
httpheadersconfiginit obj; xrtHttpHeadersConfigInit(&obj);
xrtHttpHeadersCreate
创建拥有全部名称和值副本的 Header 容器。
xhttpheaders* xrtHttpHeadersCreate( const xhttpheadersconfig* pConfig );
| 参数 | 说明 |
|---|---|
| const xhttpheadersconfig* pConfig | 配置结构 |
返回:创建拥有全部名称和值副本的 Header 容器。
示例已编译验证
/* 创建拥有全部名称和值副本的 Header 容器。 */ xhandle* h = xrtHttpHeadersCreate();
xrtHttpHeadersDestroy
释放 Header 容器;空指针安全。
void xrtHttpHeadersDestroy(xhttpheaders* pHeaders);
| 参数 | 说明 |
|---|---|
| xhttpheaders* pHeaders | 头部对象 |
返回:释放 Header 容器;空指针安全。
示例已编译验证
xrtHttpHeadersDestroy(pHeaders);
xrtHttpHeadersClear
清空内容并保留容量供后续报文复用。
void xrtHttpHeadersClear(xhttpheaders* pHeaders);
| 参数 | 说明 |
|---|---|
| xhttpheaders* pHeaders | 头部对象 |
返回:清空内容并保留容量供后续报文复用。
示例已编译验证
/* 清空内容并保留容量供后续报文复用。 */ result = xrtHttpHeadersClear(pHeaders);
xrtHttpHeadersReserve
预留字段数量和名称、值的逻辑字节容量。
bool xrtHttpHeadersReserve( xhttpheaders* pHeaders, size_t iFields, size_t iBytes );
| 参数 | 说明 |
|---|---|
| xhttpheaders* pHeaders | 头部对象 |
| size_t iFields | Felds 参数 |
| size_t iBytes | 字节数 |
返回:预留字段数量和名称、值的逻辑字节容量。
示例已编译验证
/* 预留字段数量和名称、值的逻辑字节容量。 */ result = xrtHttpHeadersReserve(pHeaders, iFields, iBytes);
xrtHttpHeadersCompact
回收删除和替换遗留的字符串空洞。
bool xrtHttpHeadersCompact(xhttpheaders* pHeaders);
| 参数 | 说明 |
|---|---|
| xhttpheaders* pHeaders | 头部对象 |
返回:回收删除和替换遗留的字符串空洞。
示例已编译验证
/* 回收删除和替换遗留的字符串空洞。 */ result = xrtHttpHeadersCompact(pHeaders);
xrtHttpHeadersCount
返回字段数量。
size_t xrtHttpHeadersCount(const xhttpheaders* pHeaders);
| 参数 | 说明 |
|---|---|
| const xhttpheaders* pHeaders | 头部对象 |
返回:返回字段数量。
示例已编译验证
/* 返回字段数量。 */ result = xrtHttpHeadersCount(pHeaders);
xrtHttpHeadersBytes
返回全部有效名称和值的总字节数。
size_t xrtHttpHeadersBytes(const xhttpheaders* pHeaders);
| 参数 | 说明 |
|---|---|
| const xhttpheaders* pHeaders | 头部对象 |
返回:返回全部有效名称和值的总字节数。
示例已编译验证
/* 返回全部有效名称和值的总字节数。 */ result = xrtHttpHeadersBytes(pHeaders);
xrtHttpHeadersData
返回连续、借用的字段数组;容器修改后失效。
const xhttpfield* xrtHttpHeadersData( const xhttpheaders* pHeaders );
| 参数 | 说明 |
|---|---|
| const xhttpheaders* pHeaders | 头部对象 |
返回:返回连续、借用的字段数组;容器修改后失效。
示例已编译验证
/* 返回连续、借用的字段数组;容器修改后失效。 */ result = xrtHttpHeadersData(pHeaders);
xrtHttpHeadersAt
返回指定位置的借用字段,越界返回空指针。
const xhttpfield* xrtHttpHeadersAt( const xhttpheaders* pHeaders, size_t iIndex );
| 参数 | 说明 |
|---|---|
| const xhttpheaders* pHeaders | 头部对象 |
| size_t iIndex | 下标 |
返回:返回指定位置的借用字段,越界返回空指针。
示例已编译验证
/* 返回指定位置的借用字段,越界返回空指针。 */ result = xrtHttpHeadersAt(pHeaders, iIndex);
xrtHttpHeadersAdd
追加允许重名的字段并拥有名称和值副本。
bool xrtHttpHeadersAdd( xhttpheaders* pHeaders, xstrview Name, xstrview Value );
| 参数 | 说明 |
|---|---|
| xhttpheaders* pHeaders | 头部对象 |
| xstrview Name | 名称(xstrview) |
| xstrview Value | 值 |
返回:追加允许重名的字段并拥有名称和值副本。
示例已编译验证
/* 追加允许重名的字段并拥有名称和值副本。 */ result = xrtHttpHeadersAdd(pHeaders, Name, Value);
xrtHttpHeadersSet
替换首个同名字段并移除其余同名字段。
bool xrtHttpHeadersSet( xhttpheaders* pHeaders, xstrview Name, xstrview Value );
| 参数 | 说明 |
|---|---|
| xhttpheaders* pHeaders | 头部对象 |
| xstrview Name | 名称(xstrview) |
| xstrview Value | 值 |
返回:替换首个同名字段并移除其余同名字段。
示例已编译验证
/* 替换首个同名字段并移除其余同名字段。 */ result = xrtHttpHeadersSet(pHeaders, Name, Value);
xrtHttpHeadersRemove
移除全部同名字段并返回移除数量。
size_t xrtHttpHeadersRemove( xhttpheaders* pHeaders, xstrview Name );
| 参数 | 说明 |
|---|---|
| xhttpheaders* pHeaders | 头部对象 |
| xstrview Name | 名称(xstrview) |
返回:移除全部同名字段并返回移除数量。
示例已编译验证
/* 移除全部同名字段并返回移除数量。 */ result = xrtHttpHeadersRemove(pHeaders, Name);
xrtHttpHeadersHas
判断是否存在同名字段。
bool xrtHttpHeadersHas( const xhttpheaders* pHeaders, xstrview Name );
| 参数 | 说明 |
|---|---|
| const xhttpheaders* pHeaders | 头部对象 |
| xstrview Name | 名称(xstrview) |
返回:判断是否存在同名字段。
示例已编译验证
/* 判断是否存在同名字段。 */ result = xrtHttpHeadersHas(pHeaders, Name);
xrtHttpHeadersCountName
返回同名字段数量。
size_t xrtHttpHeadersCountName( const xhttpheaders* pHeaders, xstrview Name );
| 参数 | 说明 |
|---|---|
| const xhttpheaders* pHeaders | 头部对象 |
| xstrview Name | 名称(xstrview) |
返回:返回同名字段数量。
示例已编译验证
/* 返回同名字段数量。 */ result = xrtHttpHeadersCountName(pHeaders, Name);
xrtHttpHeadersGet
返回首个同名借用字段。
const xhttpfield* xrtHttpHeadersGet( const xhttpheaders* pHeaders, xstrview Name );
| 参数 | 说明 |
|---|---|
| const xhttpheaders* pHeaders | 头部对象 |
| xstrview Name | 名称(xstrview) |
返回:返回首个同名借用字段。
示例已编译验证
/* 返回首个同名借用字段。 */ result = xrtHttpHeadersGet(pHeaders, Name);
xrtHttpHeadersGetUnique
只在同名字段唯一时返回条目,重复字段报告值错误。
xhttpnext xrtHttpHeadersGetUnique( const xhttpheaders* pHeaders, xstrview Name, const xhttpfield** ppField );
| 参数 | 说明 |
|---|---|
| const xhttpheaders* pHeaders | 头部对象 |
| xstrview Name | 名称(xstrview) |
| const xhttpfield** ppField | 字段 |
返回:只在同名字段唯一时返回条目,重复字段报告值错误。
示例已编译验证
/* 只在同名字段唯一时返回条目,重复字段报告值错误。 */ result = xrtHttpHeadersGetUnique(pHeaders, Name, ppField);
xrtHttpHeadersGetNth
返回第 N 个同名借用字段。
const xhttpfield* xrtHttpHeadersGetNth( const xhttpheaders* pHeaders, xstrview Name, size_t iIndex );
| 参数 | 说明 |
|---|---|
| const xhttpheaders* pHeaders | 头部对象 |
| xstrview Name | 名称(xstrview) |
| size_t iIndex | 下标 |
返回:返回第 N 个同名借用字段。
示例已编译验证
/* 返回第 N 个同名借用字段。 */ result = xrtHttpHeadersGetNth(pHeaders, Name, iIndex);
xrtHttpHeadersGetAll
有界复制同名字段值,并始终返回完整匹配数量。
size_t xrtHttpHeadersGetAll( const xhttpheaders* pHeaders, xstrview Name, xstrview* pValues, size_t iCapacity );
| 参数 | 说明 |
|---|---|
| const xhttpheaders* pHeaders | 头部对象 |
| xstrview Name | 名称(xstrview) |
| xstrview* pValues | 值数组 |
| size_t iCapacity | 容量 |
返回:有界复制同名字段值,并始终返回完整匹配数量。
示例已编译验证
/* 有界复制同名字段值,并始终返回完整匹配数量。 */ result = xrtHttpHeadersGetAll(pHeaders, Name, pValues, iCapacity);
xrtHttpHeadersClone
深复制 Header 容器及其配置。
xhttpheaders* xrtHttpHeadersClone( const xhttpheaders* pHeaders );
| 参数 | 说明 |
|---|---|
| const xhttpheaders* pHeaders | 头部对象 |
返回:深复制 Header 容器及其配置。
示例已编译验证
/* 深复制 Header 容器及其配置。 */ result = xrtHttpHeadersClone(pHeaders);
xrtHttpHeadersSwap
不分配地交换两个容器拥有的完整状态。
bool xrtHttpHeadersSwap( xhttpheaders* pLeft, xhttpheaders* pRight );
| 参数 | 说明 |
|---|---|
| xhttpheaders* pLeft | 左操作数 |
| xhttpheaders* pRight | 右操作数 |
返回:不分配地交换两个容器拥有的完整状态。
示例已编译验证
/* 不分配地交换两个容器拥有的完整状态。 */ result = xrtHttpHeadersSwap(pLeft, pRight);
xrtHttpHeadersAddBlock
事务性解析并追加字段块,失败时保留原内容。
bool xrtHttpHeadersAddBlock( xhttpheaders* pHeaders, xstrview Block, size_t* pErrorOffset );
| 参数 | 说明 |
|---|---|
| xhttpheaders* pHeaders | 头部对象 |
| xstrview Block | 阻塞对象 |
| size_t* pErrorOffset | ErrorOffset 参数 |
返回:事务性解析并追加字段块,失败时保留原内容。
示例已编译验证
/* 事务性解析并追加字段块,失败时保留原内容。 */ result = xrtHttpHeadersAddBlock(pHeaders, Block, pErrorOffset);
xrtHttpHeadersParse
创建容器并解析完整字段块。
xhttpheaders* xrtHttpHeadersParse( xstrview Block, const xhttpheadersconfig* pConfig, size_t* pErrorOffset );
| 参数 | 说明 |
|---|---|
| xstrview Block | 阻塞对象 |
| const xhttpheadersconfig* pConfig | 配置结构 |
| size_t* pErrorOffset | ErrorOffset 参数 |
返回:创建容器并解析完整字段块。
示例已编译验证
/* 创建容器并解析完整字段块。 */ result = xrtHttpHeadersParse(Block, pConfig, pErrorOffset);
xrtHttpHeadersWrite
写出字段行和最终空行;空输出用于查询精确长度。
bool xrtHttpHeadersWrite( const xhttpheaders* pHeaders, void* pOutput, size_t iCapacity, size_t* pSize );
| 参数 | 说明 |
|---|---|
| const xhttpheaders* pHeaders | 头部对象 |
| void* pOutput | 出:输出缓冲 |
| size_t iCapacity | 容量 |
| size_t* pSize | 出:大小 |
返回:写出字段行和最终空行;空输出用于查询精确长度。
示例已编译验证
/* 写出字段行和最终空行;空输出用于查询精确长度。 */ result = xrtHttpHeadersWrite(pHeaders, pOutput, iCapacity, pSize);
xrtHttpHeadersBuild
分配并构建带零结尾的完整字段块。
str xrtHttpHeadersBuild( const xhttpheaders* pHeaders, size_t* pSize );
| 参数 | 说明 |
|---|---|
| const xhttpheaders* pHeaders | 头部对象 |
| size_t* pSize | 出:大小 |
返回:分配并构建带零结尾的完整字段块。
示例已编译验证
/* 分配并构建带零结尾的完整字段块。 */ result = xrtHttpHeadersBuild(pHeaders, pSize);