Fixed several prototypes.. Most changes are f() to f(void).
[idzebra-moved-to-github.git] / index / index.h
index f795daf..f04b623 100644 (file)
@@ -1,5 +1,5 @@
-/* $Id: index.h,v 1.164 2006-05-19 23:45:29 adam Exp $
-   Copyright (C) 1995-2005
+/* $Id: index.h,v 1.180 2006-10-29 17:20:01 adam Exp $
+   Copyright (C) 1995-2006
    Index Data ApS
 
 This file is part of the Zebra server.
@@ -15,9 +15,9 @@ 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.
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
 */
 
 #ifndef INDEX_H
@@ -46,6 +46,7 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 #include "zinfo.h"
 #include <passwddb.h>
 #include <rset.h>
+#include <zebramap.h>
 
 YAZ_BEGIN_CDECL
 
@@ -104,6 +105,7 @@ int key_compare (const void *p1, const void *p2);
 void key_init(struct it_key *k);
 char *key_print_it (const void *p, char *buf);
 zint key_get_seq (const void *p);
+zint key_get_segment (const void *p);
 int key_compare_it (const void *p1, const void *p2);
 int key_qsort_compare (const void *p1, const void *p2);
 void key_logdump (int mask, const void *p);
@@ -125,7 +127,7 @@ int key_SU_code (int ch, char *out);
 #define FNAME_CONFIG "zebra.cfg"
 
 #define GMATCH_DICT "gmatch"
-#define FMATCH_DICT "fmatch"
+#define FMATCH_DICT "fmatch%d"
 
 struct strtab *strtab_mk (void);
 int strtab_src (struct strtab *t, const char *name, void ***infop);
@@ -148,25 +150,6 @@ void zebra_lock_prefix (Res res, char *dst);
 int key_SU_decode (int *ch, const unsigned char *out);
 int key_SU_encode (int ch, char *out);
 
-#define ENCODE_BUFLEN 768
-struct encode_info {
-    int  sysno;  /* previously written values for delta-compress */
-    int  seqno;
-    int  cmd;
-    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*/
-    void *encode_handle;
-    void *decode_handle;
-    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 zebra_set *ZebraSet;
 
 typedef struct zebra_rank_class {
@@ -260,6 +243,7 @@ struct zebra_session {
     int  shadow_enable;
 
     int m_staticrank;
+    int m_segment_indexing;
 
     zint records_inserted;
     zint records_updated;
@@ -315,11 +299,11 @@ ZEBRA_RES rpn_search_top(ZebraHandle zh, Z_RPNStructure *zs,
                         int num_bases, char **basenames,
                         RSET *result_set);
 
-ZEBRA_RES rpn_scan (ZebraHandle zh, ODR stream, Z_AttributesPlusTerm *zapt,
-                   oid_value attributeset,
-                   int num_bases, char **basenames,
-                   int *position, int *num_entries, ZebraScanEntry **list,
-                   int *is_partial, RSET limit_set, int return_zero);
+ZEBRA_RES rpn_scan(ZebraHandle zh, ODR stream, Z_AttributesPlusTerm *zapt,
+                   oid_value attributeset,
+                   int num_bases, char **basenames,
+                   int *position, int *num_entries, ZebraScanEntry **list,
+                   int *is_partial, RSET limit_set);
 
 RSET rset_trunc(ZebraHandle zh, ISAM_P *isam_p, int no,
                const char *term, int length_term, const char *flags,
@@ -368,16 +352,29 @@ void extract_get_fname_tmp (ZebraHandle zh, char *fname, int no);
 
 void zebra_index_merge (ZebraHandle zh);
 
-ZEBRA_RES buffer_extract_record (ZebraHandle zh, 
-                                const char *buf, size_t buf_size,
-                                int delete_flag,
-                                int test_mode, 
-                                const char *recordType,
-                                SYSNO *sysno,
-                                const char *match_criteria,
-                                const char *fname,
-                                int force_update,
-                                int allow_update);
+ZEBRA_RES zebra_buffer_extract_record(ZebraHandle zh, 
+                                      const char *buf, size_t buf_size,
+                                      int delete_flag,
+                                      int test_mode, 
+                                      const char *recordType,
+                                      SYSNO *sysno,
+                                      const char *match_criteria,
+                                      const char *fname,
+                                      int force_update,
+                                      int allow_update);
+
+ZEBRA_RES zebra_extract_record_stream(ZebraHandle zh, 
+                                      struct ZebraRecStream *stream,
+                                      int delete_flag,
+                                      int test_mode, 
+                                      const char *recordType,
+                                      SYSNO *sysno,
+                                      const char *match_criteria,
+                                      const char *fname,
+                                      int force_update,
+                                      int allow_update,
+                                      RecType recType,
+                                      void *recTypeClientData);
 
 #if 0
 int extract_rec_in_mem (ZebraHandle zh, const char *recordType,
@@ -389,23 +386,10 @@ int extract_rec_in_mem (ZebraHandle zh, const char *recordType,
 #endif
 void extract_flushWriteKeys (ZebraHandle zh, int final);
 
-struct zebra_fetch_control {
-    off_t offset_end;
-    off_t record_offset;
-    off_t record_int_pos;
-    const char *record_int_buf;
-    int record_int_len;
-    int fd;
-};
-
-int zebra_record_ext_read (void *fh, char *buf, size_t count);
-off_t zebra_record_ext_seek (void *fh, off_t offset);
-off_t zebra_record_ext_tell (void *fh);
-off_t zebra_record_int_seek (void *fh, off_t offset);
-off_t zebra_record_int_tell (void *fh);
-int zebra_record_int_read (void *fh, char *buf, size_t count);
-void zebra_record_int_end (void *fh, off_t offset);
-
+YAZ_EXPORT void zebra_create_stream_mem(struct ZebraRecStream *stream,
+                                        const char *buf, size_t sz);
+YAZ_EXPORT void zebra_create_stream_fd(struct ZebraRecStream *stream,
+                                       int fd, off_t start_offset);
 void print_rec_keys(ZebraHandle zh, zebra_rec_keys_t reckeys);
 
 ZEBRA_RES zebra_snippets_rec_keys(ZebraHandle zh, zebra_rec_keys_t reckeys,
@@ -413,14 +397,7 @@ ZEBRA_RES zebra_snippets_rec_keys(ZebraHandle zh, zebra_rec_keys_t reckeys,
 ZEBRA_RES zebra_snippets_hit_vector(ZebraHandle zh, const char *setname,
                                    zint sysno, zebra_snippets *snippets);
 
-void extract_flushRecordKeys (ZebraHandle zh, SYSNO sysno,
-                              int cmd, zebra_rec_keys_t reckeys,
-                             zint staticrank);
-void extract_flushSortKeys (ZebraHandle zh, SYSNO sysno,
-                            int cmd, zebra_rec_keys_t skp);
-void extract_schema_add (struct recExtractCtrl *p, Odr_oid *oid);
-void extract_token_add (RecWord *p);
-int explain_extract (void *handle, Record rec, data1_node *n);
+ZEBRA_RES zebra_extract_explain(void *handle, Record rec, data1_node *n);
 
 ZEBRA_RES zebra_extract_file(ZebraHandle zh, SYSNO *sysno, const char *fname,
                             int deleteFlag);
@@ -433,7 +410,7 @@ int zebra_file_stat (const char *file_name, struct stat *buf,
 
 void zebra_livcode_transform(ZebraHandle zh, Z_RPNQuery *query);
 
-void *iscz1_start ();
+void *iscz1_start (void);
 void iscz1_reset (void *vp);
 void iscz1_stop (void *p);
 void iscz1_decode (void *vp, char **dst, const char **src);
@@ -462,6 +439,7 @@ ZEBRA_RES zebra_apt_get_ord(ZebraHandle zh,
 
 ZEBRA_RES zebra_attr_list_get_ord(ZebraHandle zh,
                                   Z_AttributeList *attr_list,
+                                  zinfo_index_category_t cat,
                                   int index_type,
                                   oid_value curAttributeSet,
                                   int *ord);
@@ -471,6 +449,29 @@ ZEBRA_RES zebra_sort_get_ord(ZebraHandle zh,
                              int *ord,
                              int *numerical);
 
+ZEBRA_RES zebra_update_file_match(ZebraHandle zh, const char *path);
+ZEBRA_RES zebra_update_from_path(ZebraHandle zh, const char *path);
+ZEBRA_RES zebra_delete_from_path(ZebraHandle zh, const char *path);
+ZEBRA_RES zebra_remove_file_match(ZebraHandle zh);
+
+
+struct rpn_char_map_info
+{
+    ZebraMaps zm;
+    int reg_type;
+};
+
+void rpn_char_map_prepare(struct zebra_register *reg, int reg_type,
+                          struct rpn_char_map_info *map_info);
+
+ZEBRA_RES zapt_term_to_utf8(ZebraHandle zh, Z_AttributesPlusTerm *zapt,
+                           char *termz);
+
+
+#define FIRST_IN_FIELD_STR "\001^"
+#define FIRST_IN_FIELD_CHAR 1
+#define FIRST_IN_FIELD_LEN 2
+
 YAZ_END_CDECL
 
 #endif