diff options
author | wizputer <wizputer@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2004-11-27 19:32:30 +0000 |
---|---|---|
committer | wizputer <wizputer@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2004-11-27 19:32:30 +0000 |
commit | 486b4f2a12b41507b67a1a93ae5871b3be447914 (patch) | |
tree | 8196d22d0fce973ac6e53b24735776ba9dcaf77f /src/common/db.h | |
parent | ecb15e6101bc1912bb2520151c45ed69af80feb8 (diff) | |
parent | f0da8da932031212f34aa97eff882f72cb69cc2a (diff) | |
download | hercules-486b4f2a12b41507b67a1a93ae5871b3be447914.tar.gz hercules-486b4f2a12b41507b67a1a93ae5871b3be447914.tar.bz2 hercules-486b4f2a12b41507b67a1a93ae5871b3be447914.tar.xz hercules-486b4f2a12b41507b67a1a93ae5871b3be447914.zip |
correct directory structure
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@387 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/common/db.h')
-rw-r--r-- | src/common/db.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/common/db.h b/src/common/db.h new file mode 100644 index 000000000..ea9aceab0 --- /dev/null +++ b/src/common/db.h @@ -0,0 +1,47 @@ +#ifndef _DB_H_ +#define _DB_H_ + +#include <stdarg.h> + +#define HASH_SIZE (256+27) + +#define RED 0 +#define BLACK 1 + +struct dbn { + struct dbn *parent,*left,*right; + int color; + void *key; + void *data; +}; + +struct dbt { + int (*cmp)(struct dbt*,void*,void*); + unsigned int (*hash)(struct dbt*,void*); + // which 1 - key, 2 - data, 3 - both + void (*release)(struct dbn*,int which); + int maxlen; + struct dbn *ht[HASH_SIZE]; +}; + +#define strdb_search(t,k) db_search((t),(void*)(k)) +#define strdb_insert(t,k,d) db_insert((t),(void*)(k),(void*)(d)) +#define strdb_erase(t,k) db_erase ((t),(void*)(k)) +#define strdb_foreach db_foreach +#define strdb_final db_final +#define numdb_search(t,k) db_search((t),(void*)(k)) +#define numdb_insert(t,k,d) db_insert((t),(void*)(k),(void*)(d)) +#define numdb_erase(t,k) db_erase ((t),(void*)(k)) +#define numdb_foreach db_foreach +#define numdb_final db_final + +struct dbt* strdb_init(int maxlen); +struct dbt* numdb_init(void); +void* db_search(struct dbt *table,void* key); +void* db_search2(struct dbt *table, const char *key); // [MouseJstr] +struct dbn* db_insert(struct dbt *table,void* key,void* data); +void* db_erase(struct dbt *table,void* key); +void db_foreach(struct dbt*,int(*)(void*,void*,va_list),...); +void db_final(struct dbt*,int(*)(void*,void*,va_list),...); + +#endif |