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* pErrorOffsetErrorOffset 参数
返回:按 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 iPairsPars 参数
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 PairPar 参数
返回:追加一个拥有型 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 PairPar 参数
返回:用一个 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* pPairPar 参数
返回:复制指定位置的借用 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* pPairPar 参数
返回:复制首个同名 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* pPairPar 参数
返回:从 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* pErrorOffsetErrorOffset 参数
返回:原子追加一段 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);