xrtHttpCacheConfigInit
初始化默认缓存限额;固定配置描述符支持未对齐存储。
| 参数 | 说明 |
|---|---|
| xhttpcacheconfig* pConfig | 配置结构 |
示例已编译验证
httpcacheconfiginit obj; xrtHttpCacheConfigInit(&obj);
xrtHttpCacheKeyInit
初始化没有分区和请求字段的主键;未对齐输出在返回前一次性发布。
| 参数 | 说明 |
|---|---|
| xhttpcachekey* pKey | 键 |
| xstrview Method | HTTP 方法 |
| xstrview URI | URI 参数 |
示例已编译验证
httpcachekeyinit obj; xrtHttpCacheKeyInit(&obj, pKey, Method, URI);
xrtHttpCacheRecordInputInit
初始化 HTTP/1.1 响应输入;Key 与输出描述符都支持未对齐存储。
| 参数 | 说明 |
|---|---|
| xhttpcacherecordinput* pInput | 输入 |
| const xhttpcachekey* pKey | 键 |
| uint16 iStatus | 状态码 |
示例已编译验证
httpcacherecordinputinit obj; xrtHttpCacheRecordInputInit(&obj, pInput, pKey, iStatus);
xrtHttpCacheRecordCreate
XRT_API xhttpcacherecord* xrtHttpCacheRecordCreate( const xhttpcacherecordinput* pInput );
示例已编译验证
/* XRT_API xhttpcacherecord* xrtHttpCacheRecordCreate( const xhttpcacherecordinput* pInput ); */ xhandle* h = xrtHttpCacheRecordCreate();
xrtHttpCacheRecordRetain
增加 Record 引用并返回原指针;引用溢出时返回空指针。
| 参数 | 说明 |
|---|---|
| const xhttpcacherecord* pRecord | 日志记录视图 |
示例已编译验证
/* 增加 Record 引用并返回原指针;引用溢出时返回空指针。 */ result = xrtHttpCacheRecordRetain(pRecord);
xrtHttpCacheRecordRelease
释放 Record 引用;空指针是安全的空操作。
| 参数 | 说明 |
|---|---|
| xhttpcacherecord* pRecord | 日志记录视图 |
示例已编译验证
xrtHttpCacheRecordRelease(pRecord);
xrtHttpCacheRecordKey
返回 Record 拥有的主键;Fields 只包含 Vary 引用的原请求字段。
| 参数 | 说明 |
|---|---|
| const xhttpcacherecord* pRecord | 日志记录视图 |
示例已编译验证
/* 返回 Record 拥有的主键;Fields 只包含 Vary 引用的原请求字段。 */ result = xrtHttpCacheRecordKey(pRecord);
xrtHttpCacheRecordVersion
返回响应协议版本。
| 参数 | 说明 |
|---|---|
| const xhttpcacherecord* pRecord | 日志记录视图 |
示例已编译验证
/* 返回响应协议版本。 */ result = xrtHttpCacheRecordVersion(pRecord);
xrtHttpCacheRecordStatus
返回最终响应状态码。
| 参数 | 说明 |
|---|---|
| const xhttpcacherecord* pRecord | 日志记录视图 |
示例已编译验证
/* 返回最终响应状态码。 */ result = xrtHttpCacheRecordStatus(pRecord);
xrtHttpCacheRecordFlags
返回 Record 标志。
| 参数 | 说明 |
|---|---|
| const xhttpcacherecord* pRecord | 日志记录视图 |
示例已编译验证
/* 返回 Record 标志。 */ result = xrtHttpCacheRecordFlags(pRecord);
xrtHttpCacheRecordReason
返回借用的 reason phrase。
| 参数 | 说明 |
|---|---|
| const xhttpcacherecord* pRecord | 日志记录视图 |
示例已编译验证
/* 返回借用的 reason phrase。 */ result = xrtHttpCacheRecordReason(pRecord);
xrtHttpCacheRecordFieldCount
返回响应 Header 数量。
| 参数 | 说明 |
|---|---|
| const xhttpcacherecord* pRecord | 日志记录视图 |
示例已编译验证
/* 返回响应 Header 数量。 */ result = xrtHttpCacheRecordFieldCount(pRecord);
xrtHttpCacheRecordFieldAt
返回指定响应 Header,越界返回空指针且不设置错误。
| 参数 | 说明 |
|---|---|
| const xhttpcacherecord* pRecord | 日志记录视图 |
| size_t iIndex | 下标 |
示例已编译验证
/* 返回指定响应 Header,越界返回空指针且不设置错误。 */ result = xrtHttpCacheRecordFieldAt(pRecord, iIndex);
xrtHttpCacheRecordField
返回首个同名响应 Header,未找到返回空指针。
| 参数 | 说明 |
|---|---|
| const xhttpcacherecord* pRecord | 日志记录视图 |
| xstrview Name | 名称(xstrview) |
示例已编译验证
/* 返回首个同名响应 Header,未找到返回空指针。 */ result = xrtHttpCacheRecordField(pRecord, Name);
xrtHttpCacheRecordTrailerCount
返回响应 Trailer 数量。
| 参数 | 说明 |
|---|---|
| const xhttpcacherecord* pRecord | 日志记录视图 |
示例已编译验证
/* 返回响应 Trailer 数量。 */ result = xrtHttpCacheRecordTrailerCount(pRecord);
xrtHttpCacheRecordTrailerAt
返回指定响应 Trailer,越界返回空指针且不设置错误。
| 参数 | 说明 |
|---|---|
| const xhttpcacherecord* pRecord | 日志记录视图 |
| size_t iIndex | 下标 |
示例已编译验证
/* 返回指定响应 Trailer,越界返回空指针且不设置错误。 */ result = xrtHttpCacheRecordTrailerAt(pRecord, iIndex);
xrtHttpCacheRecordPartCount
返回正文片段数量。
| 参数 | 说明 |
|---|---|
| const xhttpcacherecord* pRecord | 日志记录视图 |
示例已编译验证
/* 返回正文片段数量。 */ result = xrtHttpCacheRecordPartCount(pRecord);
xrtHttpCacheRecordPartAt
返回指定不可变正文片段,越界返回空指针且不设置错误。
| 参数 | 说明 |
|---|---|
| const xhttpcacherecord* pRecord | 日志记录视图 |
| size_t iIndex | 下标 |
示例已编译验证
/* 返回指定不可变正文片段,越界返回空指针且不设置错误。 */ result = xrtHttpCacheRecordPartAt(pRecord, iIndex);
xrtHttpCacheRecordBodyBytes
返回全部片段有效载荷字节数。
| 参数 | 说明 |
|---|---|
| const xhttpcacherecord* pRecord | 日志记录视图 |
示例已编译验证
/* 返回全部片段有效载荷字节数。 */ result = xrtHttpCacheRecordBodyBytes(pRecord);
xrtHttpCacheRecordLength
返回完整表示长度;未知时返回零并由 HAS_LENGTH 标志区分。
| 参数 | 说明 |
|---|---|
| const xhttpcacherecord* pRecord | 日志记录视图 |
示例已编译验证
/* 返回完整表示长度;未知时返回零并由 HAS_LENGTH 标志区分。 */ result = xrtHttpCacheRecordLength(pRecord);
xrtHttpCacheRecordResponseTime
返回响应接收墙钟时间。
| 参数 | 说明 |
|---|---|
| const xhttpcacherecord* pRecord | 日志记录视图 |
示例已编译验证
/* 返回响应接收墙钟时间。 */ result = xrtHttpCacheRecordResponseTime(pRecord);
xrtHttpCacheRecordRequestClock
返回发出请求时的单调时钟。
| 参数 | 说明 |
|---|---|
| const xhttpcacherecord* pRecord | 日志记录视图 |
示例已编译验证
/* 返回发出请求时的单调时钟。 */ result = xrtHttpCacheRecordRequestClock(pRecord);
xrtHttpCacheRecordResponseClock
返回收到响应时的单调时钟。
| 参数 | 说明 |
|---|---|
| const xhttpcacherecord* pRecord | 日志记录视图 |
示例已编译验证
/* 返回收到响应时的单调时钟。 */ result = xrtHttpCacheRecordResponseClock(pRecord);
xrtHttpCacheRecordCharge
返回 Record 单次紧凑分配的实际字节数。
| 参数 | 说明 |
|---|---|
| const xhttpcacherecord* pRecord | 日志记录视图 |
示例已编译验证
/* 返回 Record 单次紧凑分配的实际字节数。 */ result = xrtHttpCacheRecordCharge(pRecord);
xrtHttpCacheRecordVaryCount
返回去重后的 Vary 选择字段数量。
| 参数 | 说明 |
|---|---|
| const xhttpcacherecord* pRecord | 日志记录视图 |
示例已编译验证
/* 返回去重后的 Vary 选择字段数量。 */ result = xrtHttpCacheRecordVaryCount(pRecord);
xrtHttpCacheRecordVaryAt
返回指定 Vary 字段名,越界返回空视图且不设置错误。
| 参数 | 说明 |
|---|---|
| const xhttpcacherecord* pRecord | 日志记录视图 |
| size_t iIndex | 下标 |
示例已编译验证
/* 返回指定 Vary 字段名,越界返回空视图且不设置错误。 */ result = xrtHttpCacheRecordVaryAt(pRecord, iIndex);
xrtHttpCacheRecordMatches
XRT_API bool xrtHttpCacheRecordMatches( const xhttpcacherecord* pRecord, const xhttpcachekey* pKey );
示例已编译验证
/* XRT_API bool xrtHttpCacheRecordMatches( const xhttpcacherecord* pRecord, const xhttpcachekey* pKey ); */ result = xrtHttpCacheRecordMatches();
xrtHttpCacheRecordEntry
构造验证协议层可直接使用的借用 Entry 视图;输出支持未对齐存储。
| 参数 | 说明 |
|---|---|
| const xhttpcacherecord* pRecord | 日志记录视图 |
| xhttpcacheentry* pEntry | 条目 |
示例已编译验证
/* 构造验证协议层可直接使用的借用 Entry 视图;输出支持未对齐存储。 */ result = xrtHttpCacheRecordEntry(pRecord, pEntry);
xrtHttpCacheCreate
创建线程安全的有界内存缓存;可选配置在返回前从未对齐存储快照。
| 参数 | 说明 |
|---|---|
| const xhttpcacheconfig* pConfig | 配置结构 |
示例已编译验证
/* 创建线程安全的有界内存缓存;可选配置在返回前从未对齐存储快照。 */ xhandle* h = xrtHttpCacheCreate();
xrtHttpCacheOpen
XRT_API xhttpcache* xrtHttpCacheOpen( const xhttpcacheops* pOps, ptr pContext );
示例已编译验证
/* XRT_API xhttpcache* xrtHttpCacheOpen( const xhttpcacheops* pOps, ptr pContext ); */ result = xrtHttpCacheOpen();
xrtHttpCacheRetain
增加 Cache 引用并返回原指针;引用溢出时返回空指针。
| 参数 | 说明 |
|---|---|
| const xhttpcache* pCache | 缓存对象 |
示例已编译验证
/* 增加 Cache 引用并返回原指针;引用溢出时返回空指针。 */ result = xrtHttpCacheRetain(pCache);
xrtHttpCacheRelease
释放 Cache 引用;空指针是安全的空操作。
| 参数 | 说明 |
|---|---|
| xhttpcache* pCache | 缓存对象 |
示例已编译验证
xrtHttpCacheRelease(pCache);
xrtHttpCacheGet
XRT_API xhttpcachelookup xrtHttpCacheGet( xhttpcache* pCache, const xhttpcachekey* pKey, xhttpcacherecord** ppRecord );
示例已编译验证
/* XRT_API xhttpcachelookup xrtHttpCacheGet( xhttpcache* pCache, const xhttpcachekey* pKey, xhttpcacherecord** ppRecord ); */ result = xrtHttpCacheGet();
xrtHttpCachePut
XRT_API xhttpcacheput xrtHttpCachePut( xhttpcache* pCache, xhttpcacherecord* pRecord );
示例已编译验证
/* XRT_API xhttpcacheput xrtHttpCachePut( xhttpcache* pCache, xhttpcacherecord* pRecord ); */ result = xrtHttpCachePut();
xrtHttpCacheInsert
XRT_API xhttpcacheput xrtHttpCacheInsert( xhttpcache* pCache, xhttpcacherecord* pRecord );
示例已编译验证
/* XRT_API xhttpcacheput xrtHttpCacheInsert( xhttpcache* pCache, xhttpcacherecord* pRecord ); */ result = xrtHttpCacheInsert();
xrtHttpCacheReplace
XRT_API xhttpcacheput xrtHttpCacheReplace( xhttpcache* pCache, const xhttpcacherecord* pExpected, xhttpcacherecord* pReplacement );
示例已编译验证
/* XRT_API xhttpcacheput xrtHttpCacheReplace( xhttpcache* pCache, const xhttpcacherecord* pExpected, xhttpcacherecord* pReplacement ); */ result = xrtHttpCacheReplace();
xrtHttpCacheRemoveRecord
XRT_API xhttpcachechange xrtHttpCacheRemoveRecord( xhttpcache* pCache, const xhttpcacherecord* pExpected );
示例已编译验证
/* XRT_API xhttpcachechange xrtHttpCacheRemoveRecord( xhttpcache* pCache, const xhttpcacherecord* pExpected ); */ result = xrtHttpCacheRemoveRecord();
xrtHttpCacheRemove
XRT_API bool xrtHttpCacheRemove( xhttpcache* pCache, const xhttpcachekey* pKey, size_t* pRemoved );
示例已编译验证
/* XRT_API bool xrtHttpCacheRemove( xhttpcache* pCache, const xhttpcachekey* pKey, size_t* pRemoved ); */ result = xrtHttpCacheRemove();
xrtHttpCacheRemoveURI
XRT_API bool xrtHttpCacheRemoveURI( xhttpcache* pCache, xstrview URI, xstrview Partition, size_t* pRemoved );
示例已编译验证
/* XRT_API bool xrtHttpCacheRemoveURI( xhttpcache* pCache, xstrview URI, xstrview Partition, size_t* pRemoved ); */ result = xrtHttpCacheRemoveURI();
xrtHttpCacheClear
删除全部记录并保留 Map 桶容量供后续复用。
| 参数 | 说明 |
|---|---|
| xhttpcache* pCache | 缓存对象 |
示例已编译验证
/* 删除全部记录并保留 Map 桶容量供后续复用。 */ result = xrtHttpCacheClear(pCache);
xrtHttpCacheStats
取得一致统计快照;未对齐输出受支持,失败时输出全零。
| 参数 | 说明 |
|---|---|
| xhttpcache* pCache | 缓存对象 |
| xhttpcachestats* pStats | 出:统计快照 |
示例已编译验证
/* 取得一致统计快照;未对齐输出受支持,失败时输出全零。 */ result = xrtHttpCacheStats(pCache, pStats);