Added cmp parameter.
[idzebra-moved-to-github.git] / include / isam.h
index dd70f69..5dcf571 100644 (file)
@@ -4,7 +4,16 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: isam.h,v $
- * Revision 1.3  1994-09-26 16:08:42  quinn
+ * Revision 1.6  1994-09-28 11:29:28  quinn
+ * Added cmp parameter.
+ *
+ * Revision 1.5  1994/09/27  20:03:36  quinn
+ * Seems relatively bug-free.
+ *
+ * Revision 1.4  1994/09/26  17:05:54  quinn
+ * Trivial.
+ *
+ * Revision 1.3  1994/09/26  16:08:42  quinn
  * Most of the functionality in place.
  *
  * Revision 1.2  1994/09/14  13:10:35  quinn
 #define ISAM_H
 
 #include <bfile.h>
-#include <isam.h>
+
+#include "../isam/memory.h"
+#include "../isam/physical.h"
 
 #define IS_MAX_BLOCKTYPES 4
 #define IS_MAX_RECORD 512
 #define IS_DEF_REPACK_PERCENT "30" /* how much relative change before repack */
 
 typedef unsigned int SYSNO; /* should be somewhere else */
-typedef unsigned int ISAM_P;
 
 /*
  * Description of a blocktype (part of an isam file)
@@ -40,7 +50,7 @@ typedef struct isam_blocktype
     int max_keys_block0;         /* max num of keys in first block */
     int nice_keys_block;         /* nice number of keys per block */
     int max_keys;                /* max number of keys per table */
-    int freelist;                /* fist free block */
+    int freelist;                /* first free block */
     int top;                     /* first unused block */
     int index;                   /* placeholder. Always 0. */
     char *dbuf;                  /* buffer for use in I/O operations */
@@ -57,13 +67,11 @@ typedef struct isam_struct
     int keysize;                  /* size of the keys (records) used */
     int repack;                   /* how many percent to grow before repack */
     int (*cmp)(const void *k1, const void *k2); /* compare function */
-} isam_struct, *ISAM;
+} isam_struct;
 
 typedef struct ispt_struct
 {
-    ISAM is;                       /* which file do we belong to? */
-    int ptr;                       /* current key offset */
-
+    struct is_mtable *tab;
     struct ispt_struct *next;      /* freelist */
 } ispt_struct, *ISPT; 
 
@@ -80,7 +88,8 @@ typedef struct ispt_struct
 /*
  * Open isam file.
  */
-ISAM is_open(const char *name, int writeflag);
+ISAM is_open(const char *name, int (*cmp)(const void *p1, const void *p2),
+    int writeflag);
 
 /*
  * Close isam file.