<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" 
 "http://www.oasis-open.org/docbook/xml/4.1/docbookx.dtd"
[
     <!ENTITY % local SYSTEM "local.ent">
     %local;
     <!ENTITY % entities SYSTEM "entities.ent">
     %entities;
     <!ENTITY % idcommon SYSTEM "common/common.ent">
     %idcommon;
]>
<refentry id="yaz-client">
 <refentryinfo>
  <productname>YAZ</productname>
  <productnumber>&version;</productnumber>
 </refentryinfo>
 
 <refmeta>
  <refentrytitle>yaz-client</refentrytitle>
  <manvolnum>1</manvolnum>
 </refmeta>
 
 <refnamediv>
  <refname>yaz-client</refname>
  <refpurpose>Z39.50/SRU client for implementors</refpurpose>
 </refnamediv>

 <refsynopsisdiv>
  <cmdsynopsis>
   <command>yaz-client</command>
   <arg choice="opt"><option>-a <replaceable>apdulog</replaceable></option></arg>
   <arg choice="opt"><option>-b <replaceable>berdump</replaceable></option></arg>
   <arg choice="opt"><option>-c <replaceable>cclfile</replaceable></option></arg>
   <arg choice="opt"><option>-d <replaceable>dump</replaceable></option></arg>
   <arg choice="opt"><option>-f <replaceable>cmdfile</replaceable></option></arg>
   <arg choice="opt"><option>-k <replaceable>size</replaceable></option></arg>
   <arg choice="opt"><option>-m <replaceable>marclog</replaceable></option></arg>
   <arg choice="opt"><option>-p <replaceable>proxy-addr</replaceable></option></arg>
   <arg choice="opt"><option>-q <replaceable>cqlfile</replaceable></option></arg>
   <arg choice="opt"><option>-t <replaceable>dispcharset</replaceable></option></arg>
   <arg choice="opt"><option>-u <replaceable>auth</replaceable></option></arg>
   <arg choice="opt"><option>-v <replaceable>loglevel</replaceable></option></arg>
   <arg choice="opt"><option>-V</option></arg>
   <arg choice="opt"><option>-x</option></arg>
   <arg choice="opt">server-addr</arg>
  </cmdsynopsis>

 </refsynopsisdiv>
  
 <refsect1><title>DESCRIPTION</title>
  <para>
   <command>yaz-client</command> is a Z39.50/SRU client (origin) with a
   simple command line interface that allows you to test behavior and
   performance of Z39.50 targets and SRU servers.
  </para>
  <para>
   If the <replaceable>server-addr</replaceable> is specified, the client creates
   a connection to the Z39.50/SRU target at the address given.
  </para>
  <para>
   When <command>yaz-client</command> is started it tries to read
   commands from one of the following files:
   <itemizedlist>
    <listitem><para>
      Command file if it is given by option -f. 
     </para></listitem>
    <listitem><para>
      <filename>.yazclientrc</filename> in current working directory.
     </para></listitem>
    <listitem><para>
      <filename>.yazclientrc</filename> in the user's home directory.
      The value of the <literal>HOME</literal> is used to determine
      the home directory. Normally, <literal>HOME</literal> is only set
      on POSIX systems such as Linux, FreeBSD, Solaris.
     </para></listitem>
   </itemizedlist>
  </para>
 </refsect1>
  <refsect1>
   <title>OPTIONS</title>
   <variablelist>
    <varlistentry>
     <term>-a <replaceable>filename</replaceable></term>
     <listitem><para>
       If specified, logging of protocol packages will be appended
       file given. If <replaceable>filename</replaceable> is
       specified as <literal>-</literal>, the output is written
       to <literal>stdout</literal>.
      </para></listitem>
    </varlistentry>
    <varlistentry>
     <term>-b <replaceable>filename</replaceable></term>
     <listitem><para>
       If specified, YAZ will dump BER data in readable notation
       to the file specified. If <replaceable>filename</replaceable>
       is specified as <literal>-</literal> the output is written
       to <literal>stdout</literal>.
      </para></listitem>
    </varlistentry>
    <varlistentry>
     <term>-c <replaceable>filename</replaceable></term>
     <listitem><para>
       If specified, CCL configuration will be read from
       the file given.
      </para></listitem>
    </varlistentry>
    <varlistentry>
     <term>-d <replaceable>dump</replaceable></term>
     <listitem><para>
       If specified, YAZ will dump BER data for all PDUs sent and received 
       to individual files, named
       <replaceable>dump</replaceable>.DDD.<literal>raw</literal>, 
       where DDD is 001, 002, 003, ..
      </para></listitem>
    </varlistentry>

    <varlistentry>
     <term>-f <replaceable>cmdfile</replaceable></term>
     <listitem><para>
      Reads commands from <replaceable>cmdfile</replaceable>. When
      this option is used, YAZ client does not read .yazclientrc
      from current directory or home directory.
      </para></listitem>
    </varlistentry>

    <varlistentry>
     <term>-k <replaceable>size</replaceable></term>
     <listitem><para>
      Sets preferred messages and maximum record size for Initialize
      Request in kilobytes. Default value is 1024 (1 MB).
      </para></listitem>
    </varlistentry>
    <varlistentry>
     <term>-m <replaceable>filename</replaceable></term>
     <listitem><para>
       If specified, retrieved records will be appended to the file given.
      </para></listitem>
    </varlistentry>
    <varlistentry>
     <term>-p <replaceable>proxy-addr</replaceable></term>
     <listitem><para>
       If specified, the client will use the proxy at the address
       given. YAZ client will
       connect to a proxy on the address and port given. 
       The actual target will be specified as part of the InitRequest
       to inform the proxy about actual target.
      </para></listitem>
    </varlistentry>
    <varlistentry>
     <term>-q <replaceable>filename</replaceable></term>
     <listitem><para>
       If specified, CQL configuration will be read from
       the file given.
      </para></listitem>
    </varlistentry>
    <varlistentry>
     <term>-t <replaceable>displaycharset</replaceable></term>
     <listitem><para>
       If displaycharset is given, it specifies name of the character set of the
       output (on the terminal on which YAZ client is running). 
      </para></listitem>
    </varlistentry>
    <varlistentry>
     <term>-u <replaceable>auth</replaceable></term>
     <listitem><para>
       If specified, the <replaceable>auth</replaceable> string
       will be used for authentication.
      </para></listitem>
    </varlistentry>
    <varlistentry><term>
      <literal>-v</literal> <replaceable>level</replaceable>
     </term><listitem>
      <simpara>Sets the LOG level to <replaceable>level</replaceable>.
       Level is a sequence of tokens separated by comma. Each token
       is a integer or a named LOG item - one of 
       <literal>fatal</literal>,
       <literal>debug</literal>,
       <literal>warn</literal>,
       <literal>log</literal>,
       <literal>malloc</literal>,
       <literal>all</literal>,
       <literal>none</literal>.
      </simpara></listitem>
    </varlistentry>
    <varlistentry>
     <term>-V</term>
     <listitem><para>
       Prints YAZ version.
     </para></listitem>
    </varlistentry>
    <varlistentry>
     <term>-x</term>
     <listitem><para>
       Makes the YAZ client print hex dumps of packages sent and received
       on standard output.
       </para></listitem>
    </varlistentry>
   </variablelist>
  </refsect1>
  <refsect1>
   <title>COMMANDS</title>
   <para>
    The YAZ client accepts the following commands.
   </para>
   &yaz-client-commands;
   </refsect1>
 <refsect1><title>EXAMPLE</title>
  <para>
   The simplest example of a Prefix Query would be something like
   <screen>
    f knuth
   </screen>
   or
   <screen>
    f "donald knuth"
   </screen>
   In those queries no attributes was specified.
   This leaves it up to the server what fields to search but
   most servers will search in all fields. Some servers does not
   support this feature though, and require that some attributes
   are defined. To add one attribute you could do:
   <screen>
    f @attr 1=4 computer
   </screen>
   where we search in the title field, since the use(1) is title(4).
   If we want to search in the author field <emphasis>and</emphasis>
   in the title field, and in the title field using right truncation
   it could look something like this:
   <screen>
    f @and @attr 1=1003 knuth @attr 1=4 @attr 5=1 computer
   </screen>
   Finally using a mix of Bib-1 and GILS attributes could look
   something like this:
   <screen>
    f @attrset Bib-1 @and @attr GILS 1=2008 Washington @attr 1=21 weather
   </screen>
  </para>
 </refsect1>
  <refsect1><title>FILES</title>
   <para>
    <filename>yaz-&lt;version&gt;/client/client.c</filename>
   </para>
   <para>
    <filename>$HOME/.yazclientrc</filename>
   </para>
   <para>
    <filename>$HOME/.yazclient.history</filename>
   </para>
  </refsect1>
  <refsect1><title>SEE ALSO</title>
   <para>
    <citerefentry>
     <refentrytitle>yaz</refentrytitle>
     <manvolnum>7</manvolnum>
    </citerefentry>
    <citerefentry>
     <refentrytitle>bib1-attr</refentrytitle>
     <manvolnum>7</manvolnum>
    </citerefentry>
   </para>
  </refsect1>
</refentry>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-local-catalogs: nil
sgml-namecase-general:t
End:
-->
