亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? apiht.h

?? 用c/c++實現的一個CMPP API
?? H
字號:
/*---------------------------------------------------------------* * File: apiht.h                                      * Desc: 實現內存哈希表的定義 *    *                  copyright@Wenyz Aspire Co. *                  2002/11/09       *-------------------------changeLog ----------------------------* * DATE     Author      Description *       *2002/11/09    wenyz       Created *--------------------------------------------------------------- *2002/11/09    wenyz   整理代碼,用于貨架技術 *2002/11/26    wenyz   ANSIC 版本 *---------------------------------------------------------------*/ #ifndef HASH_TABLE_HPP#define HASH_TABLE_HPP#include "os.h"#define SHMHT_OK        0   /*  返回成功 */#define SHMHT_FAILED    -1  /*  失敗  */#define SHMHT_NOSPACE   -3  /*  沒有空間 */#define SHMHT_NOFOUND   -3  /*  沒有該內容包 *//**一個包的內容*包括 下一個指針,key值,包內容*/struct tagrecHashCell{    struct  tagrecHashCell* pNext;      /*下一個結點*/    struct  tagrecHashCell* pPrev;      /*前一個結點*/    time_t  tMsgTime;                   /*消息操作時間*/    int     nKeySize;                   /*key的長度*/    void*   pvKey;                      /*key的內容地址*/    int     nPckSize;                       /*包體長度*/    void*   pvPck;                      /*包體內容地址*/};typedef struct  tagrecHashCell  recHashCell;/**內存的管理在這個隊列實現, *申請空間從這個隊列讀一個包,*釋放空間往這個隊列寫一個包*在初始化時候往這個對列寫入最多的包*/typedef struct tagrecFreeQCell{    int nHead;              /*內存管理隊列的頭*/    int nTail;              /*內存管理隊列的尾*/    recHashCell**   pvAddr;         /* 地址空間數組 */}recFreeQCell;  typedef struct  tagHTCell{    int nInitFlag;  /*是否初始化標志*/    int nShmSize;   /*申請的總共內容包內存大小*/    int nMsgMaxNum; /*哈希表中包最多個數*/    int nBucket;    /*哈希表的桶數*/    int nSize;      /*哈希表中包長度*/    int nKeySize;   /*哈希表中key的長度*/                int     nIterFlag ;     /* for iterator */    recHashCell*    pMarkCell;  /* for iterator */    recHashCell*    pCurrCell;  /* for iterator */    int nCurrentBucket;     /* for iterator */        void*   pSAddr;     /*內容包的開始地址*/    void*   pEAddr;     /*內容包的結束地址*/    time_t  tMsgTime;   /*哈希表中最后一條操作消息時間*/    pid_t   nMsgPid;    /*哈希表最后一條操作消息進程ID*/        recHashCell** pBucket;  /*哈希表的桶的首指針數組*/      recFreeQCell    RecFreeQ;   /*空閑的內存管理隊列*/}recHTCell;                                                /**function 調試工具*/void    vDumpHTApi( FILE* fp, void* pAddr );/*描述: 得到HASH表內存的負載系數和包的個數輸入:  pvHLink HT表句柄, 輸出: pnCellNum 包的個數返回: 0-100負載的百分比系數*/int     nGetHTLoadApi( void* pvHTLink, int* pnCellNum );        /*描述: 得到HASH表內存的pBucket指針數組的首地址輸入:  pvHLink HT表句柄, 輸出:  recHashCell*** pppBucket, int* pnCount 指針數組個數返回: SHMHT_OK 成功       SHMHT_FAILED 錯誤,    */int     nGetHTpBucketApi( void* pvHTLink, recHashCell*** pppBucket, int* pnCount );/*描述: 通過KEY得到HASH表內存的pBucket指針的首地址輸入:  pvHLink HT表句柄, pvKeyAddr, KEY的地址, nKeySize  KEY的長度 輸出:  recHashCell** ppBucket返回: SHMHT_OK 成功       SHMHT_FAILED 錯誤,*/int     nGetHTpBucketByKeyApi( void* pvHTLink, void* pvKeyAddr,                             int nKeySize, recHashCell** ppBucket                             );/**描述: 添加一條記錄進入HASH表內存*輸入: pHLink HT表句柄, pvKeyAddr KEY值指針, nKeySize KEY長度,                    pvCellAddr 要添加的包指針,nCellSize 包的長度。 *輸出: SHMHT_OK 成功 , SHMHT_FAILED 失敗 SHMHT_NOSPACE   沒有空間*/int     nAddACellApi( void* pvHTLink, 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     nAddACellAndUpdateApi( void* pvHTLink, void* pvKeyAddr,                             int nKeySize, void* pvCellAddr, int nCellSize );/*描述:刪除HASH表內存一條記錄輸入:pHLink HT表句柄,pvKeyAddr KEY值指針, nKeySize KEY長度,nCellSize 包的長度。 輸出:pvCellAddr 刪除的包指針*返回:SHMHT_OK, 成功, SHMHT_FAILED 失敗  SHMHT_NOFOUND 沒有該包,*/int     nDelACellApi( void* pvHTLink, void* pvKeyAddr, int nKeySize,                           void* pvCellAddr, int nCellSize );/**描述:查找HASH表內存一條記錄*輸入:pHLink HT表句柄,pvKeyAddr KEY值指針, nKeySize KEY長度,        nCellSize 包的長度。 *輸出:pvCellAddr 查找的包指針*返回:SHMHT_OK, 成功, SHMHT_FAILED 失敗  SHMHT_NOFOUND 沒有該包,*/int     nSerACellApi( void* pvHTLink, void* pvKeyAddr, int nKeySize,                            void* pvCellAddr, int nCellSize );/**描述:更新HASH表內存一條記錄*輸入:pHLink HT表句柄,pvKeyAddr KEY值指針, nKeySize KEY長度,        pvCellAddr 更新的包指針,nCellSize 包的長度。 *輸出: 無*返回:SHMHT_OK, 成功, SHMHT_FAILED 失敗  SHMHT_NOFOUND 沒有該包,*/int     nUpdateACellApi( void* pvHTLink, void* pvKeyAddr,                       int nKeySize, void* pvCellAddr,                       int nCellSize );/**描述:通過函數指針更新HASH表一條記錄*輸入:pHLink HT表句柄,pvKeyAddr KEY值指針, nKeySize KEY長度,       int (*pfnPckFunc)( void*, size_t )更新函數的函數指針 void* 為包指針,       size_t為包的長度       注意 pfnPckFunc()為外部使用的更改內存內容的函數,       可以任意修改內存中數據*輸出: 無*返回:SHMHT_OK, 成功, SHMHT_FAILED 失敗  SHMHT_NOFOUND 沒有該包,*/int     nUpdateACellByFunc( void* pvHTLink, void* pvKeyAddr, int nKeySize,                        int (*pfnPckFunc)( void*, size_t ) );/**描述:通過函數指針更新HASH表一條記錄, *                如果沒有該KEY的包,添加進去*輸入:pHLink HT表句柄,pvKeyAddr KEY值指針, nKeySize KEY長度,       int (*pfnPckFunc)( void*, size_t )更新函數的函數指針 void* 為包指針,       size_t為包的長度       注意 pfnPckFunc()為外部使用的更改內存內容的函數,                    可以任意修改內存中數據*輸出: 無*返回:SHMHT_OK, 成功, SHMHT_FAILED 失敗  SHMHT_NOSPACE 沒有內存空間*/int     nAddOrUpdateACellByFunc( void* pvHTLink, void* pvKeyAddr, int nKeySize,                                  void* pvCellAddr, int nCellSize,                                 int (*pfnPckFunc)( void*, size_t ) );/**描述: 取出一個超時的記錄*輸入: pHLink HT表句柄, nTimeOut 超過時間間隔*輸出pvKeyAddr KEY值指針, nKeySize KEY長度,    pvCellAddr 查找的包指針,nCellSize 包的長度。 *返回:>=0 成功 , <0 失敗*/int     nGetTimeOutACellApi( void* pHTLink, int    nTimeOut, void* pvKeyAddr,                           int nKeySize, void* pvCellAddr, int nCellSize );/**描述: 刪除HASH表內存一條記錄(通過包內容)*輸入: pHLink HT表句柄    pvCellAddr 刪除的包指針,nCellSize 包的長度。 *輸出: pvKeyAddr KEY值指針, nKeySize KEY長度*返回: SHMHT_OK 成功        SHMHT_FAILED 錯誤,*/int     nDelACellByPckApi( void* pvHTLink, void* pvKeyAddr,                         int nKeySize, void* pvCellAddr,                         int nCellSize );/*描述: 復位HASH表內存輸入:  pvHLink HT表句柄,                 輸出: 返回: 0 成功,-1 輸入參數錯誤,-2 內部函數錯誤*/int     nResetShmHTApi( void* pvHLink );/*--------------------------* *內存表的三個函數定義      *    ---------------------------*//*描述: 初始化固定長度的HASH表內存輸入:  nKeySize KEY值的長度。 nPckSize 包體長度    nBucket 桶的個數, nPckCount 包的個數        *返回:HT表句柄 >0 成功 , NULL 失敗*/void*   pvInitMemHT( int nKeySize, int nPckSize, int nBucket, int nPckCount );/**描述: 釋放該HASH表的內存*輸入:  pvHLink HT表句柄*輸出: 無 返回: SHMHT_OK 成功,SHMHT_FAILED 錯誤*/int     nRemoveMemHT(  void* pvHLink );/**描述: 復位HASH表內存*輸入:  pvHLink HT表句柄,                 *輸出: *返回: SHMHT_OK 成功,SHMHT_FAILED 錯誤*/int     nResetMemHT( void* pvHLink );/**描述: 檢查輸入參數合法性*輸入: pHLink HT表句柄    nKeySize KEY 長度 nCellSize 包的長度。 *輸出: *返回: SHMHT_OK 成功       SHMHT_FAILED 錯誤,*/int     nCheckInputSize( int nKeySize, int nCellSize, const recHTCell* pHTLink );/**描述: 從一個桶中取出一個超時的記錄*輸入: pHLink HT表句柄,nBucket 桶的下標, nTimeOut 超過時間間隔    輸出pvKeyAddr KEY值指針, nKeySize KEY長度,    pvCellAddr 查找的包指針,nCellSize 包的長度。    如果pvKeyAddr, nKeySize , pvCellAddr, nCellSize 為空的話,  清除所有超時的包     *輸出:>=0 成功 清除的包的個數, SHMHT_FAILED 失敗 */int    nGetABucketTimeOutCell( void* pvHTLink, int nBucket,                                int nTimeOut,  void* pvKeyAddr,                                int nKeySize, void* pvCellAddr,                                int nCellSize );#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
高清beeg欧美| 中文字幕av一区 二区| 欧美久久久久免费| 久久在线观看免费| 天堂一区二区在线免费观看| 日韩国产精品久久久久久亚洲| 国产中文字幕一区| 欧美人xxxx| 国产精品国产三级国产三级人妇 | 天天操天天干天天综合网| 日本成人超碰在线观看| 成人毛片老司机大片| 欧美一区二区网站| 一区二区视频在线看| 国内精品久久久久影院薰衣草| 色综合久久久久网| 中文字幕一区二区三区四区不卡| 久久精品国产亚洲一区二区三区 | 欧美色偷偷大香| 国产精品乱码一区二区三区软件 | 国产精品国产三级国产aⅴ原创| 三级在线观看一区二区| 99视频在线精品| 中文字幕av免费专区久久| 免费观看成人av| 日韩写真欧美这视频| 一区二区三区欧美在线观看| 蜜臀久久99精品久久久久宅男| 91亚洲永久精品| 亚洲丝袜精品丝袜在线| 国产另类ts人妖一区二区| 日韩一区二区在线看| 天天影视涩香欲综合网| 色哟哟精品一区| 一区二区三区欧美亚洲| 91在线一区二区三区| 亚洲天堂精品在线观看| www.亚洲在线| 亚洲欧美韩国综合色| 97精品久久久久中文字幕| 中文字幕亚洲在| 在线日韩一区二区| 调教+趴+乳夹+国产+精品| 欧美最猛性xxxxx直播| 综合分类小说区另类春色亚洲小说欧美| 成人性视频免费网站| 国产精品你懂的| 色综合久久九月婷婷色综合| 国产精品天美传媒沈樵| 丰满少妇在线播放bd日韩电影| 国产亚洲欧洲997久久综合 | 日韩区在线观看| 经典三级在线一区| 国产精品久久久久久久久快鸭| 成年人国产精品| 亚洲第一激情av| 日韩欧美一级二级| 成人永久aaa| 亚洲午夜精品17c| 欧美变态口味重另类| 欧美午夜一区二区三区免费大片| 亚洲欧美激情视频在线观看一区二区三区 | 91.xcao| 国产乱码精品一区二区三| 国产欧美一区二区精品婷婷 | 精品日产卡一卡二卡麻豆| 精品一区二区三区在线播放视频| 久久影院午夜论| 日本伦理一区二区| 裸体在线国模精品偷拍| 久久久精品免费观看| 色婷婷av一区二区三区大白胸| 亚洲国产精品一区二区尤物区| 欧美一卡二卡三卡| 91一区二区三区在线播放| 丝袜亚洲另类欧美| 国产精品久久久久久福利一牛影视| 91国内精品野花午夜精品| 麻豆成人av在线| 亚洲精品视频一区| 久久久91精品国产一区二区精品 | 蜜乳av一区二区| 国产精品福利一区| 精品国产一区a| 色成人在线视频| 成人激情校园春色| 久久精品久久精品| 亚洲成av人在线观看| 国产肉丝袜一区二区| 欧美日韩不卡一区二区| 成人激情免费电影网址| 婷婷综合五月天| 一区二区国产视频| 日韩码欧中文字| 亚洲国产精品成人久久综合一区| 欧美日韩国产天堂| 在线免费不卡视频| 97精品久久久久中文字幕| 黄色成人免费在线| 日韩电影在线观看一区| 亚洲另类在线一区| 亚洲色图色小说| 中文字幕欧美区| 久久久久成人黄色影片| 日韩一区二区三区在线观看| 丰满放荡岳乱妇91ww| 六月丁香综合在线视频| 亚洲va在线va天堂| 一区二区三区欧美日| 欧美经典一区二区| 国产区在线观看成人精品| 欧美一级生活片| 欧美一级日韩免费不卡| 欧美高清视频www夜色资源网| 波多野结衣精品在线| 国产精品91一区二区| 六月丁香综合在线视频| 日韩电影免费一区| 日韩精品午夜视频| 蜜臀久久久久久久| 国产主播一区二区| 国产成人亚洲综合a∨婷婷| 国产真实乱偷精品视频免| 免费成人在线观看| 国内精品第一页| 国产成人日日夜夜| 91丨九色丨尤物| 色哟哟在线观看一区二区三区| 99精品欧美一区| 欧美日韩午夜在线视频| 欧美精品日日鲁夜夜添| 3d成人动漫网站| 精品三级在线看| 国产精品久久国产精麻豆99网站| 久久精品在线观看| 亚洲人123区| 亚洲午夜免费电影| 久久超碰97中文字幕| 国产一区二区看久久| 国产成人精品三级麻豆| 99国产精品久久久久久久久久久| 色综合久久综合网欧美综合网| 91官网在线观看| 日韩午夜激情视频| 1区2区3区精品视频| 一区二区激情视频| 韩国女主播一区| 色www精品视频在线观看| 欧美区一区二区三区| 欧美成人乱码一区二区三区| 精品少妇一区二区| 亚洲日本在线a| 久久精品理论片| 色综合天天综合在线视频| 7777精品伊人久久久大香线蕉| 日韩美女视频在线| 亚洲日本青草视频在线怡红院| 亚洲电影你懂得| 国产很黄免费观看久久| 在线免费精品视频| 国产性色一区二区| 亚洲成人动漫在线观看| 国产精品综合一区二区| 日本久久一区二区三区| 91精品国产91久久综合桃花| 欧美不卡在线视频| 一区二区三区美女| 顶级嫩模精品视频在线看| 色av综合在线| 国产精品你懂的在线欣赏| 丝袜诱惑亚洲看片| 91免费看视频| 亚洲国产经典视频| 青青草国产精品97视觉盛宴| 国产自产2019最新不卡| 欧美日韩三级一区二区| 久久九九影视网| 麻豆91小视频| 91精品国产综合久久香蕉的特点 | 欧美一级午夜免费电影| 亚洲欧美区自拍先锋| 国产一区二区三区最好精华液| 在线观看日韩精品| 亚洲日本在线天堂| 99精品视频在线观看| 久久综合九色综合97_久久久| 亚洲va欧美va人人爽| 成人激情图片网| 欧美国产丝袜视频| 国产一区在线看| 欧美成人三级电影在线| 视频一区二区中文字幕| 欧美中文字幕久久| 一区二区三区不卡视频| 97久久精品人人做人人爽50路| 久久精品欧美一区二区三区不卡| 日韩精品免费视频人成| 欧美日韩二区三区| 亚洲成av人片在线| 911精品产国品一二三产区|