📄 apilockht.h
字号:
/*---------------------------------------------------------------* * File: apilockht.h * Desc: 实现内存哈希表的定义,带互斥 * * copyright@Wenyz Aspire Co. * 2002/11/28 *-------------------------changeLog ----------------------------* * DATE Author Description * *2002/11/28 wenyz Created * *---------------------------------------------------------------*/ #ifndef _API_LOCK_HT_H_#define _API_LOCK_HT_H_#include "apiht.h" // 函数原型定义#include "datatype.h" // 数据结构定义/**描述: 添加一条记录进入HASH表内存*输入: pHLink HT表句柄, pvKeyAddr KEY值指针, nKeySize KEY长度, pvCellAddr 要添加的包指针,nCellSize 包的长度。 *输出: SHMHT_OK 成功 , SHMHT_FAILED 失败 SHMHT_NOSPACE 没有空间*/int nLockAddACell( recBufFd* prBufFd, void* pvKeyAddr, int nKeySize, void* pvCellAddr, int nCellSize );/**描述: 添加一条记录进入HASH表内存, 如果已经有一条的话,就update,如果没有就添加*输入: pHLink HT表句柄, pvKeyAddr KEY值指针, nKeySize KEY长度, pvCellAddr 要添加的包指针,nCellSize 包的长度。 *输出: SHMHT_OK, 成功, SHMHT_FAILED 失败 SHMHT_NOSPACE 空间不够*/int nLockAddACellAndUpdate( recBufFd* prBufFd, void* pvKeyAddr, int nKeySize, void* pvCellAddr, int nCellSize );/*描述:删除HASH表内存一条记录输入:pHLink HT表句柄,pvKeyAddr KEY值指针, nKeySize KEY长度,nCellSize 包的长度。 输出:pvCellAddr 删除的包指针*返回:SHMHT_OK, 成功, SHMHT_FAILED 失败 SHMHT_NOFOUND 没有该包,*/int nLockDelACell( recBufFd* prBufFd, void* pvKeyAddr, int nKeySize, void* pvCellAddr, int nCellSize );/**描述:查找HASH表内存一条记录*输入:pHLink HT表句柄,pvKeyAddr KEY值指针, nKeySize KEY长度, nCellSize 包的长度。 *输出:pvCellAddr 查找的包指针*返回:SHMHT_OK, 成功, SHMHT_FAILED 失败 SHMHT_NOFOUND 没有该包,*/int nLockSerACell( recBufFd* prBufFd, void* pvKeyAddr, int nKeySize, void* pvCellAddr, int nCellSize );/**描述:更新HASH表内存一条记录*输入:pHLink HT表句柄,pvKeyAddr KEY值指针, nKeySize KEY长度, pvCellAddr 更新的包指针,nCellSize 包的长度。 *输出: 无*返回:SHMHT_OK, 成功, SHMHT_FAILED 失败 SHMHT_NOFOUND 没有该包,*/int nLockUpdateACell( recBufFd* prBufFd, void* pvKeyAddr, int nKeySize, void* pvCellAddr, int nCellSize );/**描述: 取出一个超时的记录*输入: pHLink HT表句柄, nTimeOut 超过时间间隔*输出pvKeyAddr KEY值指针, nKeySize KEY长度, pvCellAddr 查找的包指针,nCellSize 包的长度。 *返回:>=0 成功 , <0 失败*/int nLockGetTimeOutACell( recBufFd* prBufFd, int nTimeOut, void* pvKeyAddr, int nKeySize, void* pvCellAddr, int nCellSize );/*--------------------------* *内存表的三个函数定义 * ---------------------------*//*描述: 初始化固定长度的HASH表内存输入: nKeySize KEY值的长度。 nPckSize 包体长度 nBucket 桶的个数, nPckCount 包的个数 *输出:recBufFd* prBufFd *返回:SHMHT_OK 成功,SHMHT_FAILED 错误*/int nLockInitMemHT( int nKeySize, int nPckSize, int nBucket, int nPckCount, recBufFd* prBufFd );/**描述: 释放该HASH表的内存*输入: prBufFd HT表句柄*输出: 无 返回: SHMHT_OK 成功,SHMHT_FAILED 错误*/int nLockRemoveMemHT( recBufFd* prBufFd );/**描述: 复位HASH表内存*输入: prBufFd HT表句柄, *输出: *返回: SHMHT_OK 成功,SHMHT_FAILED 错误*/int nLockResetMemHT( recBufFd* prBufFd );/**function 调试工具*/void vLockDumpHT( FILE* fp, recBufFd* prBufFd );/*描述: 得到HASH表内存的负载系数和包的个数输入: prBufFd HT表句柄, 输出: pnCellNum 包的个数返回: 0-100负载的百分比系数*/int nLockGetHTLoad( recBufFd* prBufFd, int* pnCellNum );#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -