-<!-- $Id: frontend.xml,v 1.4 2001-07-20 21:34:36 adam Exp $ -->
- <chapter><title id="server">Making an IR Server for Your Database</title>
+<!-- $Id: frontend.xml,v 1.8 2001-10-26 20:13:44 adam Exp $ -->
+ <chapter id="server"><title>Generic server</title>
<sect1><title>Introduction</title>
<para>
If you aren't into documentation, a good way to learn how the
- backend interface works is to look at the <filename>backend.h</filename>
+ back end interface works is to look at the <filename>backend.h</filename>
file. Then, look at the small dummy-server in
- <filename>ztest/ztest.c</filename>. Finally, you can have a look at
- the <filename>seshigh.c</filename> file, which is where most of the
- logic of the frontend server is located. The <filename>backend.h</filename>
+ <filename>ztest/ztest.c</filename>. The <filename>backend.h</filename>
file also makes a good reference, once you've chewed your way through
the prose of this file.
</para>
<para>
The backend interface was designed in anticipation of a specific
integration task, while still attempting to achieve some degree of
- generality. We realise fully that there are points where the
+ generality. We realize fully that there are points where the
interface can be improved significantly. If you have specific
functions or parameters that you think could be useful, send us a
mail (or better, sign on to the mailing list referred to in the
- toplevel README file). We will try to fit good suggestions into future
+ top-level README file). We will try to fit good suggestions into future
releases, to the extent that it can be done without requiring
too many structural changes in existing applications.
</para>
</note>
</sect1>
- <sect1><title>The Database Frontend</title>
+ <sect1 id="server.frontend"><title>The Database Frontend</title>
<para>
We refer to this software as a generic database frontend. Your
</para>
</sect1>
- <sect1><title>The Backend API</title>
+ <sect1 id="server.backend"><title>The Backend API</title>
<para>
- The headers files that you need to use the interface are in the
- <filename>include/yaz</filename> directory. They are called
- <filename>statserv.h</filename> and <filename>backend.h</filename>. They
- will include other files from the <filename>include/yaz</filename>
- directory, so you'll probably want to use the -I option of your
- compiler to tell it where to find the files. When you run
- <literal>make</literal> in the toplevel &yaz; directory,
- everything you need to create your server is put the
- <filename>lib/libyaz.a</filename> library.
+ The header file that you need to use the interface are in the
+ <filename>include/yaz</filename> directory. It's called
+ <filename>backend.h</filename>. It will include other files from
+ the <filename>include/yaz</filename> directory, so you'll
+ probably want to use the -I option of your compiler to tell it
+ where to find the files. When you run
+ <literal>make</literal> in the top-level &yaz; directory,
+ everything you need to create your server is to link with the
+ <filename>lib/libyaz.la</filename> library.
</para>
</sect1>
- <sect1><title>Your main() Routine</title>
+ <sect1 id="server.main"><title>Your main() Routine</title>
<para>
As mentioned, your <function>main()</function> routine can be quite brief.
<varlistentry><term>
<literal>void (*bend_stop)(struct statserv_options_block *p)</literal>
</term>
- <listitem><para>Pointer to function which is called whenver the server
+ <listitem><para>Pointer to function which is called whenever the server
has stopped listening for incoming connections. This function pointer
has a default value of NULL in which case it isn't called.
When the server operates as an NT service this handler is called
</note>
</sect1>
- <sect1><title>The Backend Functions</title>
+ <sect1 id="server.backendfunctions"><title>The Backend Functions</title>
<para>
For each service of the protocol, the backend interface declares one or
<sect2><title>Search and retrieve</title>
<para>We now describe the handlers that are required to support search -
- and retrieve. You must support two functions - one for seearch - and one
+ and retrieve. You must support two functions - one for search - and one
for fetch (retrieval of one record). If desirable you can provide a
third handler which is called when a present request is received which
allows you to optimize retrieval of multiple-records.
<sect2><title>Delete</title>
<para>
- For backends that supports delete of a result set only one handler
+ For back-ends that supports delete of a result set only one handler
must be defined.
</para>
</sect2>
</sect1>
- <sect1><title>Application Invocation</title>
+ <sect1 id="server.invocation"><title>Application Invocation</title>
<para>
The finished application has the following
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document: "yaz.xml"
- sgml-local-catalogs: "../../docbook/docbook.cat"
+ sgml-local-catalogs: nil
sgml-namecase-general:t
End:
-->