Added code to enable sending of admin extended service requests
[yaz-moved-to-github.git] / client / client.c
index b48fabe..a113433 100644 (file)
@@ -4,7 +4,13 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: client.c,v $
- * Revision 1.94  2000-01-31 13:15:21  adam
+ * Revision 1.96  2000-03-14 09:27:07  ian
+ * Added code to enable sending of admin extended service requests
+ *
+ * Revision 1.95  2000/02/28 11:20:05  adam
+ * Using autoconf. New definitions: YAZ_BEGIN_CDECL/YAZ_END_CDECL.
+ *
+ * Revision 1.94  2000/01/31 13:15:21  adam
  * Removed uses of assert(3). Cleanup of ODR. CCL parser update so
  * that some characters are not surrounded by spaces in resulting term.
  * ILL-code updates.
 #include <readline/history.h>
 #endif
 
+#include "admin.h"
+
 #define C_PROMPT "Z> "
 
 static ODR out, in, print;              /* encoding and decoding streams */
@@ -380,7 +388,12 @@ static QueryType queryType = QueryType_Prefix;
 static CCL_bibset bibset;               /* CCL bibset handle */
 #endif
 
-static void send_apdu(Z_APDU *a)
+ODR getODROutputStream()
+{
+    return out;
+}
+
+void send_apdu(Z_APDU *a)
 {
     char *buf;
     int len;
@@ -756,19 +769,21 @@ static void display_record(Z_DatabaseRecord *p)
        }
     }
     if (ent && ent->value == VAL_SOIF)
-        print_record(r->u.octet_aligned->buf, r->u.octet_aligned->len);
+        print_record((const unsigned char *) r->u.octet_aligned->buf, r->u.octet_aligned->len);
     else if (r->which == Z_External_octet && p->u.octet_aligned->len)
     {
         const char *octet_buf = (char*)p->u.octet_aligned->buf;
        if (ent->value == VAL_TEXT_XML || ent->value == VAL_APPLICATION_XML ||
             ent->value == VAL_HTML)
-            print_record(octet_buf, p->u.octet_aligned->len);
+            print_record((const unsigned char *) octet_buf,
+                         p->u.octet_aligned->len);
        else
         {
             if (marc_display (octet_buf, NULL) <= 0)
             {
                 printf ("ISO2709 decoding failed, dumping record as is:\n");
-                print_record(octet_buf, p->u.octet_aligned->len);
+                print_record((const unsigned char*) octet_buf,
+                              p->u.octet_aligned->len);
             }
         }
         if (marcdump)
@@ -2246,6 +2261,14 @@ static int client(int wait)
        {"refid", cmd_refid, "<id>"},
        {"itemorder", cmd_itemorder, "1|2 <item>"},
        {"update", cmd_update, "<item>"},
+       /* Server Admin Functions */
+       {"adm-reindex", cmd_adm_reindex, "<database-name>"},
+       {"adm-truncate", cmd_adm_truncate, "('database'|'index')<object-name>"},
+       {"adm-create", cmd_adm_create, "<database-name>"},
+       {"adm-delete", cmd_adm_delete, "('database'|'index')<object-name>"},
+       {"adm-import", cmd_adm_import, "<database-name> <record-type> <source-file-name>"},
+       {"adm-refresh", cmd_adm_refresh, "<database-name>"},
+       {"adm-commit", cmd_adm_commit, ""},
         {0,0}
     };
     char *netbuffer= 0;