xrtHttpCacheConfigInit

初始化默认缓存限额;固定配置描述符支持未对齐存储。

void xrtHttpCacheConfigInit(xhttpcacheconfig* pConfig);
参数说明
xhttpcacheconfig* pConfig配置结构
返回:初始化默认缓存限额;固定配置描述符支持未对齐存储。

示例已编译验证

httpcacheconfiginit obj;
xrtHttpCacheConfigInit(&obj);

xrtHttpCacheKeyInit

初始化没有分区和请求字段的主键;未对齐输出在返回前一次性发布。

bool xrtHttpCacheKeyInit( xhttpcachekey* pKey, xstrview Method, xstrview URI );
参数说明
xhttpcachekey* pKey键
xstrview MethodHTTP 方法
xstrview URIURI 参数
返回:初始化没有分区和请求字段的主键;未对齐输出在返回前一次性发布。

示例已编译验证

httpcachekeyinit obj;
xrtHttpCacheKeyInit(&obj, pKey, Method, URI);

xrtHttpCacheRecordInputInit

初始化 HTTP/1.1 响应输入;Key 与输出描述符都支持未对齐存储。

bool xrtHttpCacheRecordInputInit( xhttpcacherecordinput* pInput, const xhttpcachekey* pKey, uint16 iStatus );
参数说明
xhttpcacherecordinput* pInput输入
const xhttpcachekey* pKey键
uint16 iStatus状态码
返回:初始化 HTTP/1.1 响应输入;Key 与输出描述符都支持未对齐存储。

示例已编译验证

httpcacherecordinputinit obj;
xrtHttpCacheRecordInputInit(&obj, pInput, pKey, iStatus);

xrtHttpCacheRecordCreate

XRT_API xhttpcacherecord* xrtHttpCacheRecordCreate( const xhttpcacherecordinput* pInput );

;
返回:XRT_API xhttpcacherecord* xrtHttpCacheRecordCreate( const xhttpcacherecordinput* pInput );

示例已编译验证

/* XRT_API xhttpcacherecord* xrtHttpCacheRecordCreate( const xhttpcacherecordinput* pInput ); */
xhandle* h = xrtHttpCacheRecordCreate();

xrtHttpCacheRecordRetain

增加 Record 引用并返回原指针;引用溢出时返回空指针。

xhttpcacherecord* xrtHttpCacheRecordRetain( const xhttpcacherecord* pRecord );
参数说明
const xhttpcacherecord* pRecord日志记录视图
返回:增加 Record 引用并返回原指针;引用溢出时返回空指针。

示例已编译验证

/* 增加 Record 引用并返回原指针;引用溢出时返回空指针。 */
result = xrtHttpCacheRecordRetain(pRecord);

xrtHttpCacheRecordRelease

释放 Record 引用;空指针是安全的空操作。

void xrtHttpCacheRecordRelease(xhttpcacherecord* pRecord);
参数说明
xhttpcacherecord* pRecord日志记录视图
返回:释放 Record 引用;空指针是安全的空操作。

示例已编译验证

xrtHttpCacheRecordRelease(pRecord);

xrtHttpCacheRecordKey

返回 Record 拥有的主键;Fields 只包含 Vary 引用的原请求字段。

const xhttpcachekey* xrtHttpCacheRecordKey( const xhttpcacherecord* pRecord );
参数说明
const xhttpcacherecord* pRecord日志记录视图
返回:返回 Record 拥有的主键;Fields 只包含 Vary 引用的原请求字段。

示例已编译验证

/* 返回 Record 拥有的主键;Fields 只包含 Vary 引用的原请求字段。 */
result = xrtHttpCacheRecordKey(pRecord);

xrtHttpCacheRecordVersion

返回响应协议版本。

xhttpversion xrtHttpCacheRecordVersion( const xhttpcacherecord* pRecord );
参数说明
const xhttpcacherecord* pRecord日志记录视图
返回:返回响应协议版本。

示例已编译验证

