X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=bfile%2Fcfile.h;h=8006599860d4be4d15a4bb203402ce326347c649;hb=5260b5390d8a1a36c66e52083e8ebb9d26b49f01;hp=8a55788e182b6aeea28a440a797234cf4aef69b5;hpb=614cde384b649a59922033c64db65409e45ab631;p=idzebra-moved-to-github.git diff --git a/bfile/cfile.h b/bfile/cfile.h index 8a55788..8006599 100644 --- a/bfile/cfile.h +++ b/bfile/cfile.h @@ -1,10 +1,26 @@ /* - * Copyright (C) 1995, Index Data I/S + * Copyright (C) 1995-1998, Index Data * All rights reserved. * Sebastian Hammer, Adam Dickmeiss * * $Log: cfile.h,v $ - * Revision 1.5 1995-12-15 12:36:52 adam + * Revision 1.10 1998-10-15 13:09:31 adam + * Minor changes. + * + * Revision 1.9 1998/08/07 15:07:15 adam + * Fixed but in cf_commit_flat. + * + * Revision 1.8 1996/04/18 16:02:56 adam + * Changed logging a bit. + * Removed warning message when commiting flat shadow files. + * + * Revision 1.7 1996/02/07 14:03:48 adam + * Work on flat indexed shadow files. + * + * Revision 1.6 1996/02/07 10:08:45 adam + * Work on flat shadow (not finished yet). + * + * Revision 1.5 1995/12/15 12:36:52 adam * Moved hash file information to union. * Renamed commit files. * @@ -26,15 +42,17 @@ #ifndef CFILE_H #define CFILE_H -#define HASH_BUCKET 63 +#define HASH_BUCKET 15 + +struct CFile_ph_bucket { /* structure on disc */ + int no[HASH_BUCKET]; /* block number in original file */ + int vno[HASH_BUCKET]; /* block number in shadow file */ + int this_bucket; /* this bucket number */ + int next_bucket; /* next bucket number */ +}; struct CFile_hash_bucket { - struct CFile_ph_bucket { - int no[HASH_BUCKET]; - int vno[HASH_BUCKET]; - int this_bucket; - int next_bucket; - } ph; + struct CFile_ph_bucket ph; int dirty; struct CFile_hash_bucket *h_next, **h_prev; struct CFile_hash_bucket *lru_next, *lru_prev; @@ -42,18 +60,18 @@ struct CFile_hash_bucket { #define HASH_BSIZE sizeof(struct CFile_ph_bucket) +#define CFILE_FLAT 1 + typedef struct CFile_struct { struct CFile_head { - int state; - union { - struct { - int hash_size; - int next_bucket; - int next_block; - int block_size; - } hash; - } u; + int state; /* 1 = hash, 2 = flat */ + int next_block; /* next free block / last block */ + int block_size; /* mfile/bfile block size */ + int hash_size; /* no of chains in hash table */ + int first_bucket; /* first hash bucket */ + int next_bucket; /* last hash bucket + 1 = first flat bucket */ + int flat_bucket; /* last flat bucket + 1 */ } head; MFile block_mf; MFile hash_mf; @@ -65,6 +83,8 @@ typedef struct CFile_struct int max_bucket_in_memory; char *iobuf; MFile rmf; + int no_hits; + int no_miss; } *CFile; int cf_close (CFile cf);