Doxyfile file description. Indentation. No change of code.
[yaz-moved-to-github.git] / include / yaz / srw.h
index a1ecadd..36f08b3 100644 (file)
@@ -1,8 +1,12 @@
 /*
- * Copyright (c) 2002-2003, Index Data.
+ * Copyright (c) 2002-2004, Index Data.
  * See the file LICENSE for details.
  *
- * $Id: srw.h,v 1.9 2003-12-20 00:51:19 adam Exp $
+ * $Id: srw.h,v 1.17 2004-10-15 00:18:59 adam Exp $
+ */
+/**
+ * \file srw.h
+ * \brief Header for SRW/SRU
  */
 
 #ifndef YAZ_SRW_H
@@ -24,8 +28,9 @@ typedef struct {
 } Z_SRW_record;
 
 typedef struct {
-    int  *code;
+    char *uri;
     char *details;
+    char *message;
 } Z_SRW_diagnostic;
     
 typedef struct {
@@ -50,10 +55,13 @@ typedef struct {
         char *xSortKeys;
     } sort;
     int *startRecord;
-    int  *maximumRecords;
+    int *maximumRecords;
     char *recordSchema;
     char *recordPacking;
+    char *recordXPath;
     char *database;
+    char *stylesheet;
+    int *resultSetTTL;
 } Z_SRW_searchRetrieveRequest;
 
 typedef struct {
@@ -72,16 +80,42 @@ typedef struct {
 typedef struct {
     char *recordPacking;
     char *database;
+    char *stylesheet;
 } Z_SRW_explainRequest;
 
 typedef struct {
     Z_SRW_record record;
+    Z_SRW_diagnostic *diagnostics;
+    int num_diagnostics;
 } Z_SRW_explainResponse;
     
+typedef struct {
+    char *scanClause;
+    int *responsePosition;
+    int *maximumTerms;
+    char *stylesheet;
+    char *database;
+} Z_SRW_scanRequest;
+
+typedef struct {
+    char *value;
+    int *numberOfRecords;
+    char *displayTerm;
+} Z_SRW_scanTerm;
+
+typedef struct {
+    Z_SRW_scanTerm *terms;
+    int num_terms;
+    Z_SRW_diagnostic *diagnostics;
+    int num_diagnostics;
+} Z_SRW_scanResponse;
+
 #define Z_SRW_searchRetrieve_request  1
 #define Z_SRW_searchRetrieve_response 2
 #define Z_SRW_explain_request 3
 #define Z_SRW_explain_response 4
+#define Z_SRW_scan_request 5
+#define Z_SRW_scan_response 6
 
 typedef struct {
     int which;
@@ -90,9 +124,10 @@ typedef struct {
         Z_SRW_searchRetrieveResponse *response;
         Z_SRW_explainRequest *explain_request;
         Z_SRW_explainResponse *explain_response;
+        Z_SRW_scanRequest *scan_request;
+        Z_SRW_scanResponse *scan_response;
     } u;
     char *srw_version;
-    char *database;
 } Z_SRW_PDU;
 
 YAZ_EXPORT int yaz_srw_codec(ODR o, void * pptr,
@@ -109,10 +144,19 @@ YAZ_EXPORT int yaz_diag_srw_to_bib1(int srw_code);
 YAZ_EXPORT char *yaz_uri_val(const char *path, const char *name, ODR o);
 YAZ_EXPORT void yaz_uri_val_int(const char *path, const char *name,
                                ODR o, int **intp);
-YAZ_EXPORT int yaz_check_for_srw(Z_HTTP_Request *hreq, Z_SRW_PDU **srw_pdu,
-                                char **soap_ns, ODR decode);
-YAZ_EXPORT int yaz_check_for_sru(Z_HTTP_Request *hreq, Z_SRW_PDU **srw_pdu,
-                                char **soap_ns, ODR decode);
+YAZ_EXPORT int yaz_srw_decode(Z_HTTP_Request *hreq, Z_SRW_PDU **srw_pdu,
+                             Z_SOAP **soap_package, ODR decode, char **charset);
+YAZ_EXPORT int yaz_sru_decode(Z_HTTP_Request *hreq, Z_SRW_PDU **srw_pdu,
+                             Z_SOAP **soap_package, ODR decode, 
+                             char **charset,
+                             Z_SRW_diagnostic **, int *num_diagnostic);
+
+YAZ_EXPORT void yaz_add_srw_diagnostic(ODR o, Z_SRW_diagnostic **d,
+                                      int *num, int code,
+                                      const char *addinfo);
+    
+YAZ_EXPORT void yaz_mk_std_diagnostic(ODR o, Z_SRW_diagnostic *d, 
+                                     int code, const char *details);
 YAZ_END_CDECL
 
 #endif