Editing.
[egate.git] / kernel / kernel.h
1 /* Gateway kernel
2  * Europagate, 1995
3  *
4  * $Log: kernel.h,v $
5  * Revision 1.11  1995/03/28 11:42:34  adam
6  * First use of string-queue utility.
7  *
8  * Revision 1.10  1995/03/27  08:24:01  adam
9  * First use of gip interface and gw-db.
10  * First work on eti program.
11  *
12  * Revision 1.9  1995/03/03  17:19:13  adam
13  * Smarter presentation. Bug fix in email header interpretation.
14  *
15  * Revision 1.8  1995/03/01  14:32:24  adam
16  * Better diagnostics. Default is, that only one database selected when
17  * several are known.
18  *
19  * Revision 1.7  1995/02/23  08:32:16  adam
20  * Changed header.
21  *
22  * Revision 1.5  1995/02/22  15:22:32  adam
23  * Much more checking of run-time state. Show command never retrieves
24  * more records than indicated by the previous search request. Help
25  * command available. The maximum number of records retrieved can be
26  * controlled now.
27  *
28  * Revision 1.4  1995/02/20  21:16:18  adam
29  * FML support. Bug fixes. Profile for drewdb.
30  *
31  * Revision 1.3  1995/02/16  18:35:08  adam
32  * First use of Zdist library. Search requests are supported.
33  * Present requests are not supported yet.
34  *
35  * Revision 1.2  1995/02/16  13:20:59  adam
36  * Organization of resource files for targets and conversion
37  * language implemented.
38  *
39  * Revision 1.1  1995/02/15  17:45:29  adam
40  * First version of email gateway kernel. Email requests are read
41  * from stdin. The output is transferred to an MTA if 'From' is
42  * found in the header - or stdout if absent. No Z39.50 client is used.
43  *
44  */
45
46 #include <gw-res.h>
47 #include <gw-log.h>
48 #include <ccl.h>
49 #include <zaccess.h>
50
51 #include <iso2709.h>
52 #if USE_FML
53 #include <fmlmarc.h>
54 #endif
55 #include <strqueue.h>
56
57 int urp (struct str_queue *queue);
58
59 struct gw_user_set {
60     char *name;        /* name of result set */
61     int hits;          /* -1 on error */
62     struct gw_user_set *prev;
63 };
64
65 struct gw_kernel_info {
66     CCL_bibset bibset;
67     GwRes kernel_res;
68     const char *default_res; 
69     const char *override_res;
70     char target[128];
71     char hostname[128];
72     int  port;
73     const char *lang;
74     const char *override_portno;
75     const char *override_hostname;
76     char *databases;
77     char *database;
78     ZASS  zass;
79 #if USE_FML
80     Fml   fml;
81 #endif
82     struct gw_user_set *sets;
83 };
84
85 extern struct gw_kernel_info info;
86
87 extern FILE *reply_fd;
88
89 void read_kernel_res (void);
90
91 struct gw_user_set *user_set_add (const char *name, int hits);
92 struct gw_user_set *user_set_search (const char *name);
93 void user_set_init (void);
94 void tty_emit (int ch);
95 void tty_init (FILE *out, int min, int max);
96
97 int lgets (char *buf, int max, int fd);
98
99 #define KERNEL_LOG "kernel"