X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=include%2Fisamc.h;h=139a1e244ffcab4c8c5f7424ef6d98236079cf0b;hb=392b67432545d96cb2f9b3264a9427582fc1934f;hp=c977938016a138baeff1909148ab11836148ea29;hpb=79eae30cc8f83e0c4c1044bf4d27924c5e935f1e;p=idzebra-moved-to-github.git diff --git a/include/isamc.h b/include/isamc.h index c977938..139a1e2 100644 --- a/include/isamc.h +++ b/include/isamc.h @@ -1,10 +1,29 @@ /* - * 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.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 +34,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; @@ -37,6 +62,7 @@ typedef struct ISAMC_M_s { void (*code_stop)(int mode, void *p); void (*code_item)(int mode, void *p, char **dst, char **src); + int max_blocks_mem; int debug; } *ISAMC_M; @@ -47,17 +73,24 @@ typedef struct ISAMC_I_s { ISAMC_M isc_getmethod (void); -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