xrtQueryParamsConfigInit
初始化适合 URL 查询和表单数据的容量、限额与严格 percent 策略。
void xrtQueryParamsConfigInit(xqueryparamsconfig* pConfig);
| 参数 | 说明 |
|---|---|
| xqueryparamsconfig* pConfig | 配置结构 |
返回:初始化适合 URL 查询和表单数据的容量、限额与严格 percent 策略。
示例已编译验证
queryparamsconfiginit obj; xrtQueryParamsConfigInit(&obj);
xrtQueryParamsCreate
创建拥有型空容器;配置为空时使用默认值。
xqueryparams* xrtQueryParamsCreate( const xqueryparamsconfig* pConfig );
| 参数 | 说明 |
|---|---|
| const xqueryparamsconfig* pConfig | 配置结构 |
返回:创建拥有型空容器;配置为空时使用默认值。
示例已编译验证
/* 创建拥有型空容器;配置为空时使用默认值。 */ xhandle* h = xrtQueryParamsCreate();
xrtQueryParamsParse
按 form-urlencoded 规则解析并创建容器;成功时 ErrorOffset 等于输入长度。
xqueryparams* xrtQueryParamsParse( xstrview Text, const xqueryparamsconfig* pConfig, size_t* pErrorOffset );
| 参数 | 说明 |
|---|---|
| xstrview Text | 文本视图 |
| const xqueryparamsconfig* pConfig | 配置结构 |
| size_t* pErrorOffset | ErrorOffset 参数 |
返回:按 form-urlencoded 规则解析并创建容器;成功时 ErrorOffset 等于输入长度。
示例已编译验证
/* 按 form-urlencoded 规则解析并创建容器;成功时 ErrorOffset 等于输入长度。 */ result = xrtQueryParamsParse(Text, pConfig, pErrorOffset);
xrtQueryParamsClone
深复制全部 pair、配置和有效字节。
xqueryparams* xrtQueryParamsClone( const xqueryparams* pParams );
| 参数 | 说明 |
|---|---|
| const xqueryparams* pParams | 参数对象 |
返回:深复制全部 pair、配置和有效字节。
示例已编译验证
/* 深复制全部 pair、配置和有效字节。 */ result = xrtQueryParamsClone(pParams);
xrtQueryParamsDestroy
销毁容器;空指针是安全的空操作。
void xrtQueryParamsDestroy(xqueryparams* pParams);
| 参数 | 说明 |
|---|---|
| xqueryparams* pParams | 参数对象 |
返回:销毁容器;空指针是安全的空操作。
示例已编译验证
xrtQueryParamsDestroy(pParams);
xrtQueryParamsClear
删除全部 pair,但保留已经分配的容量供后续复用。
void xrtQueryParamsClear(xqueryparams* pParams);
| 参数 | 说明 |
|---|---|
| xqueryparams* pParams | 参数对象 |
返回:删除全部 pair,但保留已经分配的容量供后续复用。
示例已编译验证
/* 删除全部 pair,但保留已经分配的容量供后续复用。 */ result = xrtQueryParamsClear(pParams);
xrtQueryParamsReserve
预留至少指定 pair 数量和有效已解码字节容量。
bool xrtQueryParamsReserve( xqueryparams* pParams, size_t iPairs, size_t iBytes );
| 参数 | 说明 |
|---|---|
| xqueryparams* pParams | 参数对象 |
| size_t iPairs | Pars 参数 |
| size_t iBytes | 字节数 |
返回:预留至少指定 pair 数量和有效已解码字节容量。
示例已编译验证
/* 预留至少指定 pair 数量和有效已解码字节容量。 */ result = xrtQueryParamsReserve(pParams, iPairs, iBytes);
xrtQueryParamsCount
返回当前 pair 数量;空容器返回零。
size_t xrtQueryParamsCount(const xqueryparams* pParams);
| 参数 | 说明 |
|---|---|
| const xqueryparams* pParams | 参数对象 |
返回:返回当前 pair 数量;空容器返回零。
示例已编译验证
/* 返回当前 pair 数量;空容器返回零。 */ result = xrtQueryParamsCount(pParams);
xrtQueryParamsBytes
返回全部有效名称和值的已解码字节数;空容器返回零。
size_t xrtQueryParamsBytes(const xqueryparams* pParams);
| 参数 | 说明 |
|---|---|
| const xqueryparams* pParams | 参数对象 |
返回:返回全部有效名称和值的已解码字节数;空容器返回零。
示例已编译验证
/* 返回全部有效名称和值的已解码字节数;空容器返回零。 */ result = xrtQueryParamsBytes(pParams);
xrtQueryParamsAppendPair
追加一个拥有型 pair,并保留 HAS_VALUE 状态。
bool xrtQueryParamsAppendPair( xqueryparams* pParams, xquerypair Pair );
| 参数 | 说明 |
|---|---|
| xqueryparams* pParams | 参数对象 |
| xquerypair Pair | Par 参数 |
返回:追加一个拥有型 pair,并保留 HAS_VALUE 状态。
示例已编译验证
/* 追加一个拥有型 pair,并保留 HAS_VALUE 状态。 */ result = xrtQueryParamsAppendPair(pParams, Pair);
xrtQueryParamsAppend
追加一个始终带等号和值的常用 pair。
bool xrtQueryParamsAppend( xqueryparams* pParams, xstrview Name, xstrview Value );
| 参数 | 说明 |
|---|---|
| xqueryparams* pParams | 参数对象 |
| xstrview Name | 名称(xstrview) |
| xstrview Value | 值 |
返回:追加一个始终带等号和值的常用 pair。
示例已编译验证
/* 追加一个始终带等号和值的常用 pair。 */ result = xrtQueryParamsAppend(pParams, Name, Value);
xrtQueryParamsSetPair
用一个 pair 替换全部同名项;首个同名位置保持不变。
bool xrtQueryParamsSetPair( xqueryparams* pParams, xquerypair Pair );
| 参数 | 说明 |
|---|---|
| xqueryparams* pParams | 参数对象 |
| xquerypair Pair | Par 参数 |
返回:用一个 pair 替换全部同名项;首个同名位置保持不变。
示例已编译验证
/* 用一个 pair 替换全部同名项;首个同名位置保持不变。 */ result = xrtQueryParamsSetPair(pParams, Pair);
xrtQueryParamsSet
用一个始终带值的常用 pair 替换全部同名项。
bool xrtQueryParamsSet( xqueryparams* pParams, xstrview Name, xstrview Value );
| 参数 | 说明 |
|---|---|
| xqueryparams* pParams | 参数对象 |
| xstrview Name | 名称(xstrview) |
| xstrview Value | 值 |
返回:用一个始终带值的常用 pair 替换全部同名项。
示例已编译验证
/* 用一个始终带值的常用 pair 替换全部同名项。 */ result = xrtQueryParamsSet(pParams, Name, Value);
xrtQueryParamsRemove
删除全部同名项并返回删除数量;名称按字节区分大小写。
size_t xrtQueryParamsRemove( xqueryparams* pParams, xstrview Name );
| 参数 | 说明 |
|---|---|
| xqueryparams* pParams | 参数对象 |
| xstrview Name | 名称(xstrview) |
返回:删除全部同名项并返回删除数量;名称按字节区分大小写。
示例已编译验证
/* 删除全部同名项并返回删除数量;名称按字节区分大小写。 */ result = xrtQueryParamsRemove(pParams, Name);
xrtQueryParamsCountName
返回同名项数量;名称按字节区分大小写。
size_t xrtQueryParamsCountName( const xqueryparams* pParams, xstrview Name );
| 参数 | 说明 |
|---|---|
| const xqueryparams* pParams | 参数对象 |
| xstrview Name | 名称(xstrview) |
返回:返回同名项数量;名称按字节区分大小写。
示例已编译验证
/* 返回同名项数量;名称按字节区分大小写。 */ result = xrtQueryParamsCountName(pParams, Name);
xrtQueryParamsHas
判断是否存在同名项;无匹配不是错误。
bool xrtQueryParamsHas( const xqueryparams* pParams, xstrview Name );
| 参数 | 说明 |
|---|---|
| const xqueryparams* pParams | 参数对象 |
| xstrview Name | 名称(xstrview) |
返回:判断是否存在同名项;无匹配不是错误。
示例已编译验证
/* 判断是否存在同名项;无匹配不是错误。 */ result = xrtQueryParamsHas(pParams, Name);
xrtQueryParamsAt
复制指定位置的借用 pair;视图在下一次容器修改前有效。
bool xrtQueryParamsAt( const xqueryparams* pParams, size_t iIndex, xquerypair* pPair );
| 参数 | 说明 |
|---|---|
| const xqueryparams* pParams | 参数对象 |
| size_t iIndex | 下标 |
| xquerypair* pPair | Par 参数 |
返回:复制指定位置的借用 pair;视图在下一次容器修改前有效。
示例已编译验证
/* 复制指定位置的借用 pair;视图在下一次容器修改前有效。 */ result = xrtQueryParamsAt(pParams, iIndex, pPair);
xrtQueryParamsGet
复制首个同名 pair;无匹配返回 false 且不是错误。
bool xrtQueryParamsGet( const xqueryparams* pParams, xstrview Name, xquerypair* pPair );
| 参数 | 说明 |
|---|---|
| const xqueryparams* pParams | 参数对象 |
| xstrview Name | 名称(xstrview) |
| xquerypair* pPair | Par 参数 |
返回:复制首个同名 pair;无匹配返回 false 且不是错误。
示例已编译验证
/* 复制首个同名 pair;无匹配返回 false 且不是错误。 */ result = xrtQueryParamsGet(pParams, Name, pPair);
xrtQueryParamsFind
从 Index 开始查找下一个同名项;Index 必须不大于 Count,ITEM 时指向下一位置。
xquerynext xrtQueryParamsFind( const xqueryparams* pParams, xstrview Name, size_t* pIndex, xquerypair* pPair );
| 参数 | 说明 |
|---|---|
| const xqueryparams* pParams | 参数对象 |
| xstrview Name | 名称(xstrview) |
| size_t* pIndex | 出:下标 |
| xquerypair* pPair | Par 参数 |
返回:从 Index 开始查找下一个同名项;Index 必须不大于 Count,ITEM 时指向下一位置。
示例已编译验证
/* 从 Index 开始查找下一个同名项;Index 必须不大于 Count,ITEM 时指向下一位置。 */ result = xrtQueryParamsFind(pParams, Name, pIndex, pPair);
xrtQueryParamsParseAppend
原子追加一段 form-urlencoded 文本;失败时原容器保持逻辑不变。
bool xrtQueryParamsParseAppend( xqueryparams* pParams, xstrview Text, size_t* pErrorOffset );
| 参数 | 说明 |
|---|---|
| xqueryparams* pParams | 参数对象 |
| xstrview Text | 文本视图 |
| size_t* pErrorOffset | ErrorOffset 参数 |
返回:原子追加一段 form-urlencoded 文本;失败时原容器保持逻辑不变。
示例已编译验证
/* 原子追加一段 form-urlencoded 文本;失败时原容器保持逻辑不变。 */ result = xrtQueryParamsParseAppend(pParams, Text, pErrorOffset);
xrtQueryParamsSort
按名称字节稳定排序,重复名称保持原先顺序。
bool xrtQueryParamsSort(xqueryparams* pParams);
| 参数 | 说明 |
|---|---|
| xqueryparams* pParams | 参数对象 |
返回:按名称字节稳定排序,重复名称保持原先顺序。
示例已编译验证
/* 按名称字节稳定排序,重复名称保持原先顺序。 */ result = xrtQueryParamsSort(pParams);
xrtQueryParamsCompact
丢弃修改产生的废弃字节,并把字符串区收缩为当前有效内容。
bool xrtQueryParamsCompact(xqueryparams* pParams);
| 参数 | 说明 |
|---|---|
| xqueryparams* pParams | 参数对象 |
返回:丢弃修改产生的废弃字节,并把字符串区收缩为当前有效内容。
示例已编译验证
/* 丢弃修改产生的废弃字节,并把字符串区收缩为当前有效内容。 */ result = xrtQueryParamsCompact(pParams);
xrtQueryParamsWrite
按 form-urlencoded 规则写出且不附加零字符;空输出可查询精确长度。
bool xrtQueryParamsWrite( const xqueryparams* pParams, void* pOutput, size_t iCapacity, size_t* pSize );
| 参数 | 说明 |
|---|---|
| const xqueryparams* pParams | 参数对象 |
| void* pOutput | 出:输出缓冲 |
| size_t iCapacity | 容量 |
| size_t* pSize | 出:大小 |
返回:按 form-urlencoded 规则写出且不附加零字符;空输出可查询精确长度。
示例已编译验证
/* 按 form-urlencoded 规则写出且不附加零字符;空输出可查询精确长度。 */ result = xrtQueryParamsWrite(pParams, pOutput, iCapacity, pSize);
xrtQueryParamsBuild
分配并构建零结尾文本;返回值由 xrtFree 释放。
str xrtQueryParamsBuild( const xqueryparams* pParams, size_t* pSize );
| 参数 | 说明 |
|---|---|
| const xqueryparams* pParams | 参数对象 |
| size_t* pSize | 出:大小 |
返回:分配并构建零结尾文本;返回值由 xrtFree 释放。
示例已编译验证
/* 分配并构建零结尾文本;返回值由 xrtFree 释放。 */ result = xrtQueryParamsBuild(pParams, pSize);