First work on regular expressions/truncations.
[idzebra-moved-to-github.git] / index / zserver.h
1 /*
2  * Copyright (C) 1994-1995, Index Data I/S 
3  * All rights reserved.
4  * Sebastian Hammer, Adam Dickmeiss
5  *
6  * $Log: zserver.h,v $
7  * Revision 1.4  1995-09-14 11:53:28  adam
8  * First work on regular expressions/truncations.
9  *
10  * Revision 1.3  1995/09/08  08:53:23  adam
11  * Record buffer maintained in server_info.
12  *
13  * Revision 1.2  1995/09/06  16:11:19  adam
14  * Option: only one word key per file.
15  *
16  * Revision 1.1  1995/09/05  15:28:40  adam
17  * More work on search engine.
18  *
19  */
20
21 #include "index.h"
22 #include <proto.h>
23 #include <rset.h>
24
25 typedef struct {
26     size_t size;
27     char *buf;
28 } ZServerRecord;
29
30 typedef struct ZServerSet_ {
31     char *name;
32     RSET rset;
33     int size;
34     struct ZServerSet_ *next;
35 } ZServerSet;
36    
37 typedef struct {
38     ZServerSet *sets;
39     Dict wordDict;
40     ISAM wordIsam;
41     Dict fileDict;
42     int sys_idx_fd;
43     char *recordBuf;
44     int errCode;
45     char *errString;
46 } ZServerInfo;
47
48 int rpn_search (ZServerInfo *zi, 
49                 Z_RPNQuery *rpn, int num_bases, char **basenames, 
50                 const char *setname, int *hits);
51
52 ZServerSet *resultSetAdd (ZServerInfo *zi, const char *name,
53                           int ov, RSET rset);
54 ZServerSet *resultSetGet (ZServerInfo *zi, const char *name);
55 ZServerRecord *resultSetRecordGet (ZServerInfo *zi, const char *name,
56                                    int num, int *positions);
57 void resultSetRecordDel (ZServerInfo *zi, ZServerRecord *records, int num);