C++ compilation.
[idzebra-moved-to-github.git] / index / zserver.c
index 4718912..3f10faf 100644 (file)
@@ -1,10 +1,37 @@
 /*
- * Copyright (C) 1995-1998, Index Data I/S 
+ * Copyright (C) 1995-1999, Index Data 
  * All rights reserved.
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: zserver.c,v $
- * Revision 1.60  1998-06-22 11:36:49  adam
+ * Revision 1.68  1999-05-26 07:49:13  adam
+ * C++ compilation.
+ *
+ * Revision 1.67  1999/02/02 14:51:14  adam
+ * Updated WIN32 code specific sections. Changed header.
+ *
+ * Revision 1.66  1998/10/28 10:54:41  adam
+ * SDRKit integration.
+ *
+ * Revision 1.65  1998/10/18 07:54:54  adam
+ * Additional info added for diagnostics 114 (Unsupported use attribute) and
+ * 121 (Unsupported attribute set).
+ *
+ * Revision 1.64  1998/09/22 10:48:21  adam
+ * Minor changes in search API.
+ *
+ * Revision 1.63  1998/09/02 13:53:21  adam
+ * Extra parameter decode added to search routines to implement
+ * persistent queries.
+ *
+ * Revision 1.62  1998/08/06 14:35:28  adam
+ * Routine bend_deleterequest removed.
+ *
+ * Revision 1.61  1998/06/24 12:16:15  adam
+ * Support for relations on text operands. Open range support in
+ * DFA module (i.e. [-j], [g-]).
+ *
+ * Revision 1.60  1998/06/22 11:36:49  adam
  * Added authentication check facility to zebra.
  *
  * Revision 1.59  1998/06/12 12:22:13  adam
 #include <stdio.h>
 #include <assert.h>
 #include <fcntl.h>
-#ifdef WINDOWS
+#ifdef WIN32
 #include <io.h>
 #include <process.h>
 #else
 
 #include "zserver.h"
 
+#ifndef ZEBRASDR
+#define ZEBRASDR 0
+#endif
+#if ZEBRASDR
+#include "zebrasdr.h"
+#endif
+
 static int bend_sort (void *handle, bend_sort_rr *rr);
 
 bend_initresult *bend_init (bend_initrequest *q)
 {
-    bend_initresult *r = odr_malloc (q->stream, sizeof(*r));
+    bend_initresult *r = (bend_initresult *)
+       odr_malloc (q->stream, sizeof(*r));
     ZebraHandle zh;
     struct statserv_options_block *sob;
     char *user = NULL;
@@ -285,8 +320,9 @@ bend_initresult *bend_init (bend_initrequest *q)
 
 bend_searchresult *bend_search (void *handle, bend_searchrequest *q, int *fd)
 {
-    ZebraHandle zh = handle;
-    bend_searchresult *r = odr_malloc (q->stream, sizeof(*r));
+    ZebraHandle zh = (ZebraHandle) handle;
+    bend_searchresult *r = (bend_searchresult *)
+       odr_malloc (q->stream, sizeof(*r));
 
     r->hits = 0;
     r->errcode = 0;
@@ -296,12 +332,16 @@ bend_searchresult *bend_search (void *handle, bend_searchrequest *q, int *fd)
     switch (q->query->which)
     {
     case Z_Query_type_1: case Z_Query_type_101:
-       zebra_search_rpn (zh, q->stream, q->query->u.type_1,
+       zebra_search_rpn (zh, q->decode, q->stream, q->query->u.type_1,
                          q->num_bases, q->basenames, q->setname);
        r->errcode = zh->errCode;
        r->errstring = zh->errString;
        r->hits = zh->hits;
         break;
+    case Z_Query_type_2:
+       r->errcode = 107;
+       r->errstring = "type-2";
+       break;
     default:
         r->errcode = 107;
     }
@@ -310,8 +350,9 @@ bend_searchresult *bend_search (void *handle, bend_searchrequest *q, int *fd)
 
 bend_fetchresult *bend_fetch (void *handle, bend_fetchrequest *q, int *num)
 {
-    ZebraHandle zh = handle;
-    bend_fetchresult *r = odr_malloc (q->stream, sizeof(*r));
+    ZebraHandle zh = (ZebraHandle) handle;
+    bend_fetchresult *r = (bend_fetchresult *)
+       odr_malloc (q->stream, sizeof(*r));
     ZebraRetrievalRecord retrievalRecord;
 
     retrievalRecord.position = q->number;
@@ -342,22 +383,19 @@ bend_fetchresult *bend_fetch (void *handle, bend_fetchrequest *q, int *num)
     return r;
 }
 
-bend_deleteresult *bend_delete (void *handle, bend_deleterequest *q, int *num)
-{
-    return 0;
-}
-
 bend_scanresult *bend_scan (void *handle, bend_scanrequest *q, int *num)
 {
     ZebraScanEntry *entries;
-    ZebraHandle zh = handle;
-    bend_scanresult *r = odr_malloc (q->stream, sizeof(*r));
+    ZebraHandle zh = (ZebraHandle) handle;
+    bend_scanresult *r = (bend_scanresult *)
+       odr_malloc (q->stream, sizeof(*r));
     int is_partial, i;
     
     r->term_position = q->term_position;
     r->num_entries = q->num_entries;
 
-    r->entries = odr_malloc (q->stream, sizeof(*r->entries) * q->num_entries);
+    r->entries = (struct scan_entry *)
+       odr_malloc (q->stream, sizeof(*r->entries) * q->num_entries);
     zebra_scan (zh, q->stream, q->term,
                q->attributeset,
                q->num_bases, q->basenames,
@@ -384,16 +422,17 @@ void bend_close (void *handle)
 
 int bend_sort (void *handle, bend_sort_rr *rr)
 {
-    ZebraHandle zh = handle;
+    ZebraHandle zh = (ZebraHandle) handle;
 
-    zebra_sort (zh, rr->stream, rr->num_input_setnames, rr->input_setnames,
+    zebra_sort (zh, rr->stream,
+                rr->num_input_setnames, (const char **) rr->input_setnames,
                rr->output_setname, rr->sort_sequence, &rr->sort_status);
     rr->errcode = zh->errCode;
     rr->errstring = zh->errString;
     return 0;
 }
 
-#ifndef WINDOWS
+#ifndef WIN32
 static void pre_init (struct statserv_options_block *sob)
 {
     char *pidfile = "zebrasrv.pid";
@@ -418,10 +457,13 @@ int main (int argc, char **argv)
 
     sob = statserv_getcontrol ();
     strcpy (sob->configname, FNAME_CONFIG);
-#ifndef WINDOWS
+#ifndef WIN32
     sob->pre_init = pre_init;
 #endif
     statserv_setcontrol (sob);
 
+#if ZEBRASDR
+    zebraSdr_std ();
+#endif
     return statserv_main (argc, argv);
 }