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
    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