X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=include%2Fdict.h;h=2d9a8ed8aad06ca6af04e9806b46cdb23c53e5aa;hb=ef495f3c3ac61351628014c7f186adb843d5286b;hp=8ca8378d50bc1f9a9c6ede3be3a3323e6f51f12c;hpb=cf0045decc8edc53834fffc1eadf8a634cf81381;p=idzebra-moved-to-github.git diff --git a/include/dict.h b/include/dict.h index 8ca8378..2d9a8ed 100644 --- a/include/dict.h +++ b/include/dict.h @@ -4,7 +4,22 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: dict.h,v $ - * Revision 1.2 1994-08-17 13:32:33 adam + * Revision 1.6 1994-09-16 15:39:21 adam + * Initial code of lookup - not tested yet. + * + * Revision 1.5 1994/09/06 13:05:29 adam + * Further development of insertion. Some special cases are + * not properly handled yet! assert(0) are put here. The + * binary search in each page definitely reduce usr CPU. + * + * Revision 1.4 1994/09/01 17:44:40 adam + * Work on insertion in dictionary. Not finished yet. + * CVS ---------------------------------------------------------------------- + * + * Revision 1.3 1994/08/18 12:41:12 adam + * Some development of dictionary. Not finished at all! + * + * Revision 1.2 1994/08/17 13:32:33 adam * Use cache in dict - not in bfile. * * Revision 1.1 1994/08/16 16:26:53 adam @@ -48,11 +63,13 @@ typedef struct Dict_file_struct int hash_size; void *all_data; + int block_size; int hits; int misses; } *Dict_BFile; typedef struct Dict_struct { + int rw; Dict_BFile dbf; struct Dict_head head; } *Dict; @@ -65,14 +82,12 @@ Dict_BFile dict_bf_open (const char *name, int block_size, int cache, int rw); int dict_bf_close (Dict_BFile dbf); #define DICT_MAGIC "dict00" -typedef int Dict_info; - #define DICT_PAGESIZE 8192 Dict dict_open (const char *name, int cache, int rw); int dict_close (Dict dict); -int dict_insert (Dict dict, const Dict_char *p, void *userinfo); -int dict_lookup (Dict dict, Dict_char *p); +int dict_insert (Dict dict, const Dict_char *p, int userlen, void *userinfo); +char *dict_lookup (Dict dict, Dict_char *p); int dict_strcmp (const Dict_char *s1, const Dict_char *s2); int dict_strlen (const Dict_char *s); @@ -82,7 +97,7 @@ int dict_strlen (const Dict_char *s); #define DICT_nextptr(x) 2[(Dict_ptr*) x] #define DICT_nodir(x) 0[(short*)((char*)(x)+3*sizeof(Dict_ptr))] #define DICT_size(x) 1[(short*)((char*)(x)+3*sizeof(Dict_ptr))] -#define DICT_info(x) ((char*)(x)+3*sizeof(Dict_ptr)+2*sizeof(short)) +#define DICT_infoffset (3*sizeof(Dict_ptr)+2*sizeof(short)) #define DICT_to_str(x) sizeof(Dict_info)+sizeof(Dict_ptr)