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 
00064 /*@null@*/
00065 hashTable htFree( /*@only@*/ hashTable ht)
00066         /*@modifies ht @*/;
00067 
00074 void htAddEntry(hashTable ht, /*@owned@*/ const void * key,
00075                 /*@owned@*/ const void * data)
00076         /*@modifies ht */;
00077 
00087 int htGetEntry(hashTable ht, const void * key,
00088                 /*@null@*/ /*@out@*/ const void *** data,
00089                 /*@null@*/ /*@out@*/ int * dataCount,
00090                 /*@null@*/ /*@out@*/ const void ** tableKey)
00091         /*@modifies *data, *dataCount, *tableKey @*/;
00092 
00099 /*@unused@*/
00100 int htHasEntry(hashTable ht, const void * key)
00101         /*@*/;
00102 
00103 #ifdef __cplusplus
00104 }
00105 #endif
00106 
00107 #endif

Generated on Fri Oct 12 08:44:54 2007 for rpm by  doxygen 1.5.2