X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=include%2Fisams.h;h=7338d93d3e5b21768aacff926e8c5f007ce9059d;hb=7c3a0352f0492609a3b6b26b63a72b0b2d207aab;hp=bcde9d8e723e43417583f1fff052a8104bd08fc3;hpb=3726bf6622da6a8b983bb4cbb7d654e84c3216d7;p=idzebra-moved-to-github.git diff --git a/include/isams.h b/include/isams.h index bcde9d8..7338d93 100644 --- a/include/isams.h +++ b/include/isams.h @@ -1,45 +1,60 @@ -/* - * Copyright (c) 1995-1999, Index Data. - * See the file LICENSE for details. - * Sebastian Hammer, Adam Dickmeiss - * - * $Id: isams.h,v 1.2 1999-07-14 10:59:26 adam Exp $ - */ +/* $Id: isams.h,v 1.6 2004-08-04 08:35:23 adam Exp $ + Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004 + 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 Zebra; see the file LICENSE.zebra. If not, write to the +Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA +02111-1307, USA. +*/ + + #ifndef ISAMS_H #define ISAMS_H +#include #include +#include #ifdef __cplusplus extern "C" { #endif typedef struct ISAMS_s *ISAMS; -typedef int ISAMS_P; +typedef ISAMC_P ISAMS_P; typedef struct ISAMS_PP_s *ISAMS_PP; typedef struct ISAMS_M_s { int (*compare_item)(const void *a, const void *b); + void (*log_item)(int logmask, const void *p, const char *txt); -#define ISAMC_DECODE 0 -#define ISAMC_ENCODE 1 - void *(*code_start)(int mode); - void (*code_stop)(int mode, void *p); - void (*code_item)(int mode, void *p, char **dst, char **src); + ISAM_CODEC codec; int debug; int block_size; -} *ISAMS_M; +} ISAMS_M; typedef struct ISAMS_I_s { int (*read_item)(void *clientData, char **dst, int *insertMode); void *clientData; } *ISAMS_I; -void isams_getmethod (ISAMS_M me); +void isams_getmethod (ISAMS_M *me); ISAMS isams_open (BFiles bfs, const char *name, int writeflag, - ISAMS_M method); + ISAMS_M *method); int isams_close (ISAMS is); ISAMS_P isams_merge (ISAMS is, ISAMS_I data); ISAMS_PP isams_pp_open (ISAMS is, ISAMS_P pos);