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

hashmap.h

00001 
00011 #ifndef __CHASH_CHTBL_H__
00012 #define __CHASH_CHTBL_H__
00013 
00014 #ifdef HAVE_CONFIG_H
00015     #include "config.h"
00016 #endif
00017 
00018 #include <stdlib.h>
00019 #include <stdio.h>
00020 #include <string.h>
00021 #include "threading.h"
00022 #include "errmanager.h"
00023 #include "linklist.h"
00024 
00025 
00026 /*
00027  * public defines
00028  */
00029 
00030 
00031 
00032 
00033 /*
00034  * public structs
00035  */
00036 
00037 
00043 typedef struct CHTbl_ {
00045     T_RDWR rwlock;
00046     
00048     int buckets;
00049     
00051     int (*h)(const void *key);
00052     
00054     List *table;
00055     
00056 } CHTbl;
00057 
00058 
00059 /*
00060  * public methods
00061  */
00062 
00063 
00074 int chtbl_init(CHTbl *htbl, int buckets, int (*h)(const void *key), int
00075    (*match)(const void *obj1, const void *obj2), void (*destroy)(void *obj));
00076 
00077 
00083 void chtbl_destroy(CHTbl *htbl);
00084 
00085 
00092 int chtbl_size(CHTbl *htbl);
00093 
00094 
00104 int chtbl_insert(CHTbl *htbl, const void *data);
00105 
00106 
00114 int chtbl_remove(CHTbl *htbl, void **data);
00115 
00116 
00124 int chtbl_lookup(CHTbl *htbl, void **data);
00125 
00126 
00127 /*
00128  * private methods
00129  */
00130 
00131 
00132 
00133 
00134 #endif
00135 

Generated on Wed Mar 30 13:43:26 2005 for Mntd by  doxygen 1.3.9.1