X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=include%2Fisamc.h;h=6b801986be3598da50648f935612104759ae8647;hb=3b7b0e72cc359c7df837fe7ff1252f2efecd41c7;hp=40ba83fabf292bdf08f85efd7b60bf3e19fa334f;hpb=bbe002446a766b4697fa40a9210634dc4c06755e;p=idzebra-moved-to-github.git diff --git a/include/isamc.h b/include/isamc.h index 40ba83f..6b80198 100644 --- a/include/isamc.h +++ b/include/isamc.h @@ -1,10 +1,32 @@ /* - * 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.3 1996-11-01 13:35:03 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. * @@ -19,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; @@ -40,6 +68,7 @@ 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; @@ -50,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