Pagesize is a resource now.
[idzebra-moved-to-github.git] / include / dict.h
index 4dd87ca..a5f1eeb 100644 (file)
@@ -4,7 +4,16 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: dict.h,v $
- * Revision 1.7  1994-09-22 10:44:47  adam
+ * Revision 1.10  1994-10-05 12:16:58  adam
+ * Pagesize is a resource now.
+ *
+ * Revision 1.9  1994/10/04  12:08:19  adam
+ * Minor changes.
+ *
+ * Revision 1.8  1994/10/03  17:23:11  adam
+ * First version of dictionary lookup with regular expressions and errors.
+ *
+ * Revision 1.7  1994/09/22  10:44:47  adam
  * Don't remember what changed!!
  *
  * Revision 1.6  1994/09/16  15:39:21  adam
@@ -17,7 +26,6 @@
  *
  * 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!
@@ -57,15 +65,15 @@ typedef struct Dict_file_struct
 {
     int cache;
     BFile bf;
-
+    
     struct Dict_file_block *all_blocks;
     struct Dict_file_block *free_list;
     struct Dict_file_block **hash_array;
-
+    
     struct Dict_file_block *lru_back, *lru_front;
     int hash_size;
     void *all_data;
-
+    
     int  block_size;
     int  hits;
     int  misses;
@@ -75,26 +83,31 @@ typedef struct Dict_struct {
     int rw;
     Dict_BFile dbf;
     struct Dict_head head;
-} *Dict;
+}
+*Dict;
 
-int dict_bf_readp (Dict_BFile bf, int no, void **bufp);
-int dict_bf_newp (Dict_BFile bf, int no, void **bufp);
-int dict_bf_touch (Dict_BFile bf, int no);
-void dict_bf_flush_blocks (Dict_BFile bf, int no_to_flush);
-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"
 
-#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, int userlen, void *userinfo);
-char *dict_lookup (Dict dict, Dict_char *p);
-int dict_lookup_ec (Dict dict, Dict_char *p, int range,
-                    int (*f)(Dict_char*name));
-int dict_strcmp (const Dict_char *s1, const Dict_char *s2);
-int dict_strlen (const Dict_char *s);
+#define DICT_DEFAULT_PAGESIZE "8192"
+
+int        dict_bf_readp (Dict_BFile bf, int no, void **bufp);
+int        dict_bf_newp (Dict_BFile bf, int no, void **bufp);
+int        dict_bf_touch (Dict_BFile bf, int no);
+void       dict_bf_flush_blocks (Dict_BFile bf, int no_to_flush);
+Dict_BFile dict_bf_open (const char *name, int block_size, int cache, int rw);
+int        dict_bf_close (Dict_BFile dbf);
+     
+Dict       dict_open (const char *name, int cache, int rw);
+int        dict_close (Dict dict);
+int        dict_insert (Dict dict, const Dict_char *p, int userlen,
+                        void *userinfo);
+char      *dict_lookup (Dict dict, Dict_char *p);
+int        dict_lookup_ec (Dict dict, Dict_char *p, int range,
+                           int (*f)(Dict_char *name));
+int        dict_lookup_grep (Dict dict, Dict_char *p, int range, 
+                             int (*f)(Dict_char *name, char *info));       
+int        dict_strcmp (const Dict_char *s1, const Dict_char *s2);
+int        dict_strlen (const Dict_char *s);
 
 #define DICT_EOS        0
 #define DICT_type(x)    0[(Dict_ptr*) x]
@@ -103,6 +116,7 @@ int dict_strlen (const Dict_char *s);
 #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_infoffset  (3*sizeof(Dict_ptr)+2*sizeof(short))
+#define DICT_pagesize(x) ((x)->head.page_size)
 
 #define DICT_to_str(x)  sizeof(Dict_info)+sizeof(Dict_ptr)