X-Git-Url: http://sru.miketaylor.org.uk/?a=blobdiff_plain;f=isamc%2Fisamc-p.h;h=a52e486f584cf98902660137ef86c1c908679e2b;hb=cd0427111b705e414406e1e262f3772e40c7f662;hp=4abbc72787cce86cf500570223d779610f508d9c;hpb=3d65c1cdc034161b511510acda8777afdb41cf56;p=idzebra-moved-to-github.git diff --git a/isamc/isamc-p.h b/isamc/isamc-p.h index 4abbc72..a52e486 100644 --- a/isamc/isamc-p.h +++ b/isamc/isamc-p.h @@ -4,7 +4,17 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: isamc-p.h,v $ - * Revision 1.2 1996-11-01 08:59:13 adam + * Revision 1.5 1998-03-16 10:37:24 adam + * Added more statistics. + * + * Revision 1.4 1996/11/08 11:15:28 adam + * Number of keys in chain are stored in first block and the function + * to retrieve this information, isc_pp_num is implemented. + * + * Revision 1.3 1996/11/04 14:08:55 adam + * Optimized free block usage. + * + * Revision 1.2 1996/11/01 08:59:13 adam * First version of isc_merge that supports update/delete. * * Revision 1.1 1996/10/29 13:40:47 adam @@ -31,6 +41,16 @@ typedef struct ISAMC_file_s { int no_allocated; int no_released; int no_remap; + + int no_forward; + int no_backward; + int sum_forward; + int sum_backward; + int no_next; + int no_prev; + + int fc_max; + int *fc_list; } *ISAMC_file; struct ISAMC_s { @@ -43,20 +63,21 @@ struct ISAMC_s { struct ISAMC_PP_s { char *buf; - int offset; - int size; + unsigned offset; + unsigned short size; int cat; int pos; int next; ISAMC is; void *decodeClientData; int deleteFlag; + int numKeys; }; -#define ISAMC_BLOCK_OFFSET (sizeof(int)+sizeof(int)) +#define ISAMC_BLOCK_OFFSET_N (sizeof(int)+sizeof(short)) +#define ISAMC_BLOCK_OFFSET_1 (sizeof(int)+sizeof(short)+sizeof(int)) int isc_alloc_block (ISAMC is, int cat); void isc_release_block (ISAMC is, int cat, int pos); -int isc_write_dblock (ISAMC is, int cat, int pos, char *src, - int nextpos, int offset); - +int isc_read_block (ISAMC is, int cat, int pos, char *dst); +int isc_write_block (ISAMC is, int cat, int pos, char *src);