WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
cstl_hash.h
浏览该文件的文档.
1
58#ifndef CSTL_HASH_H
59#define CSTL_HASH_H
60
61#include <stdlib.h>
62#include <stdbool.h>
63#include <string.h>
64#include "cstl_public.h"
65#include "securec.h"
66
67#ifdef __cplusplus
68extern "C" {
69#endif
70
75typedef struct CstlHashInfo CstlHash;
76
82
89typedef size_t (*CstlHashCodeCalcFunc)(uintptr_t key, size_t bktSize);
90
99typedef bool (*CstlHashMatchFunc)(uintptr_t key1, uintptr_t key2);
100
114size_t CstlHashCodeCalcInt(uintptr_t key, size_t bktSize);
115
129size_t CstlHashCodeCalcStr(uintptr_t key, size_t bktSize);
130
146
162
186CstlHash *CstlHashCreate(size_t bktSize,
187 CstlHashCodeCalcFunc hashFunc,
188 CstlHashMatchFunc matchFunc,
189 CstlDupFreeFuncPair *keyFunc,
190 CstlDupFreeFuncPair *valueFunc);
191
210int32_t CstlHashInsert(CstlHash *hash, uintptr_t key, size_t keySize, uintptr_t value, size_t valueSize);
211
230int32_t CstlHashPut(CstlHash *hash, uintptr_t key, size_t keySize, uintptr_t value, size_t valueSize);
231
245
257
269bool CstlHashEmpty(const CstlHash *hash);
270
280size_t CstlHashSize(const CstlHash *hash);
281
293
305
317
328
339
351
366
381
382#ifdef __cplusplus
383}
384#endif
385
386#endif /* CSTL_HASH_H */
387
cstl_public 公共模块对外定义
void CstlHashClear(CstlHash *hash)
删除hash表所有节点。
CstlHashIterator CstlHashIterEnd(const CstlHash *hash)
获取hash表中最后一个节点之后预留的迭代器。
int32_t CstlHashAt(const CstlHash *hash, uintptr_t key, uintptr_t *value)
查找节点,返回节点数据。
CstlHash * CstlHashCreate(size_t bktSize, CstlHashCodeCalcFunc hashFunc, CstlHashMatchFunc matchFunc, CstlDupFreeFuncPair *keyFunc, CstlDupFreeFuncPair *valueFunc)
创建一个Hash表,返回Hash表的句柄
int32_t CstlHashPut(CstlHash *hash, uintptr_t key, size_t keySize, uintptr_t value, size_t valueSize)
插入或更新hash数据
bool CstlHashMatchStr(uintptr_t key1, uintptr_t key2)
默认字符串匹配函数。
int32_t CstlHashInsert(CstlHash *hash, uintptr_t key, size_t keySize, uintptr_t value, size_t valueSize)
插入hash数据
uintptr_t CstlHashIterValue(const CstlHash *hash, CstlHashIterator it)
获取迭代器的value。
CstlHashIterator CstlHashIterBegin(const CstlHash *hash)
获取hash表中的第一个节点的迭代器。
CstlHashIterator CstlHashErase(CstlHash *hash, uintptr_t key)
从hash表中移除指定结点。
CstlHashIterator CstlHashFind(const CstlHash *hash, uintptr_t key)
查找key所在迭代器。
bool CstlHashMatchInt(uintptr_t key1, uintptr_t key2)
默认整型匹配函数。
size_t CstlHashCodeCalcInt(uintptr_t key, size_t bktSize)
默认整型哈希函数。
size_t CstlHashCodeCalcStr(uintptr_t key, size_t bktSize)
默认字符串哈希函数。
bool(* CstlHashMatchFunc)(uintptr_t key1, uintptr_t key2)
该函数把输入数据与Key进行匹配比较。第一个哈希表中保存的key,第二个是用户需要匹配的Key。如果不匹配,返回值为false。
Definition cstl_hash.h:99
size_t CstlHashSize(const CstlHash *hash)
获取HASH表的节点数量。
bool CstlHashEmpty(const CstlHash *hash)
判断当前HASH表是否为空。
void CstlHashDestory(CstlHash *hash)
删除hash表
struct TagHashNode * CstlHashIterator
hash表迭代器定义,指向hash节点
Definition cstl_hash.h:81
CstlHashIterator CstlHashIterNext(const CstlHash *hash, CstlHashIterator it)
获取hash表的下一个节点迭代器。
uintptr_t CstlHashIterKey(const CstlHash *hash, CstlHashIterator it)
获取迭代器的key。
size_t(* CstlHashCodeCalcFunc)(uintptr_t key, size_t bktSize)
根据输入的Key生成hash表索引。
Definition cstl_hash.h:89
UINT32 size_t
Definition los_typedef.h:78
key和value函数原型对
Definition cstl_public.h:161
Definition cstl_hash.c:37
Definition cstl_hash.c:29
uintptr_t value
Definition cstl_hash.c:32
uintptr_t key
Definition cstl_hash.c:31
unsigned int uintptr_t
Definition td_type.h:65