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 iFieldsFelds 参数
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* pErrorOffsetErrorOffset 参数
返回:事务性解析并追加字段块,失败时保留原内容。

示例已编译验证

/* 事务性解析并追加字段块,失败时保留原内容。 */
result = xrtHttpHeadersAddBlock(pHeaders, Block, pErrorOffset);

xrtHttpHeadersParse

创建容器并解析完整字段块。

xhttpheaders* xrtHttpHeadersParse( xstrview Block, const xhttpheadersconfig* pConfig, size_t* pErrorOffset );
参数说明
xstrview Block阻塞对象
const xhttpheadersconfig* pConfig配置结构
size_t* pErrorOffsetErrorOffset 参数
返回:创建容器并解析完整字段块。

示例已编译验证

/* 创建容器并解析完整字段块。 */
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);