-/* $Id: isamd-p.h,v 1.5 1999-08-20 12:25:58 heikki Exp $
+/* $Id: isamd-p.h,v 1.8 1999-09-23 18:01:18 heikki Exp $
* Copyright (c) 1995-1996, Index Data.
* See the file LICENSE for details.
* Heikki Levanto
struct ISAMD_PP_s {
char *buf; /* buffer for read/write operations */
ISAMD_BLOCK_SIZE offset; /* position for next read/write */
- ISAMD_BLOCK_SIZE size; /* size of actual pointer data */
+ ISAMD_BLOCK_SIZE size; /* size of actual data */
int cat; /* category of this block */
int pos; /* block number of this block */
int next; /* number of the next block */
- int diffs; /* either block or offset (in head) of start of diffs */
+ int diffs; /* not used in the modern isam-d, but kept for stats compatibility */
+ /* never stored on disk, though */
ISAMD is;
- void *decodeClientData;
+ void *decodeClientData; /* delta-encoder's own data */
ISAMD_DIFF diffinfo;
- char *diffbuf; /* buffer for the diff block, only when reading */
+ char *diffbuf; /* buffer for the diff block */
int numKeys;
};
/* == 8 */
#define ISAMD_BLOCK_OFFSET_1 (sizeof(int) + \
sizeof(ISAMD_BLOCK_SIZE) + \
- sizeof(int) + \
sizeof(ISAMD_BLOCK_SIZE))
-/* == 16 */
+/* == 12 (was 16) */
+// sizeof(int) +
int isamd_alloc_block (ISAMD is, int cat);
int isamd_write_block (ISAMD is, int cat, int pos, char *src);
void isamd_free_diffs(ISAMD_PP pp);
+int is_singleton(ISAMD_P ipos);
+void singleton_decode (int code, struct it_key *k);
+int singleton_encode(struct it_key *k);
+
+
#ifdef __cplusplus
}
#endif
/*
* $Log: isamd-p.h,v $
- * Revision 1.5 1999-08-20 12:25:58 heikki
+ * Revision 1.8 1999-09-23 18:01:18 heikki
+ * singleton optimising
+ *
+ * Revision 1.7 1999/09/20 15:48:06 heikki
+ * Small changes
+ *
+ * Revision 1.6 1999/08/25 18:09:23 heikki
+ * Starting to optimize
+ *
+ * Revision 1.5 1999/08/20 12:25:58 heikki
* Statistics in isamd
*
* Revision 1.4 1999/07/21 14:24:50 heikki