⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 apilockht.h

📁 用c/c++实现的一个CMPP API
💻 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 + -