/* 返回响应协议版本。 */
result = xrtHttpCacheRecordVersion(pRecord);

xrtHttpCacheRecordStatus

返回最终响应状态码。

uint16 xrtHttpCacheRecordStatus( const xhttpcacherecord* pRecord );
参数说明
const xhttpcacherecord* pRecord日志记录视图
返回:返回最终响应状态码。

示例已编译验证

/* 返回最终响应状态码。 */
result = xrtHttpCacheRecordStatus(pRecord);

xrtHttpCacheRecordFlags

返回 Record 标志。

uint32 xrtHttpCacheRecordFlags( const xhttpcacherecord* pRecord );
参数说明
const xhttpcacherecord* pRecord日志记录视图
返回:返回 Record 标志。

示例已编译验证

/* 返回 Record 标志。 */
result = xrtHttpCacheRecordFlags(pRecord);

xrtHttpCacheRecordReason

返回借用的 reason phrase。

xstrview xrtHttpCacheRecordReason( const xhttpcacherecord* pRecord );
参数说明
const xhttpcacherecord* pRecord日志记录视图
返回:返回借用的 reason phrase。

示例已编译验证

/* 返回借用的 reason phrase。 */
result = xrtHttpCacheRecordReason(pRecord);

xrtHttpCacheRecordFieldCount

返回响应 Header 数量。

size_t xrtHttpCacheRecordFieldCount( const xhttpcacherecord* pRecord );
参数说明
const xhttpcacherecord* pRecord日志记录视图
返回:返回响应 Header 数量。

示例已编译验证

/* 返回响应 Header 数量。 */
result = xrtHttpCacheRecordFieldCount(pRecord);

xrtHttpCacheRecordFieldAt

返回指定响应 Header,越界返回空指针且不设置错误。

const xhttpfield* xrtHttpCacheRecordFieldAt( const xhttpcacherecord* pRecord, size_t iIndex );
参数说明
const xhttpcacherecord* pRecord日志记录视图
size_t iIndex下标
返回:返回指定响应 Header,越界返回空指针且不设置错误。

示例已编译验证

/* 返回指定响应 Header,越界返回空指针且不设置错误。 */
result = xrtHttpCacheRecordFieldAt(pRecord, iIndex);

xrtHttpCacheRecordField

返回首个同名响应 Header,未找到返回空指针。

const xhttpfield* xrtHttpCacheRecordField( const xhttpcacherecord* pRecord, xstrview Name );
参数说明
const xhttpcacherecord* pRecord日志记录视图
xstrview Name名称(xstrview)
返回:返回首个同名响应 Header,未找到返回空指针。

示例已编译验证

/* 返回首个同名响应 Header,未找到返回空指针。 */
result = xrtHttpCacheRecordField(pRecord, Name);

xrtHttpCacheRecordTrailerCount

返回响应 Trailer 数量。

size_t xrtHttpCacheRecordTrailerCount( const xhttpcacherecord* pRecord );
参数说明
const xhttpcacherecord* pRecord日志记录视图
返回:返回响应 Trailer 数量。

示例已编译验证

/* 返回响应 Trailer 数量。 */
result = xrtHttpCacheRecordTrailerCount(pRecord);

xrtHttpCacheRecordTrailerAt

返回指定响应 Trailer,越界返回空指针且不设置错误。

const xhttpfield* xrtHttpCacheRecordTrailerAt( const xhttpcacherecord* pRecord, size_t iIndex );
参数说明
const xhttpcacherecord* pRecord日志记录视图
size_t iIndex下标
返回:返回指定响应 Trailer,越界返回空指针且不设置错误。

示例已编译验证

/* 返回指定响应 Trailer,越界返回空指针且不设置错误。 */
result = xrtHttpCacheRecordTrailerAt(pRecord, iIndex);

xrtHttpCacheRecordPartCount

返回正文片段数量。

size_t xrtHttpCacheRecordPartCount( const xhttpcacherecord* pRecord );
参数说明
const xhttpcacherecord* pRecord日志记录视图
返回:返回正文片段数量。

示例已编译验证

/* 返回正文片段数量。 */
result = xrtHttpCacheRecordPartCount(pRecord);

xrtHttpCacheRecordPartAt

返回指定不可变正文片段,越界返回空指针且不设置错误。

const xhttpcachepart* xrtHttpCacheRecordPartAt( const xhttpcacherecord* pRecord, size_t iIndex );
参数说明
const xhttpcacherecord* pRecord日志记录视图
size_t iIndex下标
返回:返回指定不可变正文片段,越界返回空指针且不设置错误。

示例已编译验证

/* 返回指定不可变正文片段,越界返回空指针且不设置错误。 */
result = xrtHttpCacheRecordPartAt(pRecord, iIndex);

xrtHttpCacheRecordBodyBytes

返回全部片段有效载荷字节数。

uint64 xrtHttpCacheRecordBodyBytes( const xhttpcacherecord* pRecord );
参数说明
const xhttpcacherecord* pRecord日志记录视图
返回:返回全部片段有效载荷字节数。

示例已编译验证

/* 返回全部片段有效载荷字节数。 */
result = xrtHttpCacheRecordBodyBytes(pRecord);

xrtHttpCacheRecordLength

返回完整表示长度;未知时返回零并由 HAS_LENGTH 标志区分。

uint64 xrtHttpCacheRecordLength( const xhttpcacherecord* pRecord );
参数说明
const xhttpcacherecord* pRecord日志记录视图
返回:返回完整表示长度;未知时返回零并由 HAS_LENGTH 标志区分。

示例已编译验证

/* 返回完整表示长度;未知时返回零并由 HAS_LENGTH 标志区分。 */
result = xrtHttpCacheRecordLength(pRecord);

xrtHttpCacheRecordResponseTime

返回响应接收墙钟时间。

xtime xrtHttpCacheRecordResponseTime( const xhttpcacherecord* pRecord );
参数说明
const xhttpcacherecord* pRecord日志记录视图
返回:返回响应接收墙钟时间。

示例已编译验证

/* 返回响应接收墙钟时间。 */
result = xrtHttpCacheRecordResponseTime(pRecord);

xrtHttpCacheRecordRequestClock

返回发出请求时的单调时钟。

uint64 xrtHttpCacheRecordRequestClock( const xhttpcacherecord* pRecord );
参数说明
const xhttpcacherecord* pRecord日志记录视图
返回:返回发出请求时的单调时钟。

示例已编译验证

/* 返回发出请求时的单调时钟。 */
result = xrtHttpCacheRecordRequestClock(pRecord);

xrtHttpCacheRecordResponseClock

返回收到响应时的单调时钟。

uint64 xrtHttpCacheRecordResponseClock( const xhttpcacherecord* pRecord );
参数说明
const xhttpcacherecord* pRecord日志记录视图
返回:返回收到响应时的单调时钟。

示例已编译验证

/* 返回收到响应时的单调时钟。 */
result = xrtHttpCacheRecordResponseClock(pRecord);

xrtHttpCacheRecordCharge

返回 Record 单次紧凑分配的实际字节数。

size_t xrtHttpCacheRecordCharge( const xhttpcacherecord* pRecord );
参数说明
const xhttpcacherecord* pRecord日志记录视图
返回:返回 Record 单次紧凑分配的实际字节数。

示例已编译验证

/* 返回 Record 单次紧凑分配的实际字节数。 */
result = xrtHttpCacheRecordCharge(pRecord);

xrtHttpCacheRecordVaryCount

返回去重后的 Vary 选择字段数量。

size_t xrtHttpCacheRecordVaryCount( const xhttpcacherecord* pRecord );
参数说明
const xhttpcacherecord* pRecord日志记录视图
返回:返回去重后的 Vary 选择字段数量。

示例已编译验证

/* 返回去重后的 Vary 选择字段数量。 */
result = xrtHttpCacheRecordVaryCount(pRecord);

