rpmdb/rpmhash.c - Hash table implemenation.
#include 'system.h'
#include 'rpmlib.h'
#include 'rpmhash.h'
#include 'debug.h'
struct hashBucket_s
struct hashTable_s
typedef const void * voidptr
typedef hashBucket_s * hashBucket
hashBucket findEntry (hashTable ht, const void *key)
Find entry in hash table.
int hashEqualityString (const void *key1, const void *key2)
Compare two hash table entries for equality.
unsigned int hashFunctionString (const void *string)
Return hash value of a string.
hashTable htCreate (int numBuckets, int keySize, int freeData, hashFunctionType fn, hashEqualityType eq)
Create hash table.
void htAddEntry (hashTable ht, const void *key, const void *data)
Add item to hash table.
void htFree (hashTable ht)
Destroy hash table.
int htHasEntry (hashTable ht, const void *key)
Check for key in hash table.
int htGetEntry (hashTable ht, const void *key, const void ***data, int *dataCount, const void **tableKey)
Retrieve item from hash table.
Hash table implemenation.
Definition at line 13 of file rpmhash.c.
Definition at line 11 of file rpmhash.c.
Find entry in hash table.
Parameters:
Returns: pointer to hash bucket of key (or NULL)
Definition at line 42 of file rpmhash.c.
References hashBucket_s::key, and hashBucket_s::next.
Compare two hash table entries for equality.
Parameters:
Returns: 0 if entries are equal
Definition at line 59 of file rpmhash.c.
Return hash value of a string.
Parameters:
Returns: hash value
Definition at line 66 of file rpmhash.c.
Add item to hash table.
Parameters:
Definition at line 101 of file rpmhash.c.
References hashBucket_s::data, hashBucket_s::dataCount, hashBucket_s::key, hashBucket_s::next, xmalloc(), and xrealloc().
Referenced by doLookup(), and rpmRunTransactions().
Create hash table.
If keySize > 0, the key is duplicated within the table (which costs memory, but may be useful anyway.
Parameters:
Returns: pointer to initialized hash table
Definition at line 83 of file rpmhash.c.
References hashEqualityType, hashFunctionType, xcalloc(), and xmalloc().
Referenced by fpCacheCreate(), and rpmRunTransactions().
Destroy hash table.
Parameters:
Definition at line 133 of file rpmhash.c.
References _free(), hashBucket_s::data, hashBucket_s::key, and hashBucket_s::next.
Referenced by fpCacheFree(), and rpmRunTransactions().
Retrieve item from hash table.
Parameters:
Return values:
Returns: 0 on success, 1 if the item is not found.
Definition at line 169 of file rpmhash.c.
References hashBucket_s::data, hashBucket_s::dataCount, findEntry(), and hashBucket_s::key.
Referenced by cacheContainsDirectory(), and handleOverlappedFiles().
Check for key in hash table.
Parameters:
Returns: 1 if the key is present, 0 otherwise
Definition at line 162 of file rpmhash.c.
Generated automatically by Doxygen for rpm from the source code.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |