<?xml version="1.0" encoding="UTF-8"?>
<?oxygen RNGSchema="http://www.oasis-open.org/docbook/xml/5.0/rng/docbookxi.rng" type="xml"?>
<article xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude"
    version="5.0">
    <title>AuxUtils</title>
    <subtitle>Manual</subtitle>
    <info>
        <author>
            <orgname>Majoron</orgname>
            <uri>www.majoron.com</uri>
            <email>manual@majoron.com</email>
        </author>
        <copyright>
            <year>2007</year>
            <holder>Majoron.com</holder>
        </copyright>
        <revhistory>
            <revision>
                <revnumber>1.0</revnumber>
                <date>2007.11.14</date>
                <revdescription>
                    <para>First published revision</para>
                </revdescription>
            </revision>
        </revhistory>
    </info>
    <sect1>
        <title>Chapter 1. Introduction</title>
        <sect2 xml:id="AuxUtils">
            <title>Overview</title>
            <para>The project AuxUtils is an auxiliary C++ library that implements the functionality
                which doesn't exists or had limitations in the Boost libraries. The library provides
                some efficient functions and templates, wrap some platforms dependent functions.</para>
            <para>Officially supported platforms are Windows, and Linux. The AuxUtils library may be
                ported to other platforms by demand.</para>
            <para>Supported language is C++. </para>
        </sect2>
        <sect2>
            <title>Scope of this document</title>
            <para>This document describes version 1.0 of the AuxUtils library. It has list the goals
                and objectives to archive, contains library implementation overview and a few
                examples and tutorials in order to begin to use library in application easy. </para>
        </sect2>
        <sect2>
            <title>Target audience</title>
            <para>AuxUtils library intended for designed and developers of the software applications
                that have some restriction or limitation at Boost functionality, which AuxUtils is
                eliminated.</para>
        </sect2>
        <glossary>
            <title>Glossary</title>
            <glossentry>
                <glossterm>EPT</glossterm>
                <glossdef>
                    <para>Effective Programming Templates</para>
                </glossdef>
            </glossentry>
            <glossentry>
                <glossterm>IO</glossterm>
                <glossdef>
                    <para>Input output</para>
                </glossdef>
            </glossentry>
            <glossentry>
                <glossterm>IPC</glossterm>
                <glossdef>
                    <para>Inter process communication</para>
                </glossdef>
            </glossentry>
        </glossary>
        <bibliography>
            <title>References</title>
            <biblioentry xreflabel="1" xml:id="AuxUtilsAPIs" role="article">
                <title>AuxUtils Doxygen APIs. Majoron (www.majoron.com). Available at
                    www.majoron.com.</title>
            </biblioentry>
            <biblioentry xreflabel="2" xml:id="AuxUtilsDoc" role="article">
                <title>AuxUtils Documentation. Majoron (www.majoron.com). Available at
                    www.majoron.com.</title>
            </biblioentry>
        </bibliography>
    </sect1>
    <sect1>
        <title>Chapter 2. Installing AuxUtils</title>
        <para>This section describes how to obtain and install AuxUtils library. A summary of the
            procedure follows and later sections provide the details. </para>
        <sect2>
            <title>General installation issues</title>
            <para>The AuxUtils installation procedure depends on distribution package type and
                platforms on which distribution you will install.</para>
            <para>The immediate following sections contain the information necessary to choose,
                download and verify you distribution. The instructions in the later sections
                describe how to install the distribution that you choose. For binary distributions,
                see the instructions at section "Installation from binaries" for appropriate
                operation system or installation type (RPM or DEB). To build AuxUtils from source
                codes see the instruction at section "Installation from sources" for appropriate
                operation system. To install AuxUtils from development tree see the instruction at
                section "Installation from development tree". </para>
            <sect3>
                <title>Supported operation systems</title>
                <para>Officially supported platforms are: <itemizedlist>
                        <listitem>
                            <para>Windows </para>
                        </listitem>
                        <listitem>
                            <para>Linux </para>
                        </listitem>
                    </itemizedlist>
                </para>
                <para>GNU Autoconf and Automake are used to build AuxUtils on Unix-like operation
                    systems, so it is possible to port AuxUtils to all moderns operation systems
                    that have a C++ compiler and dependent packages. </para>
            </sect3>
            <sect3>
                <title>How to get AuxUtils</title>
                <para>Check out our download page at www.majoron.com for information about the
                    current version binary or source distributions and for downloading instructions.
                    You can download these packages from primary site www.majoron.com or select
                    appropriate mirrors at www.sourceforge.net.</para>
                <para>Obtaining the development three isn't possible for now. But will be added in
                    the nearest future.</para>
            </sect3>
            <sect3>
                <title>Verifying the package integrity</title>
                <para>After you have downloaded the AuxUtils package that suits you needs and before
                    you attempt to install it, you should make sure that it is intact and has not
                    been tampered with. There are a few means of the integrity checking: <itemizedlist>
                        <listitem>
                            <para>MD5 checksums</para>
                        </listitem>
                        <listitem>
                            <para>For RPM packages, the built-in RPM integrity verification
                                mechanism</para>
                        </listitem>
                    </itemizedlist>
                </para>
                <sect4>
                    <title>Verifying MD5 checksums</title>
                    <para>After you have downloaded a AuxUtils package, you should make sure that
                        its MD5 checksum matches the one provided on the AuxUtils download pages.
                        Each package has an individual checksum that you can verify with the
                        following command, where package_name is the name of the package you
                        downloaded:</para>
                    <para>
                        <code>shell> md5sum package_name</code>
                    </para>
                    <example>
                        <title>Verifying MD5 checksums</title>
                        <literallayout><code><![CDATA[
shell>md5sum libAuxUtils-src-1.0.0.tar.bz2
shell> aaab65abbec64d5e907dcd41b8699945 AuxUtils-src-1.0.0.tar.bz2                                
]]></code></literallayout>
                    </example>
                    <para>You should verify that the resulting checksum (the string of hexadecimal
                        digits) matches the one displayed on the download page immediately below the
                        respective package.</para>
                    <para>Note that not all operating systems support the md5sum command. On some,
                        it is simply called md5, and others do not ship it at all. On Linux, it is
                        part of the GNU Text Utilities package, which is available for a wide range
                        of platforms. You can download the source code from
                        http://www.gnu.org/software/textutils/ as well. If you have OpenSSL
                        installed, you can use the command openssl md5 package_name instead. A
                        Windows implementation of the md5 command line utility is available from
                        http:// www.fourmilab.ch/md5/. winMd5Sum is a graphical MD5 checking tool
                        that can be obtained from http://
                        www.nullriver.com/index/products/winmd5sum.</para>
                </sect4>
                <sect4>
                    <title>Signature checking using RPM</title>
                    <para>For RPM packages, there is no separate signature. RPM packages have a
                        built-in GPG signature and MD5 checksum. You can verify a package by running
                        the following command::</para>
                    <para>
                        <code>shell> rpm --checksig package_name.rpm</code>
                    </para>
                    <example>
                        <title>Signature checking using RPM</title>
                        <literallayout><code><![CDATA[
shell> rpm --checksig libAuxUtils-1.0-linux-2.6-intel.rpm 
libAuxUtils-1.0-linux-2.6-intel.rpm: sha1 md5 OK 
]]></code></literallayout>
                    </example>
                </sect4>
            </sect3>
        </sect2>
        <sect2>
            <title>Installation layouts</title>
            <para>This section describe the default layout of the directories created by installing
                binary or source distributions provided at Majoron. A distributions provided by
                another vendor might use layout different from those shown here.</para>
            <sect3>
                <title>Windows installation layouts</title>
                <para> Denote AUXUTILS_ROOT as installation directory of the AuxUtils project. The
                    installation directory has the following subdirectories: <table>
                        <title>Windows installation layouts</title>
                        <tgroup cols="2">
                            <thead>
                                <row>
                                    <entry>Directory</entry>
                                    <entry>Content of the directory</entry>
                                </row>
                            </thead>
                            <tbody>
                                <row>
                                    <entry>AUXUTILS_ROOT/docs</entry>
                                    <entry>AuxUtils documentation.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/include</entry>
                                    <entry>Header files to include at you projects.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/include/dynmod</entry>
                                    <entry>Header files to work with dynamical modules.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/include/ept</entry>
                                    <entry>Header files to work thread pools, timers and object
                                        pools.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/include/io</entry>
                                    <entry>Header files to work with IO routines.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/include/ipc</entry>
                                    <entry>Header files to work with IPC routines.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/include/utils</entry>
                                    <entry>Header files that contains some utilities.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/lib</entry>
                                    <entry>Libraries files to link with you applications.</entry>
                                </row>
                            </tbody>
                        </tgroup>
                    </table>
                </para>
            </sect3>
            <sect3>
                <title>Unix-like installation layouts</title>
                <para> On Unix-like operation systems sources distribution after building and
                    installing, binary distribution and RPM or DEB distributions after installing
                    create similar directory layouts.By default, but you can configure installation
                    location, the installation step installs files under /usr/local, in the
                    following subdirectories: <table>
                        <title>Unix-like installation layouts</title>
                        <tgroup cols="2">
                            <thead>
                                <row>
                                    <entry>Directory</entry>
                                    <entry>Content of the directory</entry>
                                </row>
                            </thead>
                            <tbody>
                                <row>
                                    <entry>/usr/local/include/AuxUtils</entry>
                                    <entry>Header files to include at you projects.</entry>
                                </row>
                                <row>
                                    <entry>/usr/local/include/AuxUtils/dynmod</entry>
                                    <entry>Header files to work with dynamical modules.</entry>
                                </row>
                                <row>
                                    <entry>/usr/local/include/AuxUtils/ept</entry>
                                    <entry>Header files to work thread pools, timers and object
                                        pools.</entry>
                                </row>
                                <row>
                                    <entry>/usr/local/include/AuxUtils/io</entry>
                                    <entry>Header files to work with IO routines.</entry>
                                </row>
                                <row>
                                    <entry>/usr/local/include/AuxUtils/ipc</entry>
                                    <entry>Header files to work with IPC routines.</entry>
                                </row>
                                <row>
                                    <entry>/usr/local/include/AuxUtils/utils</entry>
                                    <entry>Header files that contains some utilities.</entry>
                                </row>
                                <row>
                                    <entry>/usr/local/lib/AuxUtils</entry>
                                    <entry>Libraries files to link with you applications.</entry>
                                </row>
                            </tbody>
                        </tgroup>
                    </table>
                </para>
            </sect3>
            <sect3>
                <title>Sources distribution layouts</title>
                <para> After extracting a sources distribution to AUXUTILS_ROOT, it will have the
                    following subdirectories: <table>
                        <title>Sources distribution layouts</title>
                        <tgroup cols="2">
                            <thead>
                                <row>
                                    <entry>Directory</entry>
                                    <entry>Content of the directory</entry>
                                </row>
                            </thead>
                            <tbody>
                                <row>
                                    <entry>AUXUTILS_ROOT/AuxUtils/</entry>
                                    <entry>AuxUtils project files needed to use it in own
                                    projects.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Documents/</entry>
                                    <entry>AuxUtils manual and others documentations.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/</entry>
                                    <entry>Code snippets of the usage AuxUtils library..</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/TestDynmod/</entry>
                                    <entry>The simplest dynamical module to test AuxUtils
                                    library.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/UnitTests/</entry>
                                    <entry>Unit test to check AuxUtils library.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Workspaces/</entry>
                                    <entry>Workspaces for building projects.</entry>
                                </row>
                            </tbody>
                        </tgroup>
                    </table>
                </para>

                <para> To use AuxUtils at you project you need files located at
                    AUXUTILS_ROOT/AuxUtils and has the following subdirectories: <table>
                        <title>AuxUtils layouts</title>
                        <tgroup cols="2">
                            <thead>
                                <row>
                                    <entry>Directory</entry>
                                    <entry>Content of the directory</entry>
                                </row>
                            </thead>
                            <tbody>
                                <row>
                                    <entry>AUXUTILS_ROOT/AuxUtils/docs</entry>
                                    <entry>Doxygen files to create APIs.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/AuxUtils/include</entry>
                                    <entry>Header files to include at you projects.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/AuxUtils/include/dynmod</entry>
                                    <entry>Header files to work with dynamical modules.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/AuxUtils/include/ept</entry>
                                    <entry>Header files to work thread pools, timers and object
                                        pools.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/AuxUtils/include/io</entry>
                                    <entry>Header files to work with IO routines.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/AuxUtils/include/ipc</entry>
                                    <entry>Header files to work with IPC routines.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/AuxUtils/include/utils</entry>
                                    <entry>Header files that contains some utilities.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/AuxUtils/res</entry>
                                    <entry>Resources file dependents on operation system.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/AuxUtils/src</entry>
                                    <entry>Source files of the AuxUtils project.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/AuxUtils/src/dynmod</entry>
                                    <entry>Source files to work with dynamical modules.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/AuxUtils/src/ept</entry>
                                    <entry>Source files to work thread pools, timers and object
                                        pools.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/AuxUtils/src/io</entry>
                                    <entry>Source files to work with IO routines.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/AuxUtils/src/ipc</entry>
                                    <entry>Source files to work with IPC routines.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/AuxUtils/src/utils</entry>
                                    <entry>Source files that contains some utilities.</entry>
                                </row>
                            </tbody>
                        </tgroup>
                    </table>
                </para>
                <para> Code snippets how to use AuxUtils located at AUXUTILS_ROOT/Snippets and has
                    the following subdirectories: <table>
                        <title>Snippets layouts (part I)</title>
                        <tgroup cols="2">
                            <thead>
                                <row>
                                    <entry>Directory</entry>
                                    <entry>Content of the directory</entry>
                                </row>
                            </thead>
                            <tbody>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/ByteBuffer</entry>
                                    <entry>ByteBuffer snippet.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/ByteBuffer/docs</entry>
                                    <entry>Doxygen files to create APIs.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/ByteBuffer/include</entry>
                                    <entry>Header files of the snippet.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/ByteBuffer/res</entry>
                                    <entry>Resources file dependents on operation system.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/ByteBuffer/src</entry>
                                    <entry>Sources file of the snippet.</entry>
                                </row>

                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/DynamicModule</entry>
                                    <entry>DynamicModule snippet.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/DynamicModule/docs</entry>
                                    <entry>Doxygen files to create APIs.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/DynamicModule/include</entry>
                                    <entry>Header files of the snippet.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/DynamicModule/res</entry>
                                    <entry>Resources file dependents on operation system.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/DynamicModule/src</entry>
                                    <entry>Sources file of the snippet.</entry>
                                </row>

                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/ObjectPool</entry>
                                    <entry>ObjectPool snippet.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/ObjectPool/docs</entry>
                                    <entry>Doxygen files to create APIs.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/ObjectPool/include</entry>
                                    <entry>Header files of the snippet.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/ObjectPool/res</entry>
                                    <entry>Resources file dependents on operation system.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/ObjectPool/src</entry>
                                    <entry>Sources file of the snippet.</entry>
                                </row>

                            </tbody>
                        </tgroup>
                    </table>
                    <table>
                        <title>Snippets layouts (part II)</title>
                        <tgroup cols="2">
                            <thead>
                                <row>
                                    <entry>Directory</entry>
                                    <entry>Content of the directory</entry>
                                </row>
                            </thead>
                            <tbody>

                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/OSProcess</entry>
                                    <entry>OSProcess snippet.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/OSProcess/docs</entry>
                                    <entry>Doxygen files to create APIs.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/OSProcess/include</entry>
                                    <entry>Header files of the snippet.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/OSProcess/res</entry>
                                    <entry>Resources file dependents on operation system.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/OSProcess/src</entry>
                                    <entry>Sources file of the snippet.</entry>
                                </row>

                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/PipedStream</entry>
                                    <entry>PipedStream snippet.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/PipedStream/docs</entry>
                                    <entry>Doxygen files to create APIs.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/PipedStream/include</entry>
                                    <entry>Header files of the snippet.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/PipedStream/res</entry>
                                    <entry>Resources file dependents on operation system.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/PipedStream/src</entry>
                                    <entry>Sources file of the snippet.</entry>
                                </row>

                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/SequenceGenerator</entry>
                                    <entry>SequenceGenerator snippet.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/SequenceGenerator/docs</entry>
                                    <entry>Doxygen files to create APIs.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/SequenceGenerator/include</entry>
                                    <entry>Header files of the snippet.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/SequenceGenerator/res</entry>
                                    <entry>Resources file dependents on operation system.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/SequenceGenerator/src</entry>
                                    <entry>Sources file of the snippet.</entry>
                                </row>

                            </tbody>
                        </tgroup>
                    </table>
                    <table>
                        <title>Snippets layouts (part III)</title>
                        <tgroup cols="2">
                            <thead>
                                <row>
                                    <entry>Directory</entry>
                                    <entry>Content of the directory</entry>
                                </row>
                            </thead>
                            <tbody>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/SharedCondition</entry>
                                    <entry>SharedCondition snippet.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/SharedCondition/docs</entry>
                                    <entry>Doxygen files to create APIs.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/SharedCondition/include</entry>
                                    <entry>Header files of the snippet.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/SharedCondition/res</entry>
                                    <entry>Resources file dependents on operation system.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/SharedCondition/src</entry>
                                    <entry>Sources file of the snippet.</entry>
                                </row>

                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/SharedMemory</entry>
                                    <entry>SharedMemory snippet.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/SharedMemory/docs</entry>
                                    <entry>Doxygen files to create APIs.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/SharedMemory/include</entry>
                                    <entry>Header files of the snippet.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/SharedMemory/res</entry>
                                    <entry>Resources file dependents on operation system.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/SharedMemory/src</entry>
                                    <entry>Sources file of the snippet.</entry>
                                </row>

                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/SharedMutex</entry>
                                    <entry>SharedMutex snippet.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/SharedMutex/docs</entry>
                                    <entry>Doxygen files to create APIs.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/SharedMutex/include</entry>
                                    <entry>Header files of the snippet.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/SharedMutex/res</entry>
                                    <entry>Resources file dependents on operation system.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/SharedMutex/src</entry>
                                    <entry>Sources file of the snippet.</entry>
                                </row>



                            </tbody>
                        </tgroup>
                    </table>
                    <table>
                        <title>Snippets layouts (part IV)</title>
                        <tgroup cols="2">
                            <thead>
                                <row>
                                    <entry>Directory</entry>
                                    <entry>Content of the directory</entry>
                                </row>
                            </thead>
                            <tbody>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/SharedSemaphore</entry>
                                    <entry>SharedSemaphore snippet.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/SharedSemaphore/docs</entry>
                                    <entry>Doxygen files to create APIs.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/SharedSemaphore/include</entry>
                                    <entry>Header files of the snippet.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/SharedSemaphore/res</entry>
                                    <entry>Resources file dependents on operation system.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/SharedSemaphore/src</entry>
                                    <entry>Sources file of the snippet.</entry>
                                </row>

                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/ThreadPool</entry>
                                    <entry>ThreadPool snippet.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/ThreadPool/docs</entry>
                                    <entry>Doxygen files to create APIs.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/ThreadPool/include</entry>
                                    <entry>Header files of the snippet.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/ThreadPool/res</entry>
                                    <entry>Resources file dependents on operation system.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/ThreadPool/src</entry>
                                    <entry>Sources file of the snippet.</entry>
                                </row>

                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/Timer</entry>
                                    <entry>Timer snippet.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/Timer/docs</entry>
                                    <entry>Doxygen files to create APIs.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/Timer/include</entry>
                                    <entry>Header files of the snippet.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/Timer/res</entry>
                                    <entry>Resources file dependents on operation system.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Snippets/Timer/src</entry>
                                    <entry>Sources file of the snippet.</entry>
                                </row>

                            </tbody>
                        </tgroup>
                    </table>
                </para>

                <para> The simplest dynamical module is located at AUXUTILS_ROOT/TestDynmod and has
                    the following subdirectories: <table>
                        <title>TestDynmod layouts</title>
                        <tgroup cols="2">
                            <thead>
                                <row>
                                    <entry>Directory</entry>
                                    <entry>Content of the directory</entry>
                                </row>
                            </thead>
                            <tbody>
                                <row>
                                    <entry>AUXUTILS_ROOT/TestDynmod/docs</entry>
                                    <entry>Doxygen files to create APIs.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/TestDynmod/include</entry>
                                    <entry>Header files to include at you projects.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/TestDynmod/res</entry>
                                    <entry>Resources file dependents on operation system.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/TestDynmod/src</entry>
                                    <entry>Sources file of the AuxUtils project.</entry>
                                </row>
                            </tbody>
                        </tgroup>
                    </table>
                </para>
                <para> Unit tests to verify library located at AUXUTILS_ROOT/UnitTests and has the
                    following subdirectories: <table>
                        <title>UnitTest layouts</title>
                        <tgroup cols="2">
                            <thead>
                                <row>
                                    <entry>Directory</entry>
                                    <entry>Content of the directory</entry>
                                </row>
                            </thead>
                            <tbody>
                                <row>
                                    <entry>AUXUTILS_ROOT/UnitTests/docs</entry>
                                    <entry>Doxygen files to create APIs.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/UnitTests/include</entry>
                                    <entry>Header files to include at you projects.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/UnitTests/res</entry>
                                    <entry>Resources file dependents on operation system.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/UnitTests/src</entry>
                                    <entry>Sources file of the AuxUtils project.</entry>
                                </row>

                            </tbody>
                        </tgroup>
                    </table>
                </para>

                <para> Workspaces to build library from source located at AUXUTILS_ROOT/Worspaces
                    and has the following subdirectories: <table>
                        <title>Workspaces layouts</title>
                        <tgroup cols="2">
                            <thead>
                                <row>
                                    <entry>Directory</entry>
                                    <entry>Content of the directory</entry>
                                </row>
                            </thead>
                            <tbody>
                                <row>
                                    <entry>AUXUTILS_ROOT/Workspaces/autotools</entry>
                                    <entry>Workspaces for building projects by GNU Autoconf and
                                        Automake tools.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Workspaces/distrib</entry>
                                    <entry>Workspaces for building projects and create distribution
                                        packages.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Workspaces/eclipse</entry>
                                    <entry>Workspaces for building projects by Eclipse development
                                        IDE.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Workspaces/msvc8</entry>
                                    <entry>Workspaces for building projects by MSVC 8.x.</entry>
                                </row>
                                <row>
                                    <entry>AUXUTILS_ROOT/Workspaces/msvc9</entry>
                                    <entry>Workspaces for building projects by MSVC 9.x.</entry>
                                </row>
                            </tbody>
                        </tgroup>
                    </table>
                </para>
            </sect3>
        </sect2>
        <sect2>
            <title>Installation from binaries</title>
            <para>The immediate following sections describe how to install AuxUtils library from
                binary distribution under different platforms.</para>
            <sect3>
                <title>Windows installation from binaries</title>
                <para>Unpack distribution package using archivator, for example WinZip, to
                    destination directory.</para>
            </sect3>
            <sect3>
                <title>Unix-like installation from binaries</title>
                <para>Unpack distribution package using archivator to destination directory. You can
                    use tar command to unpack distribution, where pachage_am is the name of the
                    package you downloaded.</para>
                <para>
                    <code>shell> tar -xjvf package_name</code>
                </para>
                <example>
                    <title>Unpacking binaries</title>
                    <literallayout><code><![CDATA[
shell>tar -xjvf libAuxUtils-bin-linux-i386-1.0.0.tar.bz2
]]></code></literallayout>
                </example>
            </sect3>
            <sect3>
                <title>Unix-like installation from RPM</title>
                <para>The recommended way to install AuxUtils on RPM-based Linux distributions is by
                    using the RPM packages. The RPMs provided by Majoron to the community should
                    work on all versions of Linux that support RPM packages. To obtain RPM packages,
                    see section "How to get AuxUtils".</para>
                <para>To install RPM distribution you can use rpm command, where package_name is the
                    name of the package you downloaded:</para>
                <para>
                    <code>shell> rpm -i package_name</code>
                </para>
                <example>
                    <title>Installation from RPM</title>
                    <literallayout><code><![CDATA[
shell>rmp -i libAuxUtils-1.0-linux-2.6-intel.rpm
]]></code></literallayout>
                </example>
                <example>
                    <title>Viewing the content of the RPM</title>
                    <literallayout><code><![CDATA[
shell>rmp -qpl libAuxUtils-1.0-linux-2.6-intel.rpm
]]></code></literallayout>
                </example>
            </sect3>
            <sect3>
                <title>Unix-like installation from DEB</title>
                <para>The recommended way to install AuxUtils on DEB-based Linux distributions is by
                    using the DEB packages. The DEBs provided by Majoron to the community should
                    work on all versions of Linux that support DEB packages. To obtain DEB packages,
                    see section "How to get AuxUtils".</para>
                <para>To install DEB distribution you can use dpkg command, where package_name is
                    the name of the package you downloaded:</para>
                <para>
                    <code>shell> dpk - i package_name</code>
                </para>
                <example>
                    <title>Installation from DEB</title>
                    <literallayout><code><![CDATA[
shell>dpkg -i libAuxUtils-1.0-linux-2.6-intel.deb
]]></code></literallayout>
                </example>
                <example>
                    <title>Viewing the content of the DEB</title>
                    <literallayout><code><![CDATA[
shell>dkpg -l libAuxUtils-1.0-linux-2.6-intel.deb
]]></code></literallayout>
                </example>
            </sect3>
        </sect2>
        <sect2>
            <title>Installation from sources</title>
            <para>The immediate following sections describe how to build and install AuxUtils
                library from source distribution under different platforms.</para>
            <sect3>
                <title>Windows installation from sources</title>
                <para>Unpack distribution package using archivator, for example WinZip, to
                    destination directory. After unpacking distribution you need a build library. In
                    order to do it, select suitable projects file from Workspaces directory and
                    build library. </para>
            </sect3>
            <sect3>
                <title>Unix-like installation from sources</title>
                <para>Unpack distribution package using archivator to destination directory. You can
                    use tar command to unpack distribution, where pachage_am is the name of the
                    package you downloaded.</para>
                <para>
                    <code>shell> tar -xjvf package_name</code>
                </para>
                <example>
                    <title>Unpacking sources</title>
                    <literallayout><code><![CDATA[
shell>tar -xjvf libAuxUtils-src-1.0.0.tar.bz2
]]></code></literallayout>
                </example>
                <para>After unpacking a distribution package you need to build it. To do it use GNU
                    Autoconf and Automake files that located at Worspaces/autotools directory. After
                    a building you may optionally to install header files and libraries.</para>
            </sect3>
            <sect3>
                <title>Typical configure options</title>
                <para>
                    <table>
                        <title>Typical configure options</title>
                        <tgroup cols="2">
                            <thead>
                                <row>
                                    <entry>Configure option</entry>
                                    <entry>Option description</entry>
                                </row>
                            </thead>
                            <tbody>
                                <row>
                                    <entry>--enable-debug</entry>
                                    <entry>Building a binaries with debug information.</entry>
                                </row>
                                <row>
                                    <entry>--with-cppflags</entry>
                                    <entry>User specific compiler's flags.</entry>
                                </row>
                                <row>
                                    <entry>--with-ldflags</entry>
                                    <entry>User specific linker's flags.</entry>
                                </row>
                            </tbody>
                        </tgroup>
                    </table>
                </para>
            </sect3>
        </sect2>
        <sect2>
            <title>Installation from development tree</title>
            <para>Obtaining the development three and hence installation based on development three
                isn't possible for now. But will be added in the nearest future.</para>
        </sect2>
        <sect2>
            <title>Post-installation procedures</title>
            <sect3>
                <title>Executing unit tests</title>
                <para>Unit tests can be executed in follow ways: <itemizedlist>
                        <listitem>
                            <para>Single unit tests.</para>
                        </listitem>
                        <listitem>
                            <para>All unit tests.</para>
                        </listitem>
                        <listitem>
                            <para>Repeatedly execution.</para>
                        </listitem>
                    </itemizedlist>
                </para>
                <para>Place here informatin how to execute single test.</para>
                <para>Place here informatin how to execute unit tests.</para>
                <para>Place here informatin how to execute stress testing.</para>
            </sect3>
        </sect2>
        <sect2>
            <title>How to report a bug or problem</title>
            <para>Before posting a bug report about a problem, please try to verify that it is a bug
                and that it has not been reported already: <itemizedlist>
                    <listitem>
                        <para>Start by searching the AuxUtils online manual at www.majoron.com. We
                            try to keep the manual up to date by updating it frequently with
                            solutions to newly found problems. The change history located at
                            www.majoron.com can be particularly useful since it is quite possible
                            that a newer version contains a solution to your problem.</para>
                    </listitem>
                    <listitem>
                        <para>For solutions to some common problems, see chapter 7: "Problems and
                            common errors". This chapter contains information about well-known
                            problems.</para>
                    </listitem>
                    <listitem>
                        <para>Search the bugs database at www.majoron.com to see whether the bug has
                            been reported and fixed.</para>
                    </listitem>
                    <listitem>
                        <para>Search the forums database at www.majoron.com to see related threads.
                            Here you could discuss the problems with other user and get a
                        help.</para>
                    </listitem>
                </itemizedlist>
            </para>
            <para> If you can't find an answer in the manual, the bugs database, or the forum,
                please use the following guidelines for reporting the bug. The normal way to report
                bugs is to visit www.majoron.com/, which is the address for our bugs database. This
                database is public and can be browsed and searched by anyone. If you log in to the
                system, you can enter new reports to the bugs database. </para>
            <para> Writing a good bug report takes patience, but doing it right the first time saves
                time both for us and for yourself. A good bug report, containing a full test case
                for the bug, makes it very likely that we will fix the bug in the next release. This
                section helps you write your report correctly so that you don't waste your time
                doing things that may not help us much or at all. Please read this section carefully
                and make sure that all the information described here is included in your report. </para>

            <para> It is most helpful when a good description of the problem is included in the bug
                report. That is, give a good example of everything you did that led to the problem
                and describe, in exact detail, the problem itself. The best reports are those that
                include a full example showing how to reproduce the bug or problem. </para>

            <para> Remember that it is possible for us to respond to a report containing too much
                information, but not to one containing too little. People often omit facts because
                they think they know the cause of a problem and assume that some details don't
                matter. A good principle to follow is that if you are in doubt about stating
                something, state it. It is faster and less troublesome to write a couple more lines
                in your report than to wait longer for the answer if we must ask you to provide
                information that was missing from the initial report. </para>

            <para> The most common errors made in bug reports are (a) not including the version
                number of the AuxUtils distribution that you use, and (b) not fully describing the
                platform on which the AuxUtils library is installed (including the platform type and
                version number). These are highly relevant pieces of information, and in 99 cases
                out of 100, the bug report is useless without them. Very often we get questions
                like, “Why doesn't this work for me?” Then we find that the feature requested wasn't
                implemented in that AuxUtils version, or that a bug described in a report has been
                fixed in newer AuxUtils versions. Errors often are platform-dependent. In such
                cases, it is next to impossible for us to fix anything without knowing the operating
                system and the version number of the platform. </para>

            <para> If you compiled AuxUtils from source, remember also to provide information about
                your compiler if it is related to the problem. Often people find bugs in compilers
                and think the problem is AuxUtils-related. Most compilers are under development all
                the time and become better version by version. To determine whether your problem
                depends on your compiler, we need to know what compiler you used. Note that every
                compiling problem should be regarded as a bug and reported accordingly. </para>

            <para> Please include the following information in your report: <itemizedlist>
                    <listitem>
                        <para>The version number of the AuxUtils distribution you are using (for
                            example, AuxUtils-1.0). You can find out which version you are using at
                            the name of the distribution.</para>
                    </listitem>
                    <listitem>
                        <para>The manufacturer and model of the machine on which you experience the
                            problem.</para>
                    </listitem>
                    <listitem>
                        <para>The operating system name and version. If you work with Windows, you
                            can usually get the name and version number by double-clicking your My
                            Computer icon and pulling down the “Help/About Windows” menu. For most
                            Unix-like operating systems, you can get this information by executing
                            the command <command>uname -a</command>.</para>
                    </listitem>
                    <listitem>
                        <para>Sometimes the amount of memory (real and virtual) is relevant. If in
                            doubt, include these values.</para>
                    </listitem>
                    <listitem>
                        <para>If you are using a source distribution of the AuxUtils, include the
                            name and version number of the compiler that you used. If you have a
                            binary distribution, include the distribution name.</para>
                    </listitem>
                    <listitem>
                        <para>If the problem occurs during compilation, include the exact error
                            messages and also a few lines of context around the offending code in
                            the file where the error occurs.</para>
                    </listitem>
                    <listitem>
                        <para>If you have a patch for a bug, do include it. But don't assume that
                            the patch is all we need, or that we can use it, if you don't provide
                            some necessary information such as test cases showing the bug that your
                            patch fixes. We might find problems with your patch or we might not
                            understand it at all. If so, we can't use it. If we can't verify the
                            exact purpose of the patch, we won't use it. Test cases help us here.
                            Show that the patch handles all the situations that may occur. If we
                            find a borderline case (even a rare one) where the patch won't work, it
                            may be useless.</para>
                    </listitem>
                    <listitem>
                        <para>Guesses about what the bug is, why it occurs, or what it depends on
                            are usually wrong. Even the AuxUtils team can't guess such things
                            without first using a debugger to determine the real cause of a
                        bug.</para>
                    </listitem>
                    <listitem>
                        <para>If possible, download and install the most recent version of AuxUtils
                            and check whether it solves your problem. All versions of the AuxUtils
                            library are thoroughly tested and should work without problems. We
                            believe in making everything as backward-compatible as possible, and you
                            should be able to switch AuxUtils versions without difficulty. </para>
                    </listitem>
                </itemizedlist>
            </para>
        </sect2>
        <sect2>
            <title>How to report a feature request</title>
            <para>Before posting a feature request, please try to verify that it has not been
                reported already: <itemizedlist>
                    <listitem>
                        <para>See appendix: "Project Roadmap" to that feature request has not been
                            included at roadmap already. Also please visit online roadmap at
                            www.majoron.com to check at the latest version..</para>
                    </listitem>
                    <listitem>
                        <para>Search the forums database at www.majoron.com to see has this feature
                            request discussed already.</para>
                    </listitem>
                    <listitem>
                        <para>Search the bugs database at www.majoron.com to see has this feature
                            request discussed already.</para>
                    </listitem>
                </itemizedlist>
            </para>

            <para> In case this feature request is not included at roadmap yet and after researching
                the bugs database and forums you are sure that it is useful than submit it bugs
                database located at www.majoron.com. Don't forget setup Severity at enhancement
                value. Please include the following information in your feature request demand: <itemizedlist>
                    <listitem>
                        <para>Use case of the feature request. </para>
                    </listitem>
                    <listitem>
                        <para>Why do you think that it is a responsibility of the AuxUtils?</para>
                    </listitem>
                    <listitem>
                        <para>How are you going to use it?</para>
                    </listitem>
                    <listitem>
                        <para>Why do you think it will be useful for others users?</para>
                    </listitem>
                </itemizedlist>
            </para>
        </sect2>
    </sect1>
    <sect1>
        <title>Chapter 3. Library overview</title>
        <para>This chapter contains information about base library objects. It covers what exists at
            AuxUtils library and if necessary that it covers implementation topics. AuxUtils library
            consists a few parts, which are discussed in the following sections.</para>
        <sect2>
            <title>Dynamic module routines</title>
            <para>This section overview a dynamic modules routines implemented at AuxUtils.</para>
            <sect3>
                <title>Dynamic module overview</title>
                <para>Dynamic module routines server to load a dynamic module. The module is a
                    library that implemented as a dynamic(.dll) on Windows or shared(.so) on
                    Unix-like system library .</para>
                <para>The functionality implemented in a follow classes: <itemizedlist>
                        <listitem>
                            <para xml:id="IModule">
                                <emphasis role="bold">IModule</emphasis> This class declare
                                interface to work this dynamic module. </para>
                        </listitem>
                        <listitem>
                            <para xml:id="ModuleImpl">
                                <emphasis role="bold">ModuleImpl</emphasis> This class implements
                                interface to work with dynamic module which was declare at IModule.
                            </para>
                        </listitem>
                        <listitem>
                            <para xml:id="ModulesFactory">
                                <emphasis role="bold">ModulesFactory</emphasis> This class is a
                                module factory and serve to load specified module to get declare at
                                module interface. </para>
                        </listitem>
                    </itemizedlist>
                </para>
            </sect3>
        </sect2>
        <sect2>
            <title>EPT routines</title>
            <para>This section overview a EPT routines implemented at AuxUtils.</para>
            <sect3>
                <title>EPT overview</title>
                <para>EPT routines server to work with a times, thread pools and pool objects. These
                    routines allow to execute task on thread pool and subscribe timers.</para>
                <para>The functionality implemented in a follow classes: <itemizedlist>
                        <listitem>
                            <para xml:id="IObjectPoolItemFactory">
                                <emphasis role="bold">IObjectPoolItemFactory</emphasis> This class
                                is an interface to pol item factory. It is declare create, reset and
                                destroy interface. </para>
                        </listitem>
                        <listitem>
                            <para xml:id="ObjectPool">
                                <emphasis role="bold">ObjectPool</emphasis> Objects pool shares the
                                object instances for more efficiently using memory management.
                                Objects instance in pool are never recreated. </para>
                        </listitem>
                        <listitem>
                            <para xml:id="ObjectPoolPtrItemFactory">
                                <emphasis role="bold">ObjectPoolPtrItemFactory</emphasis> implement
                                IObjectPoolItemFactory interface to work with object which was
                                created at memory heap. </para>
                        </listitem>
                        <listitem>
                            <para xml:id="ThreadPool">
                                <emphasis role="bold">thread pool</emphasis> This class encapsulate
                                working with tasks. It allow to reserve a some threads to execute
                                specified task. Also it has functionality to manage increase and
                                decrease the quantity of the thread inside. Also it has flexible
                                mechanism to assign a specified task thread to reduce hardware
                                loading. </para>
                        </listitem>
                        <listitem>
                            <para xml:id="Timer">
                                <emphasis role="bold">Timer</emphasis> Class time implement itself
                                times and allow to work with times: create new timer, receive
                                notification about time-out and cancel subscribed before timer.
                            </para>
                        </listitem>
                    </itemizedlist>
                </para>
            </sect3>
        </sect2>
        <sect2>
            <title>IO routines</title>
            <para>This section overview a IO routines implemented at AuxUtils.</para>
            <sect3>
                <title>IO overview</title>
                <para>IO routines server to work with a data to transfers, streams.</para>
                <para>The functionality implemented in a follow classes: <itemizedlist>
                        <listitem>
                            <para xml:id="ByteArrayInputOutputStream">
                                <emphasis role="bold">ByteArrayInputOutputStream</emphasis> This
                                class implement IInputStream and IOutput stream interface. It is
                                convenient as duplex stream: it allow to read data from a stream and
                                write data into stream. Such types of the behaviour useful for using
                                in protocols tasks . </para>
                        </listitem>
                        <listitem>
                            <para xml:id="ByteBuffer">
                                <emphasis role="bold">ByteBuffer</emphasis> This class is a buffer
                                and has method to work with data inside: append new data or cut
                                current data and etc. Also it allow to manage increasing and
                                decreasing the memory consumption and reserving memory. This class
                                allow to work with external memory buffers or can manage own buffer
                                inside. </para>
                        </listitem>
                        <listitem>
                            <para xml:id="IInputStream">
                                <emphasis role="bold">IInputStream</emphasis> This class declare
                                interface to work with input stream. It allow to write a portions of
                                data into stream. It allow to write a portion of the data to stream.
                            </para>
                        </listitem>
                        <listitem>
                            <para xml:id="IOutputStream">
                                <emphasis role="bold">IOutputStream</emphasis> This class declare
                                interface to work with output stream. It allow to read a portion of
                                the data from stream. Also class declare appropriate interface to
                                check is it some data inside steam to read. </para>
                        </listitem>
                        <listitem>
                            <para xml:id="StreamReframer">
                                <emphasis role="bold">StreamReframer</emphasis> This class allow to
                                re framer a stream. For example one source send packets with size
                                1024Kb at network, but destination require packet with size at
                                2048Kb. There is a task to re framer received packets before sent.
                                This class allow to do it. </para>
                        </listitem>
                    </itemizedlist>
                </para>
            </sect3>
        </sect2>
        <sect2>
            <title>IPC routines</title>
            <para>This section overview a IPC routines implemented at AuxUtils.</para>
            <sect3>
                <title>IPC overview</title>
                <para>IPC routines server to work with a inter process communication. These routines
                    wrap primitives to work with a shared memory to cross platforms classes.</para>
                <para>The functionality implemented in a follow classes: <itemizedlist>
                        <listitem>
                            <para xml:id="SharedCondition">
                                <emphasis role="bold">SharedCondition</emphasis> This class
                                encapsulate shared condition inside. It has boost like interface to
                                work with. There isn't implementation at boos library such
                                synchronization primitive. </para>
                        </listitem>
                        <listitem>
                            <para xml:id="SharedMemory">
                                <emphasis role="bold">SharedMemory</emphasis>This class encapsulate
                                shared memory inside. It has boost like interface to work with.
                                There isn't implementation at boos library such synchronization
                                primitive. </para>
                        </listitem>
                        <listitem>
                            <para xml:id="SharedMutex">
                                <emphasis role="bold">SharedMutex</emphasis> This class encapsulate
                                shared mutex inside. It has boost like interface to work with. There
                                isn't implementation at boos library such synchronization primitive.
                            </para>
                        </listitem>
                        <listitem>
                            <para xml:id="SharedSemaphore">
                                <emphasis role="bold">SharedSemaphore</emphasis>This class
                                encapsulate shared semaphore inside. It has boost like interface to
                                work with. There isn't implementation at boos library such
                                synchronization primitive. </para>
                        </listitem>
                    </itemizedlist>
                </para>
            </sect3>
        </sect2>
        <sect2>
            <title>Utils routines</title>
            <para>This section overview a utility routines implemented at AuxUtils.</para>
            <sect3>
                <title>Utils overview</title>
                <para>Utils routines server to work with sequence generator, operation system
                    process and time.</para>
                <para>The functionality implemented in a follow classes: <itemizedlist>
                        <listitem>
                            <para xml:id="OSProcTools">
                                <emphasis role="bold">OSProcTools</emphasis> This routines
                                encapsulate working with processes and port across different
                                platforms. These routines allow to start new process and wait until
                                started before process will be finished. </para>
                        </listitem>
                        <listitem>
                            <para xml:id="OSTimeTools">
                                <emphasis role="bold">OSTimeTools</emphasis> This routines simplify
                                to working with boost time functions. They are adapters to boost on
                                which they are based. </para>
                        </listitem>
                        <listitem>
                            <para xml:id="SequenceGenerator">
                                <emphasis role="bold">SequenceGenerator</emphasis> This class is a
                                sequence generator to create new id. It is flexible to configure
                                strategy to receive a new identity. This allow to created new id one
                                by one, or with some gaps. As template parameter it accepted any
                                class which has right interface. Also this class has default
                                template parameter which implement default behaviour. </para>
                        </listitem>
                        <listitem>
                            <para xml:id="Version">
                                <emphasis role="bold">Version</emphasis> This class is an auxiliary
                                and allow to work with module versions. </para>
                        </listitem>
                    </itemizedlist>
                </para>
            </sect3>
        </sect2>
    </sect1>
    <sect1>
        <title>Snippets, examples and tutorials</title>
        <para>AuxUtils is a well-documented library. A lost of examples provided at [1] document.
            Also the good way to understand how these entities are working is unit test. Almost all
            functionality has appropriate unit test. This examples illustrate how to use a AuxUtils
            library at different aspects. Among examples are:</para>
        <sect2>
            <title>Snippets</title>
            <para>Place here information about snippets and where they coud be founded</para>
            <sect3>
                <title>Snippet ByteBuffer</title>
                <para>This snippet illustrates how to use byte buffer. The represantion for byte
                    buffer with the specified capacity and len. The capacity/len can be changed at
                    runtime without lost data.</para>
            </sect3>

            <sect3>
                <title>Snippet DynamicModule</title>
                <para> This snippet illustrates how to use dynamic module. Dynmod provide a support
                    for dynamically loading shared libraries with the specific implementation based
                    on standard API with versioning (checking API versions) and standard lifecycle
                    methods (single init &amp; finalization library, creating an instance of
                    object, looking up object by class name). </para>
            </sect3>

            <sect3>
                <title>Snippet ObjectPool</title>
                <para>This snippet illustrates how to use object pool. Objects pool shares the
                    object instances for more efficiently using memory management. Objects instance
                    in pool are never recreated.</para>
            </sect3>
            <sect3>
                <title>Snippet OSProcess</title>
                <para>This snippet illustrates how to use os processes. The snippet start a new
                    process asynchronous and wait until it is finished.</para>
            </sect3>
            <sect3>
                <title>Snippet PipedStream</title>
                <para>This snippet illustrates how to use piped io stream. Implementation of piped
                    I/O stream based on slices of byte arrays. This implementation able to put
                    ByteArray's and reading ByteArray's with the different lens. Block size per
                    slice can be specified in the constructor when creation instance</para>
            </sect3>
            <sect3>
                <title>Snippet SequenceGenerator</title>
                <para>This snippet illustrates how to use sequence generator. A simple sequence
                    generator are used for generate integral identifiers. Current implementation
                    able to create the simple unbounded generator (bounded only by base template
                    data type) and create the bounded by min/max sequence generator.</para>
            </sect3>
            <sect3>
                <title>Snippet SharedCondition</title>
                <para>This snippet illustrates how to use shared condition. SharedCondition is an
                    IPC primitive for synchronization and represent functionality like
                    boost::condition.</para>
            </sect3>
            <sect3>
                <title>Snippet SharedMemory</title>
                <para>This snippet illustrates how to use shared memory. SharedMemory is an IPC
                    primitive for exchanging user data and hides OS specific implementation.</para>
            </sect3>
            <sect3>
                <title>Snippet SharedMutex</title>
                <para>This snippet illustrates how to use shared memory. SharedMutex is an IPC
                    primitive for synchronization. SharedMutex must be used as boost::mutex
                    primitive.</para>
            </sect3>
            <sect3>
                <title>Snippet SharedSemaphore</title>
                <para>This snippet illustrates how to use shared semaphore. SharedSemaphore is an
                    IPC primitive for synchronization. SharedSemaphore can be used with boost scoped
                    lock or manually controlled.</para>
            </sect3>
            <sect3>
                <title>Snippet ThreadPool</title>
                <para>This snippet illustrates how to use thread pool. The simple thread pool
                    concept implementation</para>
            </sect3>
            <sect3>
                <title>Snippet Timer</title>
                <para>This snippet illustrates how to use timer. Timer provides functionality for a
                    time-based asynch operation.</para>
            </sect3>
        </sect2>
    </sect1>

    <sect1>
        <title>Chapter 4. Common problems and errors</title>
        <para>This chapter contains information about common problems and errors and has three
            sections. The first section contains common and well-know problems and solutions for it.
            The second section contains information about installation problems and solution for it.
            The last one contain information about known bugs at current release.</para>
        <sect2>
            <title>Installation issues</title>
            <para>Here is installation issues problems and it's solutions.</para>
            <sect3>
                <title>Doesn't pass all unit tests.</title>
                <para>On some operation system shared memory test may fail due to operation system
                    configuration. Read section about shared memory in detail and check how to
                    configure you operation system shared memory relative options.</para>
            </sect3>
        </sect2>
        <sect2>
            <title>Common problems</title>
            <para>Here is well-known problems and it's solutions.</para>
            <sect3>
                <title>Unable create a SharedMemory object</title>
                <para>Some operation system shared memory has limitation due to operation system
                    configuration. Read section about shared memory in detail and check how to
                    configure you operation system shared memory relative options.</para>
            </sect3>
        </sect2>
        <sect2>
            <title>Known bugs</title>
            <para>To see the latest list of the known please visit the Kwon bugs page at
                www.majoron.com. This page contain the latest information.</para>
            <para> Follow notation is used at change log. Each entry begin with a version, for which
                entry for created. Then follow component at {}. Then follow category of the bug at
                []. It can be bug report, feature request and etc. Than follow bug number at bug
                tracking system between // signs. And then follow a description of the entry. For
                example entry 1.0 { AntHill Core } [ Feature Request ] / 380 / STLport support mean
                than entry was created for 1.0 version of the AntHill Core component and entry is
                feature request with 380 number at bug tracking system to support STLPort library. </para>
            <sect3>
                <title>Known bugs for release 1.0</title>
                <para>
                    <itemizedlist>
                        <listitem>
                            <para> 1.0 { AuxUtils Core } [ --- ] / 159 / Add a atomic op to
                                collection CppUtils </para>
                        </listitem>
                        <listitem>
                            <para> 0.5 { AuxUtils Core } [ --- ] / 172 / Potential deadlock(?) or as
                                designed </para>
                        </listitem>
                        <listitem>
                            <para> 0.5 { Setup } [ --- ] / 249 / Implement md5 check sum &amp;
                                rpm signature during distribution package build. </para>
                        </listitem>
                    </itemizedlist>
                </para>
            </sect3>


        </sect2>
    </sect1>

    <appendix>
        <title>Frequently asked questions</title>
        <para>To see the latest list of the frequently asked questions please visit the F.A..Q. page
            at www.majoron.com. This page contains the latest information.</para>

        <para>

            <itemizedlist>
                <listitem>
                    <para>
                        <emphasis role="italic">What is the target group? Who are users?</emphasis>
                    </para>
                    <para>AuxUtils library intended for designed and developers of the software
                        applications that have some restriction or limitation at Boost
                        functionality, which AuxUtils is eliminated.</para>
                </listitem>
                <listitem>
                    <para>
                        <emphasis role="italic">Is the AuxUtils thread-safe?</emphasis>
                    </para>
                    <para>Yes. The AuxUtils library was designed as thread safe library until you
                        are using thread safe STL implementation.</para>
                </listitem>
                <listitem>
                    <para>
                        <emphasis role="italic">All unit tests dont' pass.</emphasis>
                    </para>
                    <para>On some operation system shared memory test may fail due to operation
                        system configuration. Read section about shared memory in detail and check
                        how to configure you operation system shared memory relative options.</para>
                </listitem>
            </itemizedlist>
        </para>

    </appendix>

    <appendix>
        <title>Roadmap</title>
        <para>To see the latest list of the roadmap please visit the Roadmap page at
            www.majoron.com. This page contain the latest information.</para>
        <para> Follow notation is used at change log. Each entry begin with a version, for which
            entry for created. Then follow component at {}. Then follow category of the bug at [].
            It can be bug report, feature request and etc. Than follow bug number at bug tracking
            system between // signs. And then follow a description of the entry. For example entry
            1.0 { AntHill Core } [ Feature Request ] / 380 / STLport support mean than entry was
            created for 1.0 version of the AntHill Core component and entry is feature request with
            380 number at bug tracking system to support STLPort library. </para>


        <sect1>
            <title>Roadmap for version 1.0</title>
            <para>
                <itemizedlist>
                    <listitem>
                        <para> 1.0 { AuxUtils Core } [ Feature Request ] / 523 / Add a keyword to
                            print usage and view all included unit test </para>
                    </listitem>
                    <listitem>
                        <para> 1.0 { AuxUtils Core } [ Feature Request ] / 530 / Build library with
                            manifist (configure vcprojects). </para>
                    </listitem>
                    <listitem>
                        <para> 1.0 { AuxUtils Core } [ Feature Request ] / 599 / Add STLPort support
                            (--wih-stlport key at autoconf) </para>
                    </listitem>
                    <listitem>
                        <para> 1.0 { Documentation } [ Feature Request ] / 369 / Add UML sequence
                            diagram </para>
                    </listitem>
                    <listitem>
                        <para> 1.0 { Documentation } [ Feature Request ] / 472 / Add information to
                            building section about 3rdparty downloads </para>
                    </listitem>
                    <listitem>
                        <para> 1.0 { Documentation } [ Feature Request ] / 486 / Write to
                            documentation and site about how to dowload pecomiled library </para>
                    </listitem>
                    <listitem>
                        <para> 1.0 { Documentation } [ Feature Request ] / 535 / Write to
                            documentation about minifiest (not embedded). </para>
                    </listitem>
                    <listitem>
                        <para> 1.0 { Setup } [ Configuration Request ] / 260 / Include eclipse
                            projects to installation </para>
                    </listitem>
                    <listitem>
                        <para> 1.0 { Setup } [ Configuration Request ] / 336 / Add a different type
                            of the build for 32 &amp; 64 bit based on ant script resolution
                        </para>
                    </listitem>
                </itemizedlist>
            </para>
        </sect1>

    </appendix>

    <appendix>
        <title>Change log</title>
        <para>To see the latest list of the change log please visit the Change Log page at
            www.majoron.com. This page contain the latest information.</para>
        <para> Follow notation is used at change log. Each entry begin with a version, for which
            entry for created. Then follow component at {}. Then follow category of the bug at [].
            It can be bug report, feature request and etc. Than follow bug number at bug tracking
            system between // signs. And then follow a description of the entry. For example empty
            1.0 { AntHill Core } [ Feature Request ] / 380 / STLport support mean than entry was
            created for 1.0 version of the AntHill Core component and empty is feature request with
            380 number at bug tracking system to support STLPort library. </para>
        <sect1>
            <title>Change Log for version 1.0</title>
            <para>
                <itemizedlist>
                    <listitem>
                        <para> 1.0 { AuxUtils Core } [ Bug Report ] / 556 / Inclide include, erase
                            it </para>
                    </listitem>
                    <listitem>
                        <para> 1.0 { Documentation } [ Bug Report ] / 674 / Up Installation layouts
                            menu at one level </para>
                    </listitem>
                    <listitem>
                        <para> 1.0 { Setup } [ Bug Report ] / 540 / Snpippets not included to msvc8
                            &amp; autoconf porject </para>
                    </listitem>
                    <listitem>
                        <para> 1.0 { AuxUtils Core } [ Configuration Request ] / 635 / Print dump 0F
                            0E rather than f e </para>
                    </listitem>
                    <listitem>
                        <para> 1.0 { AuxUtils Core } [ Configuration Request ] / 208 / Add support a
                            projects files for msvc 6,7 &amp; 9 </para>
                    </listitem>
                    <listitem>
                        <para> 1.0 { AuxUtils Core } [ Feature Request ] / 687 / Support unicode
                        </para>
                    </listitem>
                    <listitem>
                        <para> 1.0 { AuxUtils Core } [ Feature Request ] / 634 / Add a include file
                            iomanip </para>
                    </listitem>
                    <listitem>
                        <para> 1.0 { AuxUtils Core } [ Feature Request ] / 504 / Add a methods to
                            write and read dump buffer to string and from stream </para>
                    </listitem>
                    <listitem>
                        <para> 1.0 { Documentation } [ Feature Request ] / 522 / Add a section how
                            to execute single unit test, stress test and view all unit tests </para>
                    </listitem>
                    <listitem>
                        <para> 0.5 { AuxUtils Core } [ --- ] / 228 / SharedMutex &amp;
                            SharedSemapore OS specifics or invalid usage or bug </para>
                    </listitem>
                    <listitem>
                        <para> 0.5 { AuxUtils Core } [ --- ] / 227 / GetLastError for Unix-like
                            implementation </para>
                    </listitem>
                    <listitem>
                        <para> 0.5 { AuxUtils Core } [ --- ] / 206 / Extend of the ByteBuffer
                            Interface </para>
                    </listitem>
                    <listitem>
                        <para> 0.5 { AuxUtils Core } [ --- ] / 205 / SequenceGenerator consistent
                            state </para>
                    </listitem>
                    <listitem>
                        <para> 0.5 { AuxUtils Core } [ --- ] / 204 / Setup isBounded for Sequence
                            generator </para>
                    </listitem>
                    <listitem>
                        <para> 0.5 { AuxUtils Core } [ --- ] / 193 / Memory leak(?) </para>
                    </listitem>
                    <listitem>
                        <para> 0.5 { AuxUtils Core } [ --- ] / 169 / Create constructor for
                            ByteBuffer </para>
                    </listitem>
                    <listitem>
                        <para> 0.5 { AuxUtils Core } [ --- ] / 163 / change license from majoron to
                            latestbit. </para>
                    </listitem>
                    <listitem>
                        <para> 0.5 { AuxUtils Core } [ --- ] / 162 / Add resource with version for
                            win32 for all libraries </para>
                    </listitem>
                    <listitem>
                        <para> 0.5 { AuxUtils Core } [ --- ] / 160 / Add constructor to ByteBuffer
                        </para>
                    </listitem>
                    <listitem>
                        <para> 0.5 { AuxUtils Core } [ --- ] / 158 / Add default value of the owner
                            for shared mutex </para>
                    </listitem>
                    <listitem>
                        <para> 0.5 { Documentation } [ --- ] / 251 / Write documentation (pdf by
                            docbook?) </para>
                    </listitem>
                    <listitem>
                        <para> 0.5 { Setup } [ --- ] / 250 / Include documentation to distributioin
                            package. </para>
                    </listitem>
                    <listitem>
                        <para> 0.5 { Setup } [ --- ] / 225 / UnitTest conflicts. </para>
                    </listitem>
                    <listitem>
                        <para> 0.5 { Setup } [ --- ] / 222 / make install destination includes files
                        </para>
                    </listitem>
                    <listitem>
                        <para> 0.5 { Setup } [ --- ] / 156 / Support STLPort library. </para>
                    </listitem>
                    <listitem>
                        <para> 0.5 { Setup } [ --- ] / 153 / create automake &amp; autoconf
                            installation for linux </para>
                    </listitem>
                </itemizedlist>
            </para>
        </sect1>

    </appendix>

    <appendix>
        <title>Credits</title>
        <para>This appendix contains lists the developers, contributors, and supporters that have
            helped to make AuxUtils what it is today.</para>
        <sect1>
            <title>Developers at AuxUtils</title>
            <para>The following people have created AuxUtils.</para>
            <para>
                <itemizedlist>
                    <listitem>
                        <para><emphasis role="bold">Abdulla Abdurakhmanov</emphasis> Lead developer
                            and main author of the AuxUtils. The main ideas and the first version of
                            the library was created by Abdulla Abdurakhmanov</para>
                    </listitem>
                    <listitem>
                        <para><emphasis role="bold">Artem Rufanov</emphasis> Lead developer of the
                            AuxUtils. He is support the library and responsible for future
                            development and adjusting to requirement for AntHill and other libraries
                            which were and will be create by Majoron. </para>
                    </listitem>
                </itemizedlist>
            </para>
        </sect1>
        <sect1>
            <title>Contributors to AuxUtils</title>
            <para>The following people have helped as to do AuxUtils better.</para>
            <para>
                <itemizedlist>
                    <listitem>
                        <para>
                            <emphasis role="bold">You can be here.</emphasis>
                        </para>
                    </listitem>
                </itemizedlist>

            </para>
        </sect1>
        <sect1>
            <title>Documenters and translators</title>
            <para>The following people have helped as to write documentation for AuxUtils.</para>
            <para>
                <itemizedlist>
                    <listitem>
                        <para><emphasis role="bold">Artem Rufanov</emphasis>. Main write of the
                            AuxUtils manual.</para>
                    </listitem>
                    <listitem>
                        <para><emphasis role="bold">Roman Rufanov</emphasis> Active contributor to
                            the AuxUtils manual. </para>
                    </listitem>
                </itemizedlist>
            </para>
        </sect1>
        <sect1>
            <title>Libraries used by AuxUtils</title>
            <para>AuxUtils is a tiny library but meantime it is using other open source libraries.
                The following is a list of some of the libraries we have used to create AuxUtils. We
                use this to express our thanks to those that has created them as without these we
                could not have made AuxUtils what it is today.</para>
            <para>
                <itemizedlist>
                    <listitem>
                        <para><emphasis role="bold">Boost</emphasis> From whom we got an excellent
                            boost library.</para>
                    </listitem>
                </itemizedlist>
            </para>

        </sect1>
        <sect1>
            <title>Tools that were used to create AuxUtils</title>
            <para>The following is a list of some of the tools we have used to create AuxUtils. We
                use this to express our thanks to those that has created them as without these we
                could not have made AuxUtils what it is today.</para>
            <para>
                <itemizedlist>
                    <listitem>
                        <para><emphasis role="bold">Free Software Foundation</emphasis> From whom we
                            got an excellent compiler (gcc), an excellent debugger (gdb).</para>
                    </listitem>
                    <listitem>
                        <para><emphasis role="bold">Doxygen </emphasis> This development tools allow
                            to create documentation for C++. It is used to create a well-formated
                            html API documentation.</para>
                    </listitem>
                </itemizedlist>
            </para>
        </sect1>
        <sect1>
            <title>Supporters of AuxUtils</title>
            <para>We wish to thanks the following companies, which helped us finance the development
                of the AuxUtils library such as by paying us for developing a new feature or giving
                us hardware for development of the AuxUtils server.</para>
            <para>
                <itemizedlist>
                    <listitem>
                        <para>
                            <emphasis role="bold">You can be here</emphasis>
                        </para>
                    </listitem>
                </itemizedlist>
            </para>
        </sect1>
    </appendix>
    <appendix>
        <title>Public license</title>
        <para>
            <literallayout><code><![CDATA[
                             Apache License
                       Version 2.0, January 2004
                    http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

  "License" shall mean the terms and conditions for use, reproduction,
  and distribution as defined by Sections 1 through 9 of this document.

  "Licensor" shall mean the copyright owner or entity authorized by
  the copyright owner that is granting the License.

  "Legal Entity" shall mean the union of the acting entity and all
  other entities that control, are controlled by, or are under common
  control with that entity. For the purposes of this definition,
  "control" means (i) the power, direct or indirect, to cause the
  direction or management of such entity, whether by contract or
  otherwise, or (ii) ownership of fifty percent (50%) or more of the
  outstanding shares, or (iii) beneficial ownership of such entity.

  "You" (or "Your") shall mean an individual or Legal Entity
  exercising permissions granted by this License.

  "Source" form shall mean the preferred form for making modifications,
  including but not limited to software source code, documentation
  source, and configuration files.

  "Object" form shall mean any form resulting from mechanical
  transformation or translation of a Source form, including but
  not limited to compiled object code, generated documentation,
  and conversions to other media types.

  "Work" shall mean the work of authorship, whether in Source or
  Object form, made available under the License, as indicated by a
  copyright notice that is included in or attached to the work
  (an example is provided in the Appendix below).

  "Derivative Works" shall mean any work, whether in Source or Object
  form, that is based on (or derived from) the Work and for which the
  editorial revisions, annotations, elaborations, or other modifications
  represent, as a whole, an original work of authorship. For the purposes
  of this License, Derivative Works shall not include works that remain
  separable from, or merely link (or bind by name) to the interfaces of,
  the Work and Derivative Works thereof.

  "Contribution" shall mean any work of authorship, including
  the original version of the Work and any modifications or additions
  to that Work or Derivative Works thereof, that is intentionally
  submitted to Licensor for inclusion in the Work by the copyright owner
  or by an individual or Legal Entity authorized to submit on behalf of
  the copyright owner. For the purposes of this definition, "submitted"
  means any form of electronic, verbal, or written communication sent
  to the Licensor or its representatives, including but not limited to
  communication on electronic mailing lists, source code control systems,
  and issue tracking systems that are managed by, or on behalf of, the
  Licensor for the purpose of discussing and improving the Work, but
  excluding communication that is conspicuously marked or otherwise
  designated in writing by the copyright owner as "Not a Contribution."

  "Contributor" shall mean Licensor and any individual or Legal Entity
  on behalf of whom a Contribution has been received by Licensor and
  subsequently incorporated within the Work.

2. Grant of Copyright License. Subject to the terms and conditions of
  this License, each Contributor hereby grants to You a perpetual,
  worldwide, non-exclusive, no-charge, royalty-free, irrevocable
  copyright license to reproduce, prepare Derivative Works of,
  publicly display, publicly perform, sublicense, and distribute the
  Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of
  this License, each Contributor hereby grants to You a perpetual,
  worldwide, non-exclusive, no-charge, royalty-free, irrevocable
  (except as stated in this section) patent license to make, have made,
  use, offer to sell, sell, import, and otherwise transfer the Work,
  where such license applies only to those patent claims licensable
  by such Contributor that are necessarily infringed by their
  Contribution(s) alone or by combination of their Contribution(s)
  with the Work to which such Contribution(s) was submitted. If You
  institute patent litigation against any entity (including a
  cross-claim or counterclaim in a lawsuit) alleging that the Work
  or a Contribution incorporated within the Work constitutes direct
  or contributory patent infringement, then any patent licenses
  granted to You under this License for that Work shall terminate
  as of the date such litigation is filed.

4. Redistribution. You may reproduce and distribute copies of the
  Work or Derivative Works thereof in any medium, with or without
  modifications, and in Source or Object form, provided that You
  meet the following conditions:

  (a) You must give any other recipients of the Work or
      Derivative Works a copy of this License; and

  (b) You must cause any modified files to carry prominent notices
      stating that You changed the files; and

  (c) You must retain, in the Source form of any Derivative Works
      that You distribute, all copyright, patent, trademark, and
      attribution notices from the Source form of the Work,
      excluding those notices that do not pertain to any part of
      the Derivative Works; and

  (d) If the Work includes a "NOTICE" text file as part of its
      distribution, then any Derivative Works that You distribute must
      include a readable copy of the attribution notices contained
      within such NOTICE file, excluding those notices that do not
      pertain to any part of the Derivative Works, in at least one
      of the following places: within a NOTICE text file distributed
      as part of the Derivative Works; within the Source form or
      documentation, if provided along with the Derivative Works; or,
      within a display generated by the Derivative Works, if and
      wherever such third-party notices normally appear. The contents
      of the NOTICE file are for informational purposes only and
      do not modify the License. You may add Your own attribution
      notices within Derivative Works that You distribute, alongside
      or as an addendum to the NOTICE text from the Work, provided
      that such additional attribution notices cannot be construed
      as modifying the License.

  You may add Your own copyright statement to Your modifications and
  may provide additional or different license terms and conditions
  for use, reproduction, or distribution of Your modifications, or
  for any such Derivative Works as a whole, provided Your use,
  reproduction, and distribution of the Work otherwise complies with
  the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise,
  any Contribution intentionally submitted for inclusion in the Work
  by You to the Licensor shall be under the terms and conditions of
  this License, without any additional terms or conditions.
  Notwithstanding the above, nothing herein shall supersede or modify
  the terms of any separate license agreement you may have executed
  with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade
  names, trademarks, service marks, or product names of the Licensor,
  except as required for reasonable and customary use in describing the
  origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty. Unless required by applicable law or
  agreed to in writing, Licensor provides the Work (and each
  Contributor provides its Contributions) on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
  implied, including, without limitation, any warranties or conditions
  of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
  PARTICULAR PURPOSE. You are solely responsible for determining the
  appropriateness of using or redistributing the Work and assume any
  risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory,
  whether in tort (including negligence), contract, or otherwise,
  unless required by applicable law (such as deliberate and grossly
  negligent acts) or agreed to in writing, shall any Contributor be
  liable to You for damages, including any direct, indirect, special,
  incidental, or consequential damages of any character arising as a
  result of this License or out of the use or inability to use the
  Work (including but not limited to damages for loss of goodwill,
  work stoppage, computer failure or malfunction, or any and all
  other commercial damages or losses), even if such Contributor
  has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing
  the Work or Derivative Works thereof, You may choose to offer,
  and charge a fee for, acceptance of support, warranty, indemnity,
  or other liability obligations and/or rights consistent with this
  License. However, in accepting such obligations, You may act only
  on Your own behalf and on Your sole responsibility, not on behalf
  of any other Contributor, and only if You agree to indemnify,
  defend, and hold each Contributor harmless for any liability
  incurred by, or claims asserted against, such Contributor by reason
  of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS                
]]></code></literallayout>
        </para>
        <sect1>
            <title>How to apply these terms to you new programs</title>
            <para>
                <literallayout><code><![CDATA[
  To apply the Apache License to your work, attach the following
  boilerplate notice, with the fields enclosed by brackets "[]"
  replaced with your own identifying information. (Don't include
  the brackets!)  The text should be enclosed in the appropriate
  comment syntax for the file format. We also recommend that a
  file or class name and description of purpose be included on the
  same "printed page" as the copyright notice for easier
  identification within third-party archives.

Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
]]></code></literallayout>
            </para>
        </sect1>
        <sect1>
            <title>How to use this license for you documentations</title>
            <para>
                <literallayout><code><![CDATA[
  To apply the Apache License to your work, attach the following
  boilerplate notice, with the fields enclosed by brackets "[]"
  replaced with your own identifying information. (Don't include
  the brackets!)  The text should be enclosed in the appropriate
  comment syntax for the file format. We also recommend that a
  file or class name and description of purpose be included on the
  same "printed page" as the copyright notice for easier
  identification within third-party archives.

Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
]]></code></literallayout>
            </para>
        </sect1>
    </appendix>
    <index>

        <indexterm zone="AuxUtils">
            <primary>AuxUtils</primary>
        </indexterm>

        <indexterm zone="ByteArrayInputOutputStream">
            <primary>ByteArrayInputOutputStream</primary>
        </indexterm>

        <indexterm zone="ByteBuffer">
            <primary>ByteBuffer</primary>
        </indexterm>

        <indexterm zone="IInputStream">
            <primary>IInputStream</primary>
        </indexterm>

        <indexterm zone="IModule">
            <primary>IModule</primary>
        </indexterm>

        <indexterm zone="IObjectPoolItemFactory">
            <primary>IObjectPoolItemFactory</primary>
        </indexterm>

        <indexterm zone="ModuleImpl">
            <primary>ModuleImpl</primary>
        </indexterm>

        <indexterm zone="ModulesFactory">
            <primary>ModulesFactory</primary>
        </indexterm>

        <indexterm zone="ObjectPool">
            <primary>ObjectPool</primary>
        </indexterm>

        <indexterm zone="ObjectPoolPtrItemFactory">
            <primary>ObjectPoolPtrItemFactory</primary>
        </indexterm>

        <indexterm zone="ThreadPool">
            <primary>ThreadPool</primary>
        </indexterm>

        <indexterm zone="Timer">
            <primary>Timer</primary>
        </indexterm>

        <indexterm zone="IOutputStream">
            <primary>IOutputStream</primary>
        </indexterm>

        <indexterm zone="OSProcTools">
            <primary>OSProcTools</primary>
        </indexterm>

        <indexterm zone="OSTimeTools">
            <primary>OSTimeTools</primary>
        </indexterm>

        <indexterm zone="StreamReframer">
            <primary>StreamReframer</primary>
        </indexterm>

        <indexterm zone="SharedCondition">
            <primary>SharedCondition</primary>
        </indexterm>
        <indexterm zone="SharedMemory">
            <primary>SharedMemory</primary>
        </indexterm>

        <indexterm zone="SharedMemory">
            <primary>SharedMemory</primary>
        </indexterm>

        <indexterm zone="SharedMutex">
            <primary>SharedMutex</primary>
        </indexterm>
        <indexterm zone="SharedSemaphore">
            <primary>SharedSemaphore</primary>
        </indexterm>

        <indexterm zone="SequenceGenerator">
            <primary>SequenceGenerator</primary>
        </indexterm>

        <indexterm zone="Version">
            <primary>Version</primary>
        </indexterm>

    </index>
</article>