xrtHttpCacheRecordVaryAt

返回指定 Vary 字段名,越界返回空视图且不设置错误。

xstrview xrtHttpCacheRecordVaryAt( const xhttpcacherecord* pRecord, size_t iIndex );
参数说明
const xhttpcacherecord* pRecord日志记录视图
size_t iIndex下标
返回:返回指定 Vary 字段名,越界返回空视图且不设置错误。

示例已编译验证

/* 返回指定 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 );

示例已编译验证

/* XRT_API bool xrtHttpCacheRecordMatches( const xhttpcacherecord* pRecord, const xhttpcachekey* pKey ); */
result = xrtHttpCacheRecordMatches();

xrtHttpCacheRecordEntry

构造验证协议层可直接使用的借用 Entry 视图;输出支持未对齐存储。

bool xrtHttpCacheRecordEntry( const xhttpcacherecord* pRecord, xhttpcacheentry* pEntry );
参数说明
const xhttpcacherecord* pRecord日志记录视图
xhttpcacheentry* pEntry条目
返回:构造验证协议层可直接使用的借用 Entry 视图;输出支持未对齐存储。

示例已编译验证

/* 构造验证协议层可直接使用的借用 Entry 视图;输出支持未对齐存储。 */
result = xrtHttpCacheRecordEntry(pRecord, pEntry);

xrtHttpCacheCreate

创建线程安全的有界内存缓存;可选配置在返回前从未对齐存储快照。

xhttpcache* xrtHttpCacheCreate( const xhttpcacheconfig* pConfig );
参数说明
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 );

示例已编译验证

/* XRT_API xhttpcache* xrtHttpCacheOpen( const xhttpcacheops* pOps, ptr pContext ); */
result = xrtHttpCacheOpen();

xrtHttpCacheRetain

增加 Cache 引用并返回原指针;引用溢出时返回空指针。

xhttpcache* xrtHttpCacheRetain(const xhttpcache* pCache);
参数说明
const xhttpcache* pCache缓存对象
返回:增加 Cache 引用并返回原指针;引用溢出时返回空指针。

示例已编译验证

/* 增加 Cache 引用并返回原指针;引用溢出时返回空指针。 */
result = xrtHttpCacheRetain(pCache);

xrtHttpCacheRelease

释放 Cache 引用;空指针是安全的空操作。

void xrtHttpCacheRelease(xhttpcache* pCache);
参数说明
xhttpcache* pCache缓存对象
返回:释放 Cache 引用;空指针是安全的空操作。

示例已编译验证

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 );

示例已编译验证

/* 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 );

示例已编译验证

/* 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 );

示例已编译验证

/* 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 );

示例已编译验证

/* 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 );

示例已编译验证

/* 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 );

示例已编译验证

/* 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 );

示例已编译验证

/* XRT_API bool xrtHttpCacheRemoveURI( xhttpcache* pCache, xstrview URI, xstrview Partition, size_t* pRemoved ); */
result = xrtHttpCacheRemoveURI();

xrtHttpCacheClear

删除全部记录并保留 Map 桶容量供后续复用。

bool xrtHttpCacheClear(xhttpcache* pCache);
参数说明
xhttpcache* pCache缓存对象
返回:删除全部记录并保留 Map 桶容量供后续复用。

示例已编译验证

/* 删除全部记录并保留 Map 桶容量供后续复用。 */
result = xrtHttpCacheClear(pCache);

xrtHttpCacheStats

取得一致统计快照;未对齐输出受支持,失败时输出全零。

bool xrtHttpCacheStats( xhttpcache* pCache, xhttpcachestats* pStats );
参数说明
xhttpcache* pCache缓存对象
xhttpcachestats* pStats出:统计快照
返回:取得一致统计快照;未对齐输出受支持,失败时输出全零。

示例已编译验证

/* 取得一致统计快照;未对齐输出受支持,失败时输出全零。 */
result = xrtHttpCacheStats(pCache, pStats);