Main Page | Modules | Data Structures | File List | Data Fields | Globals | Related Pages

rpmdb/rpmhash.h

Go to the documentation of this file.
00001 #ifndef H_RPMHASH
00002 #define H_RPMHASH
00003 
00011 typedef /*@abstract@*/ struct hashTable_s * hashTable;
00012 
00013 #ifdef __cplusplus
00014 extern "C" {
00015 #endif
00016 
00019 typedef unsigned int (*hashFunctionType) (const void * string)
00020         /*@*/;
00021 
00024 typedef int (*hashEqualityType) (const void * key1, const void * key2)
00025         /*@*/;
00026 
00032 unsigned int hashFunctionString(const void * string)
00033         /*@*/;
00034 
00041 int hashEqualityString(const void * key1, const void * key2)
00042         /*@*/;
00043 
00055 hashTable htCreate(int numBuckets, int keySize, int freeData,
00056                 hashFunctionType fn, hashEqualityType eq)
00057         /*@*/; 
00058 
00063 void htFree( /*@only@*/ hashTable ht)
00064         /*@modifies ht @*/;
00065 
00072 void htAddEntry(hashTable ht, /*@owned@*/ const void * key,
00073                 /*@owned@*/ const void * data)
00074         /*@modifies ht */;
00075 
00085 int htGetEntry(hashTable ht, const void * key,
00086                 /*@null@*/ /*@out@*/ const void *** data,
00087                 /*@null@*/ /*@out@*/ int * dataCount,
00088                 /*@null@*/ /*@out@*/ const void ** tableKey)
00089         /*@modifies *data, *dataCount, *tableKey @*/;
00090 
00097 /*@unused@*/
00098 int htHasEntry(hashTable ht, const void * key)
00099         /*@*/;
00100 
00101 #ifdef __cplusplus
00102 }
00103 #endif
00104 
00105 #endif

Generated on Fri Jan 21 18:52:43 2005 for rpm by doxygen 1.3.6