-<!-- $Id: tools.xml,v 1.5 2001-08-13 09:42:54 adam Exp $ -->
- <chapter><title>Supporting Tools</title>
+<!-- $Id: tools.xml,v 1.8 2001-10-24 20:12:36 adam Exp $ -->
+ <chapter id="tools"><title>Supporting Tools</title>
<para>
In support of the service API - primarily the ASN module, which
a collection of tools that support the development of applications.
</para>
- <sect1><title>Query Syntax Parsers</title>
+ <sect1 id="tools.query"><title>Query Syntax Parsers</title>
<para>
Since the type-1 (RPN) query structure has no direct, useful string
AttributeType ::= integer.
- AttributeValue ::= integer.
+ AttributeValue ::= integer || string.
Complex ::= Operator QueryStruct QueryStruct.
</para>
<para>
- The EUROPAGATE research project working under the Libraries programme
+ The <ulink url="http://europagate.dtv.dk/">EUROPAGATE</ulink>
+ research project working under the Libraries programme
of the European Commission's DG XIII has, amongst other useful tools,
implemented a general-purpose CCL parser which produces an output
structure that can be trivially converted to the internal RPN
- representation of YAZ (The <literal>Z_RPNQuery</literal> structure).
+ representation of &yaz; (The <literal>Z_RPNQuery</literal> structure).
Since the CCL utility - along with the rest of the software
- produced by EUROPAGATE - is made freely available on a liberal license, it
- is included as a supplement to YAZ.
+ produced by EUROPAGATE - is made freely available on a liberal
+ license, it is included as a supplement to &yaz;.
</para>
<sect3><title>CCL Syntax</title>
</sect3>
</sect2>
</sect1>
- <sect1><title>Object Identifiers</title>
+ <sect1 id="tools.oid"><title>Object Identifiers</title>
<para>
The basic YAZ representation of an OID is an array of integers,
</sect1>
- <sect1><title>Nibble Memory</title>
+ <sect1 id="tools.nmem"><title>Nibble Memory</title>
<para>
Sometimes when you need to allocate and construct a large,
void nmem_reset(NMEM n);
int nmem_total(NMEM n);
void nmem_init(void);
+ void nmem_exit(void);
</screen>
<para>
allocated on the handle.
</para>
- <note>
- <para>
- The nibble memory pool is shared amongst threads. POSIX
- mutex'es and WIN32 Critical sections are introduced to keep the
- module thread safe. On WIN32 function <function>nmem_init()</function>
- initializes the Critical Section handle and should be called once
- before any other nmem function is used.
- </para>
- </note>
+ <para>
+ The nibble memory pool is shared amongst threads. POSIX
+ mutex'es and WIN32 Critical sections are introduced to keep the
+ module thread safe. Function <function>nmem_init()</function>
+ initializes the nibble memory library and it is called automatically
+ the first time the <literal>YAZ.DLL</literal> is loaded. &yaz; uses
+ function <function>DllMain</function> to achieve this. You should
+ <emphasis>not</emphasis> call <function>nmem_init</function> or
+ <function>nmem_exit</function> unless you're absolute sure what
+ you're doing. Note that in previous &yaz; versions you'd have to call
+ <function>nmem_init</function> yourself.
+ </para>
</sect1>
</chapter>