Add wrbuf_sha1_puts
[yaz-moved-to-github.git] / doc / zoom.xml
index 78b5d72..d1ccf8e 100644 (file)
@@ -16,7 +16,6 @@ ZOOM_options_setl(opt, name, value, len)
 ZOOM_options_get_bool(opt, name, defa)
 ZOOM_options_get_int(opt, name, defa)
 ZOOM_options_set_int(opt, name, value)
-ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
 -->
  <chapter id="zoom"><title>ZOOM</title>
   <para>
@@ -191,6 +190,9 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
         password</entry><entry>Authentication password.
        </entry><entry>none</entry></row>
       <row><entry>
+        authenticationMode</entry><entry>How authentication is encoded.
+       </entry><entry>basic</entry></row>
+      <row><entry>
         host</entry><entry>Target host. This setting is "read-only".
         It's automatically set internally when connecting to a target.
        </entry><entry>none</entry></row>
@@ -391,9 +393,9 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
    <sect2 id="zoom.sru.init.behavior">
     <title>SRU/Solr Protocol behavior</title>
     <para>
-     The HTTP based protocols (SRU, SRW, Solr) doesn't feature an Inititialize Request, so
-     the connection phase merely establishes a TCP/IP connection
-     with the SOAP service.
+     The HTTP based protocols (SRU, SRW, Solr) doesn't feature an
+     Inititialize Request, so  the connection phase merely establishes a
+     TCP/IP connection with the HTTP server.
     </para>
     <para>Most of the ZOOM connection options do not
      affect SRU/Solr and they are ignored. However, future versions
@@ -404,6 +406,19 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
      The <literal>charset</literal> is used in the Content-Type header
      of HTTP requests.
     </para>
+    <para>
+     Setting <literal>authentcationMode</literal> specifies how
+     authentication parameters are encoded for HTTP. The default is
+     "<literal>basic</literal>" where <literal>user</literal> and
+     <literal>password</literal> are encoded by using HTTP basic
+     authentication.
+     </para>
+    <para>
+     If <literal>authentcationMode</literal> is "<literal>url</literal>", then
+     user and password are encoded in the URL by parameters
+     <literal>x-username</literal> and <literal>x-password</literal> as
+     given by the SRU standard.
+    </para>
    </sect2>
   </sect1>
   <sect1 id="zoom.query"><title>Queries</title>
@@ -949,6 +964,12 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
         <literal>*len</literal>.
        </para></listitem>
      </varlistentry>
+     <varlistentry><term><literal>json</literal></term>
+      <listitem><para>Like xml, but MARC records are converted to
+       <ulink url="&url.marc_in_json;">MARC-in-JSON</ulink>.
+       </para></listitem>
+     </varlistentry>
+
     </variablelist>
    </para>
    <para>
@@ -1586,6 +1607,38 @@ ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn)
                                        void *handle);
    </synopsis>
   </sect1>
+
+  <sect1 id="zoom.queryconversions"><title>Query conversions</title>
+   <synopsis>
+    int ZOOM_query_cql2rpn(ZOOM_query s, const char *cql_str,
+                           ZOOM_connection conn);
+
+    int ZOOM_query_ccl2rpn(ZOOM_query s, const char *ccl_str,
+                           const char *config,
+                           int *ccl_error, const char **error_string,
+                           int *error_pos);
+   </synopsis>
+   <para>
+    <function>ZOOM_query_cql2rpn</function> translates the CQL string,
+    client-side, into RPN which may be passed to the server.
+    This is useful for server's that don't themselves
+    support CQL, for which <function>ZOOM_query_cql</function> is useless.
+    `conn' is used  only as a place to stash diagnostics if compilation
+    fails; if this information is not needed, a null pointer may be used.
+    The CQL conversion is driven by option <literal>cqlfile</literal> from
+    connection conn. This specifies a conversion file (eg pqf.properties)
+    which <emphasis>must</emphasis> be present.
+   </para>
+   <para>
+    <function>ZOOM_query_ccl2rpn</function> translates the CCL string,
+    client-side, into RPN which may be passed to the server.
+    The conversion is driven by the specification given by
+    <literal>config</literal>. Upon completion 0 is returned on success; -1
+    is returned on on failure. Om failure <literal>error_string</literal> and
+    <literal>error_pos</literal> holds error message and position of
+    first error in original CCL string.
+   </para>
+  </sect1>
   <sect1 id="zoom.events"><title>Events</title>
    <para>
     If you're developing non-blocking applications, you have to deal