Record buffer maintained in server_info.
[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.3  1995-09-08 08:53:23  adam
8  * Record buffer maintained in server_info.
9  *
10  * Revision 1.2  1995/09/06  16:11:19  adam
11  * Option: only one word key per file.
12  *
13  * Revision 1.1  1995/09/05  15:28:40  adam
14  * More work on search engine.
15  *
16  */
17
18 #include "index.h"
19 #include <proto.h>
20 #include <rset.h>
21
22 typedef struct {
23     size_t size;
24     char *buf;
25 } ZServerRecord;
26
27 typedef struct ZServerSet_ {
28     char *name;
29     RSET rset;
30     int size;
31     struct ZServerSet_ *next;
32 } ZServerSet;
33    
34 typedef struct {
35     ZServerSet *sets;
36     Dict wordDict;
37     ISAM wordIsam;
38     Dict fileDict;
39     int sys_idx_fd;
40     char *recordBuf;
41 } ZServerInfo;
42
43 int rpn_search (ZServerInfo *zi, 
44                 Z_RPNQuery *rpn, int num_bases, char **basenames, 
45                 const char *setname, int *hits);
46
47 ZServerSet *resultSetAdd (ZServerInfo *zi, const char *name,
48                           int ov, RSET rset);
49 ZServerSet *resultSetGet (ZServerInfo *zi, const char *name);
50 ZServerRecord *resultSetRecordGet (ZServerInfo *zi, const char *name,
51                                    int num, int *positions);
52 void resultSetRecordDel (ZServerInfo *zi, ZServerRecord *records, int num);