X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=blobdiff_plain;f=isamc%2Fisamc-p.h;h=67a80ba281ff5d3dc87e2b48604e39798ab593ba;hp=995bd9104e966a2261705055a84b8e556f3e9831;hb=HEAD;hpb=896c0427df9d8eff5de6a1735dcd992e067df844 diff --git a/isamc/isamc-p.h b/isamc/isamc-p.h index 995bd91..67a80ba 100644 --- a/isamc/isamc-p.h +++ b/isamc/isamc-p.h @@ -1,8 +1,5 @@ -/* $Id: isamc-p.h,v 1.8 2002-08-02 19:26:56 adam Exp $ - Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002 - Index Data Aps - -This file is part of the Zebra server. +/* This file is part of the Zebra server. + Copyright (C) Index Data 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 @@ -15,23 +12,21 @@ 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 Zebra; see the file LICENSE.zebra. If not, write to the -Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA -02111-1307, USA. +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ -#include -#include +#include +#include -#ifdef __cplusplus -extern "C" { -#endif +YAZ_BEGIN_CDECL typedef struct { - int lastblock; - int freelist; + zint lastblock; + zint freelist; } ISAMC_head; typedef unsigned ISAMC_BLOCK_SIZE; @@ -40,7 +35,7 @@ typedef struct ISAMC_file_s { ISAMC_head head; BFile bf; int head_is_dirty; - + int no_writes; int no_reads; int no_skip_writes; @@ -50,8 +45,8 @@ typedef struct ISAMC_file_s { int no_forward; int no_backward; - int sum_forward; - int sum_backward; + zint sum_forward; + zint sum_backward; int no_next; int no_prev; @@ -60,38 +55,58 @@ typedef struct ISAMC_file_s { int alloc_entries_max; int fc_max; - int *fc_list; + zint *fc_list; } *ISAMC_file; struct ISAMC_s { int no_files; int max_cat; char *merge_buf; - ISAMC_M method; + ISAMC_M *method; ISAMC_file files; -}; +}; struct ISAMC_PP_s { char *buf; ISAMC_BLOCK_SIZE offset; ISAMC_BLOCK_SIZE size; int cat; - int pos; - int next; + zint pos; + zint next; ISAMC is; void *decodeClientData; int deleteFlag; - int numKeys; + zint numKeys; }; -#define ISAMC_BLOCK_OFFSET_N (sizeof(int)+sizeof(ISAMC_BLOCK_SIZE)) -#define ISAMC_BLOCK_OFFSET_1 (sizeof(int)+sizeof(ISAMC_BLOCK_SIZE)+sizeof(int)) -int isc_alloc_block (ISAMC is, int cat); -void isc_release_block (ISAMC is, int cat, int pos); -int isc_read_block (ISAMC is, int cat, int pos, char *dst); -int isc_write_block (ISAMC is, int cat, int pos, char *src); +/* + first block consists of + next pointer : zint + size : ISAMC_BLOCK_SIZE (int) + numkeys : zint + data + other blocks consists of + next pointer : zint + size : ISAMC_BLOCK_SIZE (int) + data +*/ +#define ISAMC_BLOCK_OFFSET_1 (sizeof(zint)+sizeof(ISAMC_BLOCK_SIZE)+sizeof(zint)) +#define ISAMC_BLOCK_OFFSET_N (sizeof(zint)+sizeof(ISAMC_BLOCK_SIZE)) + +zint isamc_alloc_block (ISAMC is, int cat); +void isamc_release_block (ISAMC is, int cat, zint pos); +int isamc_read_block (ISAMC is, int cat, zint pos, char *dst); +int isamc_write_block (ISAMC is, int cat, zint pos, char *src); + +YAZ_END_CDECL + -#ifdef __cplusplus -} -#endif +/* + * Local variables: + * c-basic-offset: 4 + * c-file-style: "Stroustrup" + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */