X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=include%2Fisamc.h;h=6b801986be3598da50648f935612104759ae8647;hb=89d059a3e4541ff00bbb4193ba34c1dbe1e21928;hp=c977938016a138baeff1909148ab11836148ea29;hpb=79eae30cc8f83e0c4c1044bf4d27924c5e935f1e;p=idzebra-moved-to-github.git diff --git a/include/isamc.h b/include/isamc.h index c977938..6b80198 100644 --- a/include/isamc.h +++ b/include/isamc.h @@ -1,10 +1,36 @@ /* - * Copyright (c) 1995-1996, Index Data. + * Copyright (c) 1995-1997, Index Data. * See the file LICENSE for details. * Sebastian Hammer, Adam Dickmeiss * * $Log: isamc.h,v $ - * Revision 1.2 1996-10-29 16:44:42 adam + * Revision 1.9 1999-07-14 10:59:26 adam + * Changed functions isc_getmethod, isams_getmethod. + * Improved fatal error handling (such as missing EXPLAIN schema). + * + * Revision 1.8 1999/06/30 09:08:23 adam + * Added coder to reset. + * + * Revision 1.7 1998/03/13 15:30:50 adam + * New functions isc_block_used and isc_block_size. Fixed 'leak' + * in isc_alloc_block. + * + * Revision 1.6 1997/09/17 12:19:10 adam + * Zebra version corresponds to YAZ version 1.4. + * Changed Zebra server so that it doesn't depend on global common_resource. + * + * Revision 1.5 1997/09/05 15:30:00 adam + * Changed prototype for chr_map_input - added const. + * Added support for C++, headers uses extern "C" for public definitions. + * + * Revision 1.4 1996/11/08 11:08:01 adam + * New internal release. + * + * Revision 1.3 1996/11/01 13:35:03 adam + * New element, max_blocks_mem, that control how many blocks of max size + * to store in memory during isc_merge. + * + * Revision 1.2 1996/10/29 16:44:42 adam * Added isc_type, isc_block macros. * * Revision 1.1 1996/10/29 13:40:37 adam @@ -15,6 +41,12 @@ #ifndef ISAMC_H #define ISAMC_H +#include + +#ifdef __cplusplus +extern "C" { +#endif + typedef struct ISAMC_s *ISAMC; typedef int ISAMC_P; typedef struct ISAMC_PP_s *ISAMC_PP; @@ -36,7 +68,9 @@ typedef struct ISAMC_M_s { void *(*code_start)(int mode); void (*code_stop)(int mode, void *p); void (*code_item)(int mode, void *p, char **dst, char **src); + void (*code_reset)(void *p); + int max_blocks_mem; int debug; } *ISAMC_M; @@ -45,19 +79,26 @@ typedef struct ISAMC_I_s { void *clientData; } *ISAMC_I; -ISAMC_M isc_getmethod (void); +void isc_getmethod (ISAMC_M m); -ISAMC isc_open (const char *name, int writeflag, ISAMC_M method); +ISAMC isc_open (BFiles bfs, const char *name, int writeflag, ISAMC_M method); int isc_close (ISAMC is); ISAMC_P isc_merge (ISAMC is, ISAMC_P pos, ISAMC_I data); ISAMC_PP isc_pp_open (ISAMC is, ISAMC_P pos); void isc_pp_close (ISAMC_PP pp); int isc_read_item (ISAMC_PP pp, char **dst); -int isc_read_key (ISAMC_PP pp, void *buf); -int isc_numkeys (ISAMC_PP pp); +int isc_pp_read (ISAMC_PP pp, void *buf); +int isc_pp_num (ISAMC_PP pp); + +int isc_block_used (ISAMC is, int type); +int isc_block_size (ISAMC is, int type); #define isc_type(x) ((x) & 7) #define isc_block(x) ((x) >> 3) +#ifdef __cplusplus +} +#endif + #endif