Parent (eti) creates BOTH FIFOs. dtbsun is more happy now.
[egate.git] / kernel / kernel.h
index f604dac..40bafaf 100644 (file)
@@ -2,7 +2,45 @@
  * Europagate, 1995
  *
  * $Log: kernel.h,v $
- * Revision 1.3  1995/02/16 18:35:08  adam
+ * Revision 1.15  1995/04/19 13:19:08  adam
+ * New command: account - for authentication.
+ *
+ * Revision 1.14  1995/04/19  10:46:18  adam
+ * Persistency works much better now. New command: status - history-like
+ *
+ * Revision 1.13  1995/04/19  07:31:04  adam
+ * First work on Z39.50 persistence.
+ *
+ * Revision 1.12  1995/04/17  09:34:29  adam
+ * Timeout (idletime) adjustable. Minor changes in kernel.
+ *
+ * Revision 1.11  1995/03/28  11:42:34  adam
+ * First use of string-queue utility.
+ *
+ * Revision 1.10  1995/03/27  08:24:01  adam
+ * First use of gip interface and gw-db.
+ * First work on eti program.
+ *
+ * Revision 1.9  1995/03/03  17:19:13  adam
+ * Smarter presentation. Bug fix in email header interpretation.
+ *
+ * Revision 1.8  1995/03/01  14:32:24  adam
+ * Better diagnostics. Default is, that only one database selected when
+ * several are known.
+ *
+ * Revision 1.7  1995/02/23  08:32:16  adam
+ * Changed header.
+ *
+ * Revision 1.5  1995/02/22  15:22:32  adam
+ * Much more checking of run-time state. Show command never retrieves
+ * more records than indicated by the previous search request. Help
+ * command available. The maximum number of records retrieved can be
+ * controlled now.
+ *
+ * Revision 1.4  1995/02/20  21:16:18  adam
+ * FML support. Bug fixes. Profile for drewdb.
+ *
+ * Revision 1.3  1995/02/16  18:35:08  adam
  * First use of Zdist library. Search requests are supported.
  * Present requests are not supported yet.
  *
 #include <ccl.h>
 #include <zaccess.h>
 
-int urp (FILE *inf);
+#include <iso2709.h>
+#if USE_FML
+#include <fmlmarc.h>
+#endif
+#include <strqueue.h>
+
+#define LINE_MAX 1024
+
+struct gw_user_set {
+    char   *name;               /* name of result set */
+    int    hits;                /* -1 on error */
+    char   *database;           /* database(s) in which we search */
+    struct ccl_rpn_node *rpn;   /* rpn request */
+    int    present_flag;        /* present in target (presistency) */
+    char   *search_str;         /* find request string */
+    struct gw_user_set *prev;
+};
 
 struct gw_kernel_info {
     CCL_bibset bibset;
@@ -31,16 +85,55 @@ struct gw_kernel_info {
     const char *override_res;
     char target[128];
     char hostname[128];
+    char account[128];
     int  port;
     const char *lang;
     const char *override_portno;
     const char *override_hostname;
     char *databases;
+    char *database;
     ZASS  zass;
+    int command_no;
+    char  from_str[LINE_MAX+1];
+    const char *reply_fname;
+    int setno;
+#if USE_FML
+    Fml   fml;
+#endif
+    struct gw_user_set *sets;
 };
 
 extern struct gw_kernel_info info;
 
 extern FILE *reply_fd;
 
+int  urp_start   (int continuation, struct str_queue *queue);
+int  urp_command (struct str_queue *queue);
+void urp_end     (void);
+
 void read_kernel_res (void);
+
+struct gw_user_set *user_set_add (const char *name, int hits,
+                                  const char *database,
+                                 struct ccl_rpn_node *rpn,
+                                 int present_flag,
+                                  const char *search_str);
+struct gw_user_set *user_set_search (const char *name);
+void user_set_init (void);
+
+int lgets (char *buf, int max, int fd);
+
+const struct zass_searchent *zass_p_search (ZASS zass, 
+                                      struct ccl_rpn_node *rpn,
+                                      const char *result_set,
+                                     const char *database,
+                                     struct gw_user_set *sets);
+const struct zass_presentent *zass_p_present (ZASS zass,
+                                      const char *result_set,
+                                     int offset, int number);
+
+int load_p_state (int userid);
+int save_p_state (int userid);
+int reopen_target (void);
+
+#define KERNEL_LOG "kernel"