Fix mistake: fuzzy matching is 5=103, not 5=102
[yaz-moved-to-github.git] / doc / frontend.xml
index 3c2a701..985f4bd 100644 (file)
@@ -1,4 +1,4 @@
-<!-- $Id: frontend.xml,v 1.21 2004-01-17 01:20:12 adam Exp $ -->
+<!-- $Id: frontend.xml,v 1.29 2006-04-25 11:25:08 marc Exp $ -->
  <chapter id="server"><title>Generic server</title>
   <sect1><title>Introduction</title>
    
  <chapter id="server"><title>Generic server</title>
   <sect1><title>Introduction</title>
    
       Result-Set Sort (optional).
      </para></listitem>
     
       Result-Set Sort (optional).
      </para></listitem>
     
+    <listitem><para>
+      Return Explain for SRW/SRU (optional).
+     </para></listitem>
+    
    </itemizedlist>
 
    <para>
    </itemizedlist>
 
    <para>
@@ -232,7 +236,7 @@ statserv_options_block *statserv_getcontrol(void);
      <varlistentry><term>
        <literal>int idle_timeout;</literal></term>
       <listitem><para>Maximum session idle-time, in minutes. Zero indicates
      <varlistentry><term>
        <literal>int idle_timeout;</literal></term>
       <listitem><para>Maximum session idle-time, in minutes. Zero indicates
-       no (infinite) timeout. Default is 120 minutes.
+       no (infinite) timeout. Default is 15 minutes.
        </para></listitem></varlistentry>
      
      <varlistentry><term>
        </para></listitem></varlistentry>
      
      <varlistentry><term>
@@ -372,6 +376,8 @@ typedef struct bend_initrequest
     /* character set and language negotiation - see include/yaz/z-charneg.h */
     Z_CharSetandLanguageNegotiation *charneg_request;
     Z_External *charneg_response;
     /* character set and language negotiation - see include/yaz/z-charneg.h */
     Z_CharSetandLanguageNegotiation *charneg_request;
     Z_External *charneg_response;
+    int (*bend_srw_explain)(void *handle, bend_explain_rr *rr);
+    int (*bend_srw_scan)(void *handle, bend_scan_rr *rr);
 } bend_initrequest;
 
 typedef struct bend_initresult
 } bend_initrequest;
 
 typedef struct bend_initresult
@@ -458,6 +464,7 @@ typedef struct {
     int hits;                  /* number of hits */
     int errcode;               /* 0==OK */
     char *errstring;           /* system error string or NULL */
     int hits;                  /* number of hits */
     int errcode;               /* 0==OK */
     char *errstring;           /* system error string or NULL */
+    Z_OtherInformation *search_info;
 } bend_search_rr;
     </synopsis>
 
 } bend_search_rr;
     </synopsis>
 
@@ -546,10 +553,10 @@ typedef struct bend_fetch_rr {
      that holds the reference to the desired record.
      The <literal>number</literal> is the offset into the set (with 1
      being the first record in the set). The <literal>format</literal> field
      that holds the reference to the desired record.
      The <literal>number</literal> is the offset into the set (with 1
      being the first record in the set). The <literal>format</literal> field
-     is the record format requested by the client (See section
-     <link linkend="oid">Object Identifiers</link>). The value
-     <literal>VAL_NONE</literal> indicates that the client did not
-     request a specific format. The <literal>stream</literal> argument
+     is the record format requested by the client (See
+     <xref linkend="asn.oid"/>).
+     The value <literal>VAL_NONE</literal> indicates that the client did
+     not request a specific format. The <literal>stream</literal> argument
      is an &odr; stream which should be used for
      allocating space for structured data records.
      The stream will be reset when all records have been assembled, and
      is an &odr; stream which should be used for
      allocating space for structured data records.
      The stream will be reset when all records have been assembled, and
@@ -715,8 +722,22 @@ typedef struct bend_scan_rr {
     bend_scan_status status;
     int errcode;
     char *errstring;
     bend_scan_status status;
     int errcode;
     char *errstring;
+    char *scanClause;   /* CQL scan clause */
 } bend_scan_rr;
     </synopsis>
 } bend_scan_rr;
     </synopsis>
+   <para>
+    This backend server handles both Z39.50 scan 
+    and SRW/SRU scan. In order for a
+    handler to distinguish between SRW/SRU (CQL) scan 
+    Z39.50 Scan , it must check for a non-NULL value of 
+    <literal>scanClause</literal>.
+   </para>
+   <note>
+    <para>
+     if designed today, it would be a choice using a union or similar,
+     but that would break binary compatibility with existing servers.
+    </para>
+    </note>
    </sect2>
   </sect1>
 
    </sect2>
   </sect1>
 
@@ -726,31 +747,13 @@ typedef struct bend_scan_rr {
     The finished application has the following
     invocation syntax (by way of <function>statserv_main()</function>):
    </para>
     The finished application has the following
     invocation syntax (by way of <function>statserv_main()</function>):
    </para>
-   
-   <cmdsynopsis>
-    <command>appname</command>
-    <arg choice="opt"><option>-install</option></arg>
-    <arg choice="opt"><option>-installa</option></arg>
-    <arg choice="opt"><option>-remove</option></arg>
-    <arg choice="opt"><option>-a <replaceable>file</replaceable></option></arg>
-    <arg choice="opt"><option>-v <replaceable>level</replaceable></option></arg>
-    <arg choice="opt"><option>-l <replaceable>file</replaceable></option></arg>
-    <arg choice="opt"><option>-u <replaceable>uid</replaceable></option></arg>
-    <arg choice="opt"><option>-c <replaceable>config</replaceable></option></arg>
-    <arg choice="opt"><option>-t <replaceable>minutes</replaceable></option></arg>
-    <sbr/>
-    <arg choice="opt"><option>-k <replaceable>kilobytes</replaceable></option></arg>
-    <arg choice="opt"><option>-d <replaceable>daemon</replaceable></option></arg>
-    <arg choice="opt"><option>-w <replaceable>dir</replaceable></option></arg>
-    <arg choice="opt"><option>-p <replaceable>pidfile</replaceable></option></arg>
-    <arg choice="opt"><option>-ziDST1</option></arg>
-    <arg choice="opt" rep="repeat">listener-spec</arg>
-   </cmdsynopsis>
+
+   &gfs-synopsis;
    
    <para>
     The options are:
 
    
    <para>
     The options are:
 
-    &ztest-options;
+    &gfs-options;
 
    </para>
    
 
    </para>
    
@@ -800,10 +803,10 @@ typedef struct bend_scan_rr {
    </example>
    <example><title>Setting up Apache as SRW/SRU Frontend</title>
     <para>
    </example>
    <example><title>Setting up Apache as SRW/SRU Frontend</title>
     <para>
-     If you use <ulink url="http://httpd.apache.org/">Apache</ulink>
+     If you use <ulink url="&url.apache;">Apache</ulink>
      as your public web server and want to offer HTTP port 80
      access to the YAZ server on 210, you can use the
      as your public web server and want to offer HTTP port 80
      access to the YAZ server on 210, you can use the
-     <ulink url="http://httpd.apache.org/docs/mod/mod_proxy.html#proxypass">
+     <ulink url="&url.apache.directive.proxypass;">
       <literal>ProxyPass</literal></ulink> 
      directive.
      If you have virtual host
       <literal>ProxyPass</literal></ulink> 
      directive.
      If you have virtual host
@@ -814,7 +817,7 @@ typedef struct bend_scan_rr {
        ErrorLog /home/srw/logs/error_log
        TransferLog /home/srw/logs/access_log
        ProxyPass / http://srw.mydomain:210/
        ErrorLog /home/srw/logs/error_log
        TransferLog /home/srw/logs/access_log
        ProxyPass / http://srw.mydomain:210/
-      &lt;/VirualHost>
+      &lt;/VirtualHost>
      </screen>
     </para>
     <para>
      </screen>
     </para>
     <para>
@@ -832,6 +835,9 @@ typedef struct bend_scan_rr {
     </para>
    </example>
   </sect1>
     </para>
    </example>
   </sect1>
+  <sect1 id="server.vhosts"><title>Virtual Hosts</title>
+   &gfs-virtual;
+  </sect1>
  </chapter>
  
  <!-- Keep this comment at the end of the file
  </chapter>
  
  <!-- Keep this comment at the end of the file