X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=blobdiff_plain;f=bfile%2Fcfile.h;h=c6b6ba607e0fe2bd3c98a30395b656fff3b6aeed;hp=8006599860d4be4d15a4bb203402ce326347c649;hb=4478d785b7769691261005c98063b98a5a5971b3;hpb=5e1f8f38f613f6e662a189eed0879d23a29e9e26 diff --git a/bfile/cfile.h b/bfile/cfile.h index 8006599..c6b6ba6 100644 --- a/bfile/cfile.h +++ b/bfile/cfile.h @@ -1,54 +1,41 @@ -/* - * Copyright (C) 1995-1998, Index Data - * All rights reserved. - * Sebastian Hammer, Adam Dickmeiss - * - * $Log: cfile.h,v $ - * 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. - * - * Revision 1.4 1995/12/11 09:03:54 adam - * New function: cf_unlink. - * New member of commit file head: state (0) deleted, (1) hash file. - * - * Revision 1.3 1995/12/01 16:24:29 adam - * Commit files use separate meta file area. - * - * Revision 1.2 1995/12/01 11:37:23 adam - * Cached/commit files implemented as meta-files. - * - * Revision 1.1 1995/11/30 08:33:12 adam - * Started work on commit facility. - * - */ +/* $Id: cfile.h,v 1.19 2006-08-14 10:40:05 adam Exp $ + Copyright (C) 1995-2006 + Index Data ApS + +This file is part of the Zebra server. + +Zebra is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 2, or (at your option) any later +version. + +Zebra is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +*/ + + #ifndef CFILE_H #define CFILE_H +#include + +YAZ_BEGIN_CDECL + #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 */ + zint no[HASH_BUCKET]; /* block number in original file */ + zint vno[HASH_BUCKET]; /* block number in shadow file */ + zint this_bucket; /* this bucket number */ + zint next_bucket; /* next bucket number */ }; struct CFile_hash_bucket { @@ -66,33 +53,44 @@ typedef struct CFile_struct { struct CFile_head { int state; /* 1 = hash, 2 = flat */ - int next_block; /* next free block / last block */ + zint 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 */ + zint first_bucket; /* first hash bucket */ + zint next_bucket; /* last hash bucket + 1 = first flat bucket */ + zint flat_bucket; /* last flat bucket + 1 */ } head; MFile block_mf; MFile hash_mf; - int *array; + zint *array; struct CFile_hash_bucket **parray; struct CFile_hash_bucket *bucket_lru_front, *bucket_lru_back; int dirty; - int bucket_in_memory; - int max_bucket_in_memory; + zint bucket_in_memory; + zint max_bucket_in_memory; char *iobuf; MFile rmf; int no_hits; int no_miss; + Zebra_mutex mutex; } *CFile; int cf_close (CFile cf); CFile cf_open (MFile mf, MFile_area area, const char *fname, int block_size, int wflag, int *firstp); -int cf_read (CFile cf, int no, int offset, int num, void *buf); -int cf_write (CFile cf, int no, int offset, int num, const void *buf); +int cf_read (CFile cf, zint no, int offset, int nbytes, void *buf); +int cf_write (CFile cf, zint no, int offset, int nbytes, const void *buf); void cf_unlink (CFile cf); void cf_commit (CFile cf); +YAZ_END_CDECL + #endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ +