X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=index%2Findex.h;h=099e21b5d607ee035e85d26e6ed5a3fede5eb1ae;hb=959c65fe556f2937a2c0afc7741c473a0fe1a808;hp=3e532ffb80f8b1ac409f9218ac1339dbbc78ad29;hpb=47ea1fc957c7b97bb30a26698f072109cae275e4;p=idzebra-moved-to-github.git diff --git a/index/index.h b/index/index.h index 3e532ff..099e21b 100644 --- a/index/index.h +++ b/index/index.h @@ -1,9 +1,26 @@ -/* - * Copyright (C) 1995-2002, Index Data - * All rights reserved. - * Sebastian Hammer, Adam Dickmeiss, Heikki Levanto - * $Id: index.h,v 1.84 2002-07-25 13:06:43 adam Exp $ - */ +/* $Id: index.h,v 1.88 2002-10-16 09:30:57 heikki Exp $ + Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002 + 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 INDEX_H #define INDEX_H @@ -17,10 +34,7 @@ #if HAVE_SYS_TIMES_H #include #endif - -#if HAVE_ICONV_H -#include -#endif +#include #include #include @@ -79,7 +93,8 @@ void dirs_add (struct dirs_info *p, const char *src, int sysno, time_t mtime); void dirs_del (struct dirs_info *p, const char *src); void dirs_free (struct dirs_info **pp); -struct dir_entry *dir_open (const char *rep, const char *base); +struct dir_entry *dir_open (const char *rep, const char *base, + int follow_links); void dir_sort (struct dir_entry *e); void dir_free (struct dir_entry **e_p); @@ -157,16 +172,22 @@ int key_SU_encode (int ch, char *out); // extern Res common_resource; +#define ENCODE_BUFLEN 768 struct encode_info { - int sysno; + int sysno; /* previously written values for delta-compress */ int seqno; int cmd; - char buf[768]; + int prevsys; /* buffer for skipping insert/delete pairs */ + int prevseq; + int prevcmd; + int keylen; /* tells if we have an unwritten key in buf, and how long*/ + char buf[ENCODE_BUFLEN]; }; void encode_key_init (struct encode_info *i); char *encode_key_int (int d, char *bp); void encode_key_write (char *k, struct encode_info *i, FILE *outf); +void encode_key_flush (struct encode_info *i, FILE *outf); typedef struct { char *term; @@ -286,10 +307,9 @@ struct zebra_session { int records_deleted; int records_processed; char *record_encoding; -#if HAVE_ICONV_H - iconv_t iconv_to_utf8; - iconv_t iconv_from_utf8; -#endif + + yaz_iconv_t iconv_to_utf8; + yaz_iconv_t iconv_from_utf8; }; struct rank_control { @@ -423,6 +443,8 @@ int fileExtract (ZebraHandle zh, SYSNO *sysno, const char *fname, int zebra_begin_read (ZebraHandle zh); void zebra_end_read (ZebraHandle zh); +int zebra_file_stat (const char *file_name, struct stat *buf, + int follow_links); YAZ_END_CDECL