<!--
 **********************************************************************

 Copyright (c) 2003-2005 ZeroC, Inc. All rights reserved.

 This copy of Ice is licensed to you under the terms described in the
 ICE_LICENSE file included in this distribution.

 **********************************************************************
-->
<!-- Ice version 2.1.1 -->
<section>
    <title>Global Module</title>
    <section>
	<title>Module Index</title>
	<variablelist>
	    <varlistentry>
		<term><link linkend="Ice"><type>Ice</type></link></term>
		<listitem>
		    <para>
The &Ice; core library.</para>
		</listitem>
	    </varlistentry>
	    <varlistentry>
		<term><link linkend="Freeze"><type>Freeze</type></link></term>
		<listitem>
		    <para>
&Freeze; provides automatic persistence for &Ice;
servants.</para>
		</listitem>
	    </varlistentry>
	    <varlistentry>
		<term><link linkend="IceBox"><type>IceBox</type></link></term>
		<listitem>
		    <para>
&IceBox; is an application server specifically for &Ice;
applications.</para>
		</listitem>
	    </varlistentry>
	    <varlistentry>
		<term><link linkend="IcePack"><type>IcePack</type></link></term>
		<listitem>
		    <para>
&IcePack; is a server activation and deployment tool.</para>
		</listitem>
	    </varlistentry>
	    <varlistentry>
		<term><link linkend="IceSSL"><type>IceSSL</type></link></term>
		<listitem>
		    <para>
&IceSSL; is a dynamic SSL transport plug-in for the &Ice; core.</para>
		</listitem>
	    </varlistentry>
	    <varlistentry>
		<term><link linkend="Glacier2"><type>Glacier2</type></link></term>
		<listitem>
		    <para>
&Glacier2; is a firewall solution for Ice.</para>
		</listitem>
	    </varlistentry>
	    <varlistentry>
		<term><link linkend="IceStorm"><type>IceStorm</type></link></term>
		<listitem>
		    <para>
A messaging service with support for federation.</para>
		</listitem>
	    </varlistentry>
	    <varlistentry>
		<term><link linkend="IcePatch2"><type>IcePatch2</type></link></term>
		<listitem>
		    <para>
&IcePatch2; can be used to update file hiearchies in a simple and
efficient manner.</para>
		</listitem>
	    </varlistentry>
	</variablelist>
    </section>
</section>
<section id="Ice">
    <title><literal>Ice</literal></title>
    <section>
	<title>Overview</title>
<synopsis>module <classname>Ice</classname></synopsis>
	<para>
The &Ice; core library. Among many other features, the &Ice; core
library manages all the communication tasks using an efficient
protocol (including protocol compression and support for both TCP
and UDP), provides a thread pool for multi-threaded servers, and
additional functionality that supports high scalability.</para>
	<section>
	    <title>Interface Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.Communicator"><type>Communicator</type></link></term>
		    <listitem>
			<para>
The central object in &Ice;.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Connection"><type>Connection</type></link></term>
		    <listitem>
			<para>
The user-level interface to a connection.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Locator"><type>Locator</type></link></term>
		    <listitem>
			<para>
The &Ice; locator interface.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.LocatorRegistry"><type>LocatorRegistry</type></link></term>
		    <listitem>
			<para>
The &Ice; locator registry interface.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Logger"><type>Logger</type></link></term>
		    <listitem>
			<para>
The &Ice; message logger.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ObjectAdapter"><type>ObjectAdapter</type></link></term>
		    <listitem>
			<para>
The object adapter, which is responsible for receiving requests
from endpoints, and for mapping between servants, identities, and
proxies.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ObjectFactory"><type>ObjectFactory</type></link></term>
		    <listitem>
			<para>
A factory for objects.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Plugin"><type>Plugin</type></link></term>
		    <listitem>
			<para>
A communicator plug-in.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.PluginManager"><type>PluginManager</type></link></term>
		    <listitem>
			<para>
Each communicator has a plugin manager to administer the set of
plug-ins.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Process"><type>Process</type></link></term>
		    <listitem>
			<para>
An administrative interface for process management.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Properties"><type>Properties</type></link></term>
		    <listitem>
			<para>
A property set used to configure &Ice; and &Ice; applications.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Router"><type>Router</type></link></term>
		    <listitem>
			<para>
The &Ice; router interface.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ServantLocator"><type>ServantLocator</type></link></term>
		    <listitem>
			<para>
The servant locator, which is called by the object adapter to
locate a servant that is not found in its active servant map.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Stats"><type>Stats</type></link></term>
		    <listitem>
			<para>
An interface &Ice; uses to report statistics, such as how much data
is sent or received.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Exception Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.AbortBatchRequestException"><classname>AbortBatchRequestException</classname></link></term>
		    <listitem>
			<para>
This exception is a specialization of <link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link>,
indicating that a batch request has been aborted.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.AdapterAlreadyActiveException"><classname>AdapterAlreadyActiveException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if a server tries to set endpoints for
an adapter that is already active.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.AdapterNotFoundException"><classname>AdapterNotFoundException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if an adapter cannot be found.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.AlreadyRegisteredException"><classname>AlreadyRegisteredException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if an attempt is made to register a
servant, servant locator, facet, object factory, plug-in, object
adapter, object, or user exception factory more than once for the
same ID.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.BadMagicException"><classname>BadMagicException</classname></link></term>
		    <listitem>
			<para>
This exception is a specialization of <link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link>,
indicating that a message did not start with the expected
magic number ('I', 'c', 'e', 'P').</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.CloseConnectionException"><classname>CloseConnectionException</classname></link></term>
		    <listitem>
			<para>
This exception is a specialization of <link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link>,
indicating that the connection has been gracefully shut down by the
server.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.CloseTimeoutException"><classname>CloseTimeoutException</classname></link></term>
		    <listitem>
			<para>
This exception is a specialization of <link linkend="Ice.TimeoutException"><classname>TimeoutException</classname></link> for
connection closure timeout conditions.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.CollocationOptimizationException"><classname>CollocationOptimizationException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if a feature is requested that is not
supported with collocation optimization.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.CommunicatorDestroyedException"><classname>CommunicatorDestroyedException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if the <link linkend="Ice.Communicator"><classname>Communicator</classname></link> has been destroyed.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.CompressionException"><classname>CompressionException</classname></link></term>
		    <listitem>
			<para>
This exception is a specialization of <link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link> that is
raised if there is a problem with compressing or uncompressing
data.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.CompressionNotSupportedException"><classname>CompressionNotSupportedException</classname></link></term>
		    <listitem>
			<para>
This exception is a specialization of <link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link> that is
raised if a compressed protocol message has been received by an
&Ice; version that does not support compression.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ConnectFailedException"><classname>ConnectFailedException</classname></link></term>
		    <listitem>
			<para>
This exception is a specialization of <link linkend="Ice.SocketException"><classname>SocketException</classname></link> for
connection failures.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ConnectTimeoutException"><classname>ConnectTimeoutException</classname></link></term>
		    <listitem>
			<para>
This exception is a specialization of <link linkend="Ice.TimeoutException"><classname>TimeoutException</classname></link> for
connection establishment timeout conditions.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ConnectionLostException"><classname>ConnectionLostException</classname></link></term>
		    <listitem>
			<para>
This exception is a specialization of <link linkend="Ice.SocketException"><classname>SocketException</classname></link>, indicating
a lost connection.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ConnectionNotValidatedException"><classname>ConnectionNotValidatedException</classname></link></term>
		    <listitem>
			<para>
This exception is a specialization of <link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link>, that is
raised if a message is received over a connection that is not yet
validated.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ConnectionRefusedException"><classname>ConnectionRefusedException</classname></link></term>
		    <listitem>
			<para>
This exception is a specialization of <link linkend="Ice.ConnectFailedException"><classname>ConnectFailedException</classname></link> for
connection failures, where the server host actively refuses a
connection.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ConnectionTimeoutException"><classname>ConnectionTimeoutException</classname></link></term>
		    <listitem>
			<para>
This exception is a specialization of <link linkend="Ice.TimeoutException"><classname>TimeoutException</classname></link>, and
indicates that a connection has been shut down because it has been
idle for some time.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.DNSException"><classname>DNSException</classname></link></term>
		    <listitem>
			<para>
This exception indicates a DNS problem.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.DatagramLimitException"><classname>DatagramLimitException</classname></link></term>
		    <listitem>
			<para>
This exception is a specialization of <link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link> that is
raised if a datagram exceeds the configured send or receive buffer
size, or exceeds the maximum payload size of a UDP packet (65507 bytes).</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.EncapsulationException"><classname>EncapsulationException</classname></link></term>
		    <listitem>
			<para>
This exception is a specialization of <link linkend="Ice.MarshalException"><classname>MarshalException</classname></link>,
indicating a malformed data encapsulation.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.EndpointParseException"><classname>EndpointParseException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if there was an error while parsing an
endpoint.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.FacetNotExistException"><classname>FacetNotExistException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if no facet with the given name exists,
but at least one facet with the given identity exists.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ForcedCloseConnectionException"><classname>ForcedCloseConnectionException</classname></link></term>
		    <listitem>
			<para>
This exception is raised by an operation call if the application
forcefully closes the connection used by this call with
<link linkend="Ice.Connection.close"><function>Connection::close</function></link>.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.IdentityParseException"><classname>IdentityParseException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if there was an error while parsing a
stringified identity.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.IllegalIdentityException"><classname>IllegalIdentityException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if an illegal identity is encountered.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.IllegalIndirectionException"><classname>IllegalIndirectionException</classname></link></term>
		    <listitem>
			<para>
This exception is a specialization of <link linkend="Ice.MarshalException"><classname>MarshalException</classname></link>,
indicating an illegal indirection during unmarshaling.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.IllegalMessageSizeException"><classname>IllegalMessageSizeException</classname></link></term>
		    <listitem>
			<para>
This exception is a specialization of <link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link>,
indicating that the message size is illegal, i.e., it is
less than the minimum required size.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.InitializationException"><classname>InitializationException</classname></link></term>
		    <listitem>
			<para>
This exception is raised when a failure occurs during initialization.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.MarshalException"><classname>MarshalException</classname></link></term>
		    <listitem>
			<para>
This exception is a specialization of <link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link> that is
raised upon an error during marshaling or unmarshaling data.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.MemoryLimitException"><classname>MemoryLimitException</classname></link></term>
		    <listitem>
			<para>
This exception is a specialization of <link linkend="Ice.MarshalException"><classname>MarshalException</classname></link> that is
raised if the system-specific memory limit is exceeded during
marshaling or unmarshaling.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.NegativeSizeException"><classname>NegativeSizeException</classname></link></term>
		    <listitem>
			<para>
This exception is a specialization of <link linkend="Ice.MarshalException"><classname>MarshalException</classname></link> that is
raised if a negative size (e.g., a negative sequence size) is
received.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.NoEndpointException"><classname>NoEndpointException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if no suitable endpoint is available.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.NoObjectFactoryException"><classname>NoObjectFactoryException</classname></link></term>
		    <listitem>
			<para>
This exception is a specialization of <link linkend="Ice.MarshalException"><classname>MarshalException</classname></link> that is
raised if no suitable object factory was found during object
unmarshaling.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.NotRegisteredException"><classname>NotRegisteredException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if an attempt is made to remove a servant,
facet, object factory, plug-in, object adapter, object, or user
exception factory that is not currently registered.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ObjectAdapterDeactivatedException"><classname>ObjectAdapterDeactivatedException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if an attempt is made to use a deactivated
<link linkend="Ice.ObjectAdapter"><classname>ObjectAdapter</classname></link>.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ObjectAdapterIdInUseException"><classname>ObjectAdapterIdInUseException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if an <link linkend="Ice.ObjectAdapter"><classname>ObjectAdapter</classname></link> cannot be activated
because the <link linkend="Ice.Locator"><classname>Locator</classname></link> detected another active <link linkend="Ice.ObjectAdapter"><classname>ObjectAdapter</classname></link> with
the same adapter id.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ObjectNotExistException"><classname>ObjectNotExistException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if an object does not exist on the server,
that is, if no facets with the given identity exist.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ObjectNotFoundException"><classname>ObjectNotFoundException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if an object cannot be found.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.OperationNotExistException"><classname>OperationNotExistException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if an operation for a given object does
not exist on the server.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.PluginInitializationException"><classname>PluginInitializationException</classname></link></term>
		    <listitem>
			<para>
This exception indicates that a failure occurred while initializing
a plug-in.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link></term>
		    <listitem>
			<para>
A generic exception base for all kinds of protocol error
conditions.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ProxyParseException"><classname>ProxyParseException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if there was an error while parsing a
stringified proxy.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ProxyUnmarshalException"><classname>ProxyUnmarshalException</classname></link></term>
		    <listitem>
			<para>
This exception is a specialization of <link linkend="Ice.MarshalException"><classname>MarshalException</classname></link> that is
raised if inconsistent data is received while unmarshaling a proxy.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.RequestFailedException"><classname>RequestFailedException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if a request failed.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ServerNotFoundException"><classname>ServerNotFoundException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if a server cannot be found.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.SocketException"><classname>SocketException</classname></link></term>
		    <listitem>
			<para>
This exception is a specialization of <link linkend="Ice.SyscallException"><classname>SyscallException</classname></link> for socket
errors.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.SyscallException"><classname>SyscallException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if a system error occurred in the server
or client process.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.TimeoutException"><classname>TimeoutException</classname></link></term>
		    <listitem>
			<para>
This exception indicates a timeout condition.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.TwowayOnlyException"><classname>TwowayOnlyException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if an attempt is made to invoke an
operation with <literal>ice_oneway</literal>, <literal>ice_batchOneway</literal>, <literal>ice_datagram</literal>,
or <literal>ice_batchDatagram</literal> and the operation has a return value,
out parameters, or an exception specification.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.UnknownException"><classname>UnknownException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if an operation call on a server raises an
unknown exception.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.UnknownLocalException"><classname>UnknownLocalException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if an operation call on a server raises a
local exception.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.UnknownMessageException"><classname>UnknownMessageException</classname></link></term>
		    <listitem>
			<para>
This exception is a specialization of <link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link>,
indicating that an unknown protocol message has been received.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.UnknownReplyStatusException"><classname>UnknownReplyStatusException</classname></link></term>
		    <listitem>
			<para>
This exception is a specialization of <link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link>,
indicating that an unknown reply status has been received.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.UnknownRequestIdException"><classname>UnknownRequestIdException</classname></link></term>
		    <listitem>
			<para>
This exception is a specialization of <link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link>,
indicating that a response for an unknown request id has been
received.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.UnknownUserException"><classname>UnknownUserException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if an operation call on a server raises a
user exception that is not declared in the exception's
<literal>throws</literal> clause.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.UnmarshalOutOfBoundsException"><classname>UnmarshalOutOfBoundsException</classname></link></term>
		    <listitem>
			<para>
This exception is a specialization of <link linkend="Ice.MarshalException"><classname>MarshalException</classname></link> that is
raised if an out-of-bounds condition occurs during unmarshaling.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.UnsupportedEncodingException"><classname>UnsupportedEncodingException</classname></link></term>
		    <listitem>
			<para>
This exception is a specialization of <link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link>,
indicating that an unsupported data encoding version has been
encountered.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.UnsupportedProtocolException"><classname>UnsupportedProtocolException</classname></link></term>
		    <listitem>
			<para>
This exception is a specialization of <link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link>,
indicating that an unsupported protocol version has been
encountered.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.VersionMismatchException"><classname>VersionMismatchException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if the &Ice; library version does not match
the &Ice; header files version.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Struct Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.Current"><structname>Current</structname></link></term>
		    <listitem>
			<para>
Information about the current method invocation for servers.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Identity"><structname>Identity</structname></link></term>
		    <listitem>
			<para>
The identity of an &Ice; object.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Sequence Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.BoolSeq"><type>BoolSeq</type></link></term>
		    <listitem>
			<para>
A sequence of bools.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ByteSeq"><type>ByteSeq</type></link></term>
		    <listitem>
			<para>
A sequence of bytes.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.DoubleSeq"><type>DoubleSeq</type></link></term>
		    <listitem>
			<para>
A sequence of doubles.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.FloatSeq"><type>FloatSeq</type></link></term>
		    <listitem>
			<para>
A sequence of floats.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.IdentitySeq"><type>IdentitySeq</type></link></term>
		    <listitem>
			<para>
A sequence of identities.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.IntSeq"><type>IntSeq</type></link></term>
		    <listitem>
			<para>
A sequence of ints.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.LongSeq"><type>LongSeq</type></link></term>
		    <listitem>
			<para>
A sequence of longs.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ObjectProxySeq"><type>ObjectProxySeq</type></link></term>
		    <listitem>
			<para>
A sequence of object proxies.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ObjectSeq"><type>ObjectSeq</type></link></term>
		    <listitem>
			<para>
A sequence of objects.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ShortSeq"><type>ShortSeq</type></link></term>
		    <listitem>
			<para>
A sequence of shorts.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.StringSeq"><type>StringSeq</type></link></term>
		    <listitem>
			<para>
A sequence of strings.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Dictionary Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.Context"><type>Context</type></link></term>
		    <listitem>
			<para>
A request context.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.FacetMap"><type>FacetMap</type></link></term>
		    <listitem>
			<para>
A mapping from facet name to servant.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ObjectDict"><type>ObjectDict</type></link></term>
		    <listitem>
			<para>
A mapping between identities and &Ice; objects.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.PropertyDict"><type>PropertyDict</type></link></term>
		    <listitem>
			<para>
A simple collection of properties, represented as a dictionary of
key/value pairs.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.SliceChecksumDict"><type>SliceChecksumDict</type></link></term>
		    <listitem>
			<para>
</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Enum Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.OperationMode"><type>OperationMode</type></link></term>
		    <listitem>
			<para>
The <link linkend="Ice.OperationMode"><type>OperationMode</type></link> determines the skeleton signature (for C++), as
well as the retry behavior of the Ice run time for an operation
invocation in case of a (potentially) recoverable error.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.BoolSeq">
	<title><literal>BoolSeq</literal></title>
<synopsis>sequence&lt;<type>bool</type>&gt; <type>BoolSeq</type>;</synopsis>
	<para>
A sequence of bools.</para>
    </section>
    <section id="Ice.ByteSeq">
	<title><literal>ByteSeq</literal></title>
<synopsis>sequence&lt;<type>byte</type>&gt; <type>ByteSeq</type>;</synopsis>
	<para>
A sequence of bytes.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.BadMagicException.badMagic"><type>BadMagicException::badMagic</type></link></member>
		<member><link linkend="IcePatch2.ByteSeqSeq"><type>::IcePatch2::ByteSeqSeq</type></link></member>
		<member><link linkend="IcePatch2.FileInfo.checksum"><type>::IcePatch2::FileInfo::checksum</type></link></member>
		<member><link linkend="IcePatch2.FileServer.getChecksum"><function>::IcePatch2::FileServer::getChecksum</function></link></member>
		<member><link linkend="IcePatch2.FileServer.getFileCompressed"><function>::IcePatch2::FileServer::getFileCompressed</function></link></member>
		<member><link linkend="IceSSL.Plugin.addTrustedCertificate"><function>::IceSSL::Plugin::addTrustedCertificate</function></link></member>
		<member><link linkend="IceSSL.Plugin.getSingleCertVerifier"><function>::IceSSL::Plugin::getSingleCertVerifier</function></link></member>
		<member><link linkend="IceSSL.Plugin.setRSAKeys"><function>::IceSSL::Plugin::setRSAKeys</function></link></member>
		<member><link linkend="IceSSL.Plugin.setRSAKeys"><function>::IceSSL::Plugin::setRSAKeys</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.DoubleSeq">
	<title><literal>DoubleSeq</literal></title>
<synopsis>sequence&lt;<type>double</type>&gt; <type>DoubleSeq</type>;</synopsis>
	<para>
A sequence of doubles.</para>
    </section>
    <section id="Ice.FloatSeq">
	<title><literal>FloatSeq</literal></title>
<synopsis>sequence&lt;<type>float</type>&gt; <type>FloatSeq</type>;</synopsis>
	<para>
A sequence of floats.</para>
    </section>
    <section id="Ice.IdentitySeq">
	<title><literal>IdentitySeq</literal></title>
<synopsis>sequence&lt;<link linkend="Ice.Identity"><structname>Identity</structname></link>&gt; <type>IdentitySeq</type>;</synopsis>
	<para>
A sequence of identities.</para>
    </section>
    <section id="Ice.IntSeq">
	<title><literal>IntSeq</literal></title>
<synopsis>sequence&lt;<type>int</type>&gt; <type>IntSeq</type>;</synopsis>
	<para>
A sequence of ints.</para>
    </section>
    <section id="Ice.LongSeq">
	<title><literal>LongSeq</literal></title>
<synopsis>sequence&lt;<type>long</type>&gt; <type>LongSeq</type>;</synopsis>
	<para>
A sequence of longs.</para>
    </section>
    <section id="Ice.ObjectProxySeq">
	<title><literal>ObjectProxySeq</literal></title>
<synopsis>sequence&lt;<type>Object*</type>&gt; <type>ObjectProxySeq</type>;</synopsis>
	<para>
A sequence of object proxies.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IcePack.Query.findAllObjectsWithType"><function>::IcePack::Query::findAllObjectsWithType</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.ObjectSeq">
	<title><literal>ObjectSeq</literal></title>
<synopsis>sequence&lt;<type>Object</type>&gt; <type>ObjectSeq</type>;</synopsis>
	<para>
A sequence of objects.</para>
    </section>
    <section id="Ice.ShortSeq">
	<title><literal>ShortSeq</literal></title>
<synopsis>sequence&lt;<type>short</type>&gt; <type>ShortSeq</type>;</synopsis>
	<para>
A sequence of shorts.</para>
    </section>
    <section id="Ice.StringSeq">
	<title><literal>StringSeq</literal></title>
<synopsis>sequence&lt;<type>string</type>&gt; <type>StringSeq</type>;</synopsis>
	<para>
A sequence of strings.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Properties.getCommandLineOptions"><function>Properties::getCommandLineOptions</function></link></member>
		<member><link linkend="Ice.Properties.parseCommandLineOptions"><function>Properties::parseCommandLineOptions</function></link></member>
		<member><link linkend="Ice.Properties.parseCommandLineOptions"><function>Properties::parseCommandLineOptions</function></link></member>
		<member><link linkend="Ice.Properties.parseIceCommandLineOptions"><function>Properties::parseIceCommandLineOptions</function></link></member>
		<member><link linkend="Ice.Properties.parseIceCommandLineOptions"><function>Properties::parseIceCommandLineOptions</function></link></member>
		<member><link linkend="IceBox.Service.start"><function>::IceBox::Service::start</function></link></member>
		<member><link linkend="IcePack.Admin.getAllAdapterIds"><function>::IcePack::Admin::getAllAdapterIds</function></link></member>
		<member><link linkend="IcePack.Admin.getAllApplicationNames"><function>::IcePack::Admin::getAllApplicationNames</function></link></member>
		<member><link linkend="IcePack.Admin.getAllNodeNames"><function>::IcePack::Admin::getAllNodeNames</function></link></member>
		<member><link linkend="IcePack.Admin.getAllServerNames"><function>::IcePack::Admin::getAllServerNames</function></link></member>
		<member><link linkend="IcePack.JavaServerDescriptor.jvmOptions"><type>::IcePack::JavaServerDescriptor::jvmOptions</type></link></member>
		<member><link linkend="IcePack.ServerDescriptor.envs"><type>::IcePack::ServerDescriptor::envs</type></link></member>
		<member><link linkend="IcePack.ServerDescriptor.options"><type>::IcePack::ServerDescriptor::options</type></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.Context">
	<title><literal>Context</literal></title>
<synopsis>dictionary&lt;<type>string</type>, <type>string</type>&gt; <type>Context</type>;</synopsis>
	<para>
A request context. <link linkend="Ice.Context"><type>Context</type></link> is used to transmit metadata about a
request from the server to the client, such as Quality-of-Service
(QoS) parameters. Each operation on the client has a <link linkend="Ice.Context"><type>Context</type></link> as
its implicit final parameter.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Communicator.getDefaultContext"><function>Communicator::getDefaultContext</function></link></member>
		<member><link linkend="Ice.Communicator.setDefaultContext"><function>Communicator::setDefaultContext</function></link></member>
		<member><link linkend="Ice.Current.ctx"><type>Current::ctx</type></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.FacetMap">
	<title><literal>FacetMap</literal></title>
<synopsis>local dictionary&lt;<type>string</type>, <type>Object</type>&gt; <type>FacetMap</type>;</synopsis>
	<para>
A mapping from facet name to servant.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.ObjectAdapter.findAllFacets"><function>ObjectAdapter::findAllFacets</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.removeAllFacets"><function>ObjectAdapter::removeAllFacets</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.ObjectDict">
	<title><literal>ObjectDict</literal></title>
<synopsis>local dictionary&lt;<link linkend="Ice.Identity"><structname>Identity</structname></link>, <type>Object</type>&gt; <type>ObjectDict</type>;</synopsis>
	<para>
A mapping between identities and &Ice; objects.</para>
    </section>
    <section id="Ice.PropertyDict">
	<title><literal>PropertyDict</literal></title>
<synopsis>local dictionary&lt;<type>string</type>, <type>string</type>&gt; <type>PropertyDict</type>;</synopsis>
	<para>
A simple collection of properties, represented as a dictionary of
key/value pairs. Both key and value are <type>string</type>s.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Properties.getPropertiesForPrefix"><function>Properties::getPropertiesForPrefix</function></link></member>
	    </simplelist></para></section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Properties.getPropertiesForPrefix"><function>Properties::getPropertiesForPrefix</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.SliceChecksumDict">
	<title><literal>SliceChecksumDict</literal></title>
<synopsis>dictionary&lt;<type>string</type>, <type>string</type>&gt; <type>SliceChecksumDict</type>;</synopsis>
	<para></para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IceBox.ServiceManager.getSliceChecksums"><function>::IceBox::ServiceManager::getSliceChecksums</function></link></member>
		<member><link linkend="IcePack.Admin.getSliceChecksums"><function>::IcePack::Admin::getSliceChecksums</function></link></member>
		<member><link linkend="IceStorm.TopicManager.getSliceChecksums"><function>::IceStorm::TopicManager::getSliceChecksums</function></link></member>
	    </simplelist></para></section>
    </section>
</section>
<section id="Ice.AbortBatchRequestException">
    <title><literal>Ice::AbortBatchRequestException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>AbortBatchRequestException</classname>
    extends 
	<link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link></synopsis>
	<para>
This exception is a specialization of <link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link>,
indicating that a batch request has been aborted.</para>
    </section>
</section>
<section id="Ice.AdapterAlreadyActiveException">
    <title><literal>Ice::AdapterAlreadyActiveException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>exception <classname>AdapterAlreadyActiveException</classname></synopsis>
	<para>
This exception is raised if a server tries to set endpoints for
an adapter that is already active.</para>
    </section>
</section>
<section id="Ice.AdapterNotFoundException">
    <title><literal>Ice::AdapterNotFoundException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>exception <classname>AdapterNotFoundException</classname></synopsis>
	<para>
This exception is raised if an adapter cannot be found.</para>
    </section>
</section>
<section id="Ice.AlreadyRegisteredException">
    <title><literal>Ice::AlreadyRegisteredException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>AlreadyRegisteredException</classname></synopsis>
	<para>
This exception is raised if an attempt is made to register a
servant, servant locator, facet, object factory, plug-in, object
adapter, object, or user exception factory more than once for the
same ID.</para>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.AlreadyRegisteredException.id"><type>id</type></link></term>
		    <listitem>
			<para>
The id (or name) of the object that is registered already.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.AlreadyRegisteredException.kindOfObject"><type>kindOfObject</type></link></term>
		    <listitem>
			<para>
The kind of object that is registered already: "servant",
"servant locator", "facet", "object factory", "plug-in",
"object adapter", "object", or "user exception factory".</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.AlreadyRegisteredException.id">
	<title><literal>id</literal></title>
<synopsis><type>string</type> <structfield>id</structfield>;</synopsis>
	<para>
The id (or name) of the object that is registered already.</para>
    </section>
    <section id="Ice.AlreadyRegisteredException.kindOfObject">
	<title><literal>kindOfObject</literal></title>
<synopsis><type>string</type> <structfield>kindOfObject</structfield>;</synopsis>
	<para>
The kind of object that is registered already: "servant",
"servant locator", "facet", "object factory", "plug-in",
"object adapter", "object", or "user exception factory".</para>
    </section>
</section>
<section id="Ice.BadMagicException">
    <title><literal>Ice::BadMagicException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>BadMagicException</classname>
    extends 
	<link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link></synopsis>
	<para>
This exception is a specialization of <link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link>,
indicating that a message did not start with the expected
magic number ('I', 'c', 'e', 'P').</para>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.BadMagicException.badMagic"><type>badMagic</type></link></term>
		    <listitem>
			<para>
A sequence containing the first four bytes of the incorrect message.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.BadMagicException.badMagic">
	<title><literal>badMagic</literal></title>
<synopsis><link linkend="Ice.ByteSeq"><type>ByteSeq</type></link> <structfield>badMagic</structfield>;</synopsis>
	<para>
A sequence containing the first four bytes of the incorrect message.</para>
    </section>
</section>
<section id="Ice.CloseConnectionException">
    <title><literal>Ice::CloseConnectionException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>CloseConnectionException</classname>
    extends 
	<link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link></synopsis>
	<para>
This exception is a specialization of <link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link>,
indicating that the connection has been gracefully shut down by the
server. The operation call that caused this exception has not been
executed by the server. In most cases you will not get this
exception, because the client will automatically retry the
operation call in case the server shut down the connection. However,
if upon retry the server shuts down the connection again, and the
retry limit has been reached, then this exception is propagated to
the application code.</para>
    </section>
</section>
<section id="Ice.CloseTimeoutException">
    <title><literal>Ice::CloseTimeoutException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>CloseTimeoutException</classname>
    extends 
	<link linkend="Ice.TimeoutException"><classname>TimeoutException</classname></link></synopsis>
	<para>
This exception is a specialization of <link linkend="Ice.TimeoutException"><classname>TimeoutException</classname></link> for
connection closure timeout conditions.</para>
    </section>
</section>
<section id="Ice.CollocationOptimizationException">
    <title><literal>Ice::CollocationOptimizationException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>CollocationOptimizationException</classname></synopsis>
	<para>
This exception is raised if a feature is requested that is not
supported with collocation optimization.</para>
    </section>
</section>
<section id="Ice.Communicator">
    <title><literal>Ice::Communicator</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local interface <classname>Communicator</classname></synopsis>
	<para>
The central object in &Ice;. One or more communicators can be
instantiated for an &Ice; application. Communicator instantiation
is language specific, and not specified in Slice code.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Freeze.Connection.getCommunicator"><function>::Freeze::Connection::getCommunicator</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.getCommunicator"><function>ObjectAdapter::getCommunicator</function></link></member>
		<member><link linkend="IceBox.Service.start"><function>::IceBox::Service::start</function></link></member>
	    </simplelist></para></section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Logger"><classname>Logger</classname></link></member>
		<member><link linkend="Ice.Stats"><classname>Stats</classname></link></member>
		<member><link linkend="Ice.ObjectAdapter"><classname>ObjectAdapter</classname></link></member>
		<member><link linkend="Ice.Properties"><classname>Properties</classname></link></member>
		<member><link linkend="Ice.ObjectFactory"><classname>ObjectFactory</classname></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Operation Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.Communicator.addObjectFactory"><function>addObjectFactory</function></link></term>
		    <listitem>
			<para>
Add a servant factory to this communicator.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Communicator.createObjectAdapter"><function>createObjectAdapter</function></link></term>
		    <listitem>
			<para>
Create a new object adapter.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="ommunicator.createObjectAdapterWithEndpoints"><function>createObjectAdapterWithEndpoints</function></link></term>
		    <listitem>
			<para>
Create a new object adapter with endpoints.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Communicator.destroy"><function>destroy</function></link></term>
		    <listitem>
			<para>
Destroy the communicator.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Communicator.findObjectFactory"><function>findObjectFactory</function></link></term>
		    <listitem>
			<para>
Find a servant factory registered with this communicator.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Communicator.flushBatchRequests"><function>flushBatchRequests</function></link></term>
		    <listitem>
			<para>
Flush any pending batch requests for this communicator.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Communicator.getDefaultContext"><function>getDefaultContext</function></link></term>
		    <listitem>
			<para>
Get the currently-set default context.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Communicator.getDefaultLocator"><function>getDefaultLocator</function></link></term>
		    <listitem>
			<para>
Get the default locator this communicator.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Communicator.getDefaultRouter"><function>getDefaultRouter</function></link></term>
		    <listitem>
			<para>
Get the default router this communicator.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Communicator.getLogger"><function>getLogger</function></link></term>
		    <listitem>
			<para>
Get the logger for this communicator.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Communicator.getPluginManager"><function>getPluginManager</function></link></term>
		    <listitem>
			<para>
Get the plug-in manager for this communicator.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Communicator.getProperties"><function>getProperties</function></link></term>
		    <listitem>
			<para>
Get the properties for this communicator.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Communicator.getStats"><function>getStats</function></link></term>
		    <listitem>
			<para>
Get the statistics callback object for this communicator.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Communicator.proxyToString"><function>proxyToString</function></link></term>
		    <listitem>
			<para>
Convert a proxy into a string.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Communicator.removeObjectFactory"><function>removeObjectFactory</function></link></term>
		    <listitem>
			<para>
Remove a servant factory from this communicator.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Communicator.setDefaultContext"><function>setDefaultContext</function></link></term>
		    <listitem>
			<para>
Set a default context on this communicator.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Communicator.setDefaultLocator"><function>setDefaultLocator</function></link></term>
		    <listitem>
			<para>
Set a default &Ice; locator for this communicator.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Communicator.setDefaultRouter"><function>setDefaultRouter</function></link></term>
		    <listitem>
			<para>
Set a default router for this communicator.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Communicator.setLogger"><function>setLogger</function></link></term>
		    <listitem>
			<para>
Set the logger for this communicator.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Communicator.setStats"><function>setStats</function></link></term>
		    <listitem>
			<para>
Set the statistics callback object for this communicator.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Communicator.shutdown"><function>shutdown</function></link></term>
		    <listitem>
			<para>
Shuts down this communicator's server functionality, including
the deactivation of all object adapters.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Communicator.stringToProxy"><function>stringToProxy</function></link></term>
		    <listitem>
			<para>
Convert a string into a proxy.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Communicator.waitForShutdown"><function>waitForShutdown</function></link></term>
		    <listitem>
			<para>
Wait until this communicator's server functionality has shut
down completely.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.Communicator.addObjectFactory">
	<title><literal>addObjectFactory</literal></title>
<synopsis><type>void</type> <function>addObjectFactory</function>(<link linkend="Ice.ObjectFactory"><classname>ObjectFactory</classname></link> <parameter>factory</parameter>,
    <type>string</type> <parameter>id</parameter>);</synopsis>
	<para>
Add a servant factory to this communicator. Installing a
factory with an id for which a factory is already registered
throws <link linkend="Ice.AlreadyRegisteredException"><classname>AlreadyRegisteredException</classname></link>.</para>
<para>When unmarshaling an Ice object, the Ice run-time reads the
most-derived type id off the wire and attempts to create an
instance of the type using a factory. If no instance is created,
either because no factory was found, or because all factories
returned nil, the object is sliced to the next most-derived type
and the process repeats. If no factory is found that can create an
instance, the Ice run-time will slice the object to the type
Ice::Object.</para>
<para>The following order is used to locate a factory for a type:
<orderedlist>
<listitem><para>The Ice run-time looks for a factory registered
specifically for the type.</para></listitem>
<listitem><para>If no instance has been created, the Ice run-time looks
for the default factory, which is registered with an emtpy type id.
</para></listitem>
<listitem><para>If no instance has been created by any of the preceding
steps, the Ice run-time looks for a factory that may have been
statically generated by the language mapping for non-abstract classes.
</para></listitem>
</orderedlist></para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>factory</parameter></term>
		    <listitem>
			<para>
			    The factory to add.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>id</parameter></term>
		    <listitem>
			<para>
			    The type id for which the factory can create instances, or
an empty string for the default factory.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Communicator.removeObjectFactory"><function>removeObjectFactory</function></link></member>
		<member><link linkend="Ice.Communicator.findObjectFactory"><function>findObjectFactory</function></link></member>
		<member><link linkend="Ice.ObjectFactory"><classname>ObjectFactory</classname></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.Communicator.createObjectAdapter">
	<title><literal>createObjectAdapter</literal></title>
<synopsis><link linkend="Ice.ObjectAdapter"><classname>ObjectAdapter</classname></link> <function>createObjectAdapter</function>(<type>string</type> <parameter>name</parameter>);</synopsis>
	<para>
Create a new object adapter. The endpoints for the object
adapter are taken from the property
<literal><replaceable>name</replaceable>.Endpoints</literal>.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>name</parameter></term>
		    <listitem>
			<para>
			    The object adapter name.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		The new object adapter.</para>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="ommunicator.createObjectAdapterWithEndpoints"><function>createObjectAdapterWithEndpoints</function></link></member>
		<member><link linkend="Ice.ObjectAdapter"><classname>ObjectAdapter</classname></link></member>
		<member><link linkend="Ice.Properties"><classname>Properties</classname></link></member>
	    </simplelist></para></section>
    </section>
    <section id="ommunicator.createObjectAdapterWithEndpoints">
	<title><literal>createObjectAdapterWithEndpoints</literal></title>
<synopsis><link linkend="Ice.ObjectAdapter"><classname>ObjectAdapter</classname></link> <function>createObjectAdapterWithEndpoints</function>(<type>string</type> <parameter>name</parameter>,
    <type>string</type> <parameter>endpoints</parameter>);</synopsis>
	<para>
Create a new object adapter with endpoints. This method sets
the property
<literal><replaceable>name</replaceable>.Endpoints</literal>,
and then calls <link linkend="Ice.Communicator.createObjectAdapter"><function>createObjectAdapter</function></link>. It is provided as a
convenience function.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>name</parameter></term>
		    <listitem>
			<para>
			    The object adapter name.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>endpoints</parameter></term>
		    <listitem>
			<para>
			    The endpoints for the object adapter.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		The new object adapter.</para>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Communicator.createObjectAdapter"><function>createObjectAdapter</function></link></member>
		<member><link linkend="Ice.ObjectAdapter"><classname>ObjectAdapter</classname></link></member>
		<member><link linkend="Ice.Properties"><classname>Properties</classname></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.Communicator.destroy">
	<title><literal>destroy</literal></title>
<synopsis><type>void</type> <function>destroy</function>();</synopsis>
	<para>
Destroy the communicator. This operation calls <link linkend="Ice.Communicator.shutdown"><function>shutdown</function></link>
implicitly.  Calling <link linkend="Ice.Communicator.destroy"><function>destroy</function></link> cleans up memory, and shuts down
this communicator's client functionality. Subsequent calls to
<link linkend="Ice.Communicator.destroy"><function>destroy</function></link> are ignored.</para>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Communicator.shutdown"><function>shutdown</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.Communicator.findObjectFactory">
	<title><literal>findObjectFactory</literal></title>
<synopsis><link linkend="Ice.ObjectFactory"><classname>ObjectFactory</classname></link> <function>findObjectFactory</function>(<type>string</type> <parameter>id</parameter>);</synopsis>
	<para>
Find a servant factory registered with this communicator.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>id</parameter></term>
		    <listitem>
			<para>
			    The type id for which the factory can create instances,
or an empty string for the default factory.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		The servant factory, or null if no servant factory was
found for the given id.</para>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Communicator.addObjectFactory"><function>addObjectFactory</function></link></member>
		<member><link linkend="Ice.Communicator.removeObjectFactory"><function>removeObjectFactory</function></link></member>
		<member><link linkend="Ice.ObjectFactory"><classname>ObjectFactory</classname></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.Communicator.flushBatchRequests">
	<title><literal>flushBatchRequests</literal></title>
<synopsis><type>void</type> <function>flushBatchRequests</function>();</synopsis>
	<para>
Flush any pending batch requests for this communicator.
This causes all batch requests that were sent via proxies
obtained via this communicator to be sent to the server.</para>
    </section>
    <section id="Ice.Communicator.getDefaultContext">
	<title><literal>getDefaultContext</literal></title>
<synopsis><link linkend="Ice.Context"><type>Context</type></link> <function>getDefaultContext</function>();</synopsis>
	<para>
Get the currently-set default context.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		The currently established default context. If no
default context is currently set, <link linkend="Ice.Communicator.getDefaultContext"><function>getDefaultContext</function></link>
returns an empty context.</para>
	</section>
    </section>
    <section id="Ice.Communicator.getDefaultLocator">
	<title><literal>getDefaultLocator</literal></title>
<synopsis><classname>Locator*</classname> <function>getDefaultLocator</function>();</synopsis>
	<para>
Get the default locator this communicator.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		The default locator for this communicator.</para>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Communicator.setDefaultLocator"><function>setDefaultLocator</function></link></member>
		<member><link linkend="Ice.Locator"><classname>Locator</classname></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.Communicator.getDefaultRouter">
	<title><literal>getDefaultRouter</literal></title>
<synopsis><classname>Router*</classname> <function>getDefaultRouter</function>();</synopsis>
	<para>
Get the default router this communicator.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		The default router for this communicator.</para>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Communicator.setDefaultRouter"><function>setDefaultRouter</function></link></member>
		<member><link linkend="Ice.Router"><classname>Router</classname></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.Communicator.getLogger">
	<title><literal>getLogger</literal></title>
<synopsis><link linkend="Ice.Logger"><classname>Logger</classname></link> <function>getLogger</function>();</synopsis>
	<para>
Get the logger for this communicator.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		This communicator's logger.</para>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Communicator.setLogger"><function>setLogger</function></link></member>
		<member><link linkend="Ice.Logger"><classname>Logger</classname></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.Communicator.getPluginManager">
	<title><literal>getPluginManager</literal></title>
<synopsis><link linkend="Ice.PluginManager"><classname>PluginManager</classname></link> <function>getPluginManager</function>();</synopsis>
	<para>
Get the plug-in manager for this communicator.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		This communicator's plug-in manager.</para>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.PluginManager"><classname>PluginManager</classname></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.Communicator.getProperties">
	<title><literal>getProperties</literal></title>
<synopsis><link linkend="Ice.Properties"><classname>Properties</classname></link> <function>getProperties</function>();</synopsis>
	<para>
Get the properties for this communicator.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		This communicator's properties.</para>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Properties"><classname>Properties</classname></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.Communicator.getStats">
	<title><literal>getStats</literal></title>
<synopsis><link linkend="Ice.Stats"><classname>Stats</classname></link> <function>getStats</function>();</synopsis>
	<para>
Get the statistics callback object for this communicator.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		This communicator's statistics callback object.</para>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Communicator.setStats"><function>setStats</function></link></member>
		<member><link linkend="Ice.Stats"><classname>Stats</classname></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.Communicator.proxyToString">
	<title><literal>proxyToString</literal></title>
<synopsis><type>string</type> <function>proxyToString</function>(<type>Object*</type> <parameter>obj</parameter>);</synopsis>
	<para>
Convert a proxy into a string.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>obj</parameter></term>
		    <listitem>
			<para>
			    The proxy to convert into a string.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		The "stringified" proxy.</para>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Communicator.stringToProxy"><function>stringToProxy</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.Communicator.removeObjectFactory">
	<title><literal>removeObjectFactory</literal></title>
<synopsis><type>void</type> <function>removeObjectFactory</function>(<type>string</type> <parameter>id</parameter>);</synopsis>
	<para>
Remove a servant factory from this communicator. Removing an id
for which no factory is registered throws <link linkend="Ice.NotRegisteredException"><classname>NotRegisteredException</classname></link>.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>id</parameter></term>
		    <listitem>
			<para>
			    The type id for which the factory can create instances,
or an empty string for the default factory.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Communicator.addObjectFactory"><function>addObjectFactory</function></link></member>
		<member><link linkend="Ice.Communicator.findObjectFactory"><function>findObjectFactory</function></link></member>
		<member><link linkend="Ice.ObjectFactory"><classname>ObjectFactory</classname></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.Communicator.setDefaultContext">
	<title><literal>setDefaultContext</literal></title>
<synopsis><type>void</type> <function>setDefaultContext</function>(<link linkend="Ice.Context"><type>Context</type></link> <parameter>ctx</parameter>);</synopsis>
	<para>
Set a default context on this communicator. Once set,
all proxies that do not explicitly override the context
on a per-proxy or per-invocation basis send this context
with every invocation. To clear a context, call
<literal>setContext</literal> with an empty context.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>ctx</parameter></term>
		    <listitem>
			<para>
			    The default context to be set.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.Communicator.setDefaultLocator">
	<title><literal>setDefaultLocator</literal></title>
<synopsis><type>void</type> <function>setDefaultLocator</function>(<classname>Locator*</classname> <parameter>loc</parameter>);</synopsis>
	<para>
Set a default &Ice; locator for this communicator. All newly
created proxy and object adapters will use this default
locator. To disable the default locator, null can be used.
Note that this operation has no effect on existing proxies or
object adapters.
<note><para> You can also set a locator for an individual proxy
by calling the operation <literal>ice_locator</literal> on the proxy, or for an
object adapter by calling the operation <literal>setLocator</literal> on the
object adapter.</para></note></para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>loc</parameter></term>
		    <listitem>
			<para>
			    The default locator to use for this communicator.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Communicator.getDefaultLocator"><function>getDefaultLocator</function></link></member>
		<member><link linkend="Ice.Locator"><classname>Locator</classname></link></member>
		<member><link linkend="Ice.ObjectAdapter.setLocator"><function>ObjectAdapter::setLocator</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.Communicator.setDefaultRouter">
	<title><literal>setDefaultRouter</literal></title>
<synopsis><type>void</type> <function>setDefaultRouter</function>(<classname>Router*</classname> <parameter>rtr</parameter>);</synopsis>
	<para>
Set a default router for this communicator. All newly
created proxies will use this default router. To disable the
default router, null can be used. Note that this
operation has no effect on existing proxies.
<note><para> You can also set a router for an individual proxy
by calling the operation <literal>ice_router</literal> on the proxy.</para></note></para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>rtr</parameter></term>
		    <listitem>
			<para>
			    The default router to use for this communicator.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Communicator.getDefaultRouter"><function>getDefaultRouter</function></link></member>
		<member><link linkend="Ice.Router"><classname>Router</classname></link></member>
		<member><link linkend="Ice.ObjectAdapter.addRouter"><function>ObjectAdapter::addRouter</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.Communicator.setLogger">
	<title><literal>setLogger</literal></title>
<synopsis><type>void</type> <function>setLogger</function>(<link linkend="Ice.Logger"><classname>Logger</classname></link> <parameter>log</parameter>);</synopsis>
	<para>
Set the logger for this communicator.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>log</parameter></term>
		    <listitem>
			<para>
			    The logger to use for this communicator.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Communicator.getLogger"><function>getLogger</function></link></member>
		<member><link linkend="Ice.Logger"><classname>Logger</classname></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.Communicator.setStats">
	<title><literal>setStats</literal></title>
<synopsis><type>void</type> <function>setStats</function>(<link linkend="Ice.Stats"><classname>Stats</classname></link> <parameter>st</parameter>);</synopsis>
	<para>
Set the statistics callback object for this communicator.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>st</parameter></term>
		    <listitem>
			<para>
			    The statistics callback object to use for this
communicator.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Communicator.getStats"><function>getStats</function></link></member>
		<member><link linkend="Ice.Stats"><classname>Stats</classname></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.Communicator.shutdown">
	<title><literal>shutdown</literal></title>
<synopsis><type>void</type> <function>shutdown</function>();</synopsis>
	<para>
Shuts down this communicator's server functionality, including
the deactivation of all object adapters. Subsequent calls to
<link linkend="Ice.Communicator.shutdown"><function>shutdown</function></link> are ignored.
<note><para> After <link linkend="Ice.Communicator.shutdown"><function>shutdown</function></link> returns, no new requests are
processed. However, requests that have been started before
<link linkend="Ice.Communicator.shutdown"><function>shutdown</function></link> was called might still be active. You can use
<link linkend="Ice.Communicator.waitForShutdown"><function>waitForShutdown</function></link> to wait for the completion of all
requests. </para></note></para>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Communicator.destroy"><function>destroy</function></link></member>
		<member><link linkend="Ice.Communicator.waitForShutdown"><function>waitForShutdown</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.deactivate"><function>ObjectAdapter::deactivate</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.Communicator.stringToProxy">
	<title><literal>stringToProxy</literal></title>
<synopsis><type>Object*</type> <function>stringToProxy</function>(<type>string</type> <parameter>str</parameter>);</synopsis>
	<para>
Convert a string into a proxy. For example,
<literal>MyCategory/MyObject:tcp -h some_host -p
10000</literal> creates a proxy that refers to the &Ice; object
having an identity with a name "MyObject" and a category
"MyCategory", with the server running on host "some_host", port
10000. If the string does not parse correctly, the operation
throws <link linkend="Ice.ProxyParseException"><classname>ProxyParseException</classname></link>.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>str</parameter></term>
		    <listitem>
			<para>
			    The string to convert into a proxy.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		The proxy.</para>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Communicator.proxyToString"><function>proxyToString</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.Communicator.waitForShutdown">
	<title><literal>waitForShutdown</literal></title>
<synopsis><type>void</type> <function>waitForShutdown</function>();</synopsis>
	<para>
Wait until this communicator's server functionality has shut
down completely. Calling <link linkend="Ice.Communicator.shutdown"><function>shutdown</function></link> initiates shutdown, and
<link linkend="Ice.Communicator.waitForShutdown"><function>waitForShutdown</function></link> only returns when all outstanding requests
have completed. A typical use of this operation is to call it
from the main thread, which then waits until some other thread
calls <link linkend="Ice.Communicator.shutdown"><function>shutdown</function></link>. After shutdown is complete, the main thread
returns and can do some cleanup work before it finally calls
<link linkend="Ice.Communicator.destroy"><function>destroy</function></link> to also shut down the client functionality, and then
exits the application.</para>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Communicator.shutdown"><function>shutdown</function></link></member>
		<member><link linkend="Ice.Communicator.destroy"><function>destroy</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.waitForDeactivate"><function>ObjectAdapter::waitForDeactivate</function></link></member>
	    </simplelist></para></section>
    </section>
</section>
<section id="Ice.CommunicatorDestroyedException">
    <title><literal>Ice::CommunicatorDestroyedException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>CommunicatorDestroyedException</classname></synopsis>
	<para>
This exception is raised if the <link linkend="Ice.Communicator"><classname>Communicator</classname></link> has been destroyed.</para>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Communicator.destroy"><function>Communicator::destroy</function></link></member>
	    </simplelist></para></section>
    </section>
</section>
<section id="Ice.CompressionException">
    <title><literal>Ice::CompressionException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>CompressionException</classname>
    extends 
	<link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link></synopsis>
	<para>
This exception is a specialization of <link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link> that is
raised if there is a problem with compressing or uncompressing
data.</para>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.CompressionException.reason"><type>reason</type></link></term>
		    <listitem>
			<para>
The reason for the failure.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.CompressionException.reason">
	<title><literal>reason</literal></title>
<synopsis><type>string</type> <structfield>reason</structfield>;</synopsis>
	<para>
The reason for the failure.</para>
    </section>
</section>
<section id="Ice.CompressionNotSupportedException">
    <title><literal>Ice::CompressionNotSupportedException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>CompressionNotSupportedException</classname>
    extends 
	<link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link></synopsis>
	<para>
This exception is a specialization of <link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link> that is
raised if a compressed protocol message has been received by an
&Ice; version that does not support compression.</para>
    </section>
</section>
<section id="Ice.ConnectFailedException">
    <title><literal>Ice::ConnectFailedException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>ConnectFailedException</classname>
    extends 
	<link linkend="Ice.SocketException"><classname>SocketException</classname></link></synopsis>
	<para>
This exception is a specialization of <link linkend="Ice.SocketException"><classname>SocketException</classname></link> for
connection failures.</para>
	<section>
	    <title>Derived Exceptions</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.ConnectionRefusedException"><classname>ConnectionRefusedException</classname></link></member>
	    </simplelist></para></section>
    </section>
</section>
<section id="Ice.ConnectTimeoutException">
    <title><literal>Ice::ConnectTimeoutException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>ConnectTimeoutException</classname>
    extends 
	<link linkend="Ice.TimeoutException"><classname>TimeoutException</classname></link></synopsis>
	<para>
This exception is a specialization of <link linkend="Ice.TimeoutException"><classname>TimeoutException</classname></link> for
connection establishment timeout conditions.</para>
    </section>
</section>
<section id="Ice.Connection">
    <title><literal>Ice::Connection</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local interface <classname>Connection</classname></synopsis>
	<para>
The user-level interface to a connection.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Current.con"><type>Current::con</type></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Operation Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.Connection.close"><function>close</function></link></term>
		    <listitem>
			<para>
Close a connection, either gracefully or forcefully.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Connection.createProxy"><function>createProxy</function></link></term>
		    <listitem>
			<para>
Create a special proxy that always uses this connection.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Connection.flushBatchRequests"><function>flushBatchRequests</function></link></term>
		    <listitem>
			<para>
Flush any pending batch requests for this connection.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Connection.getAdapter"><function>getAdapter</function></link></term>
		    <listitem>
			<para>
Get the object adapter that dispatches requests for this
connection.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Connection.setAdapter"><function>setAdapter</function></link></term>
		    <listitem>
			<para>
Explicitly set an object adapter that dispatches requests that
are received over this connection.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Connection.timeout"><function>timeout</function></link></term>
		    <listitem>
			<para>
Get the timeout for the connection.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Connection.toString"><function>toString</function></link></term>
		    <listitem>
			<para>
Return a description of the connection as human readable text,
suitable for logging or error messages.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Connection.type"><function>type</function></link></term>
		    <listitem>
			<para>
Return the connection type.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.Connection.close">
	<title><literal>close</literal></title>
<synopsis><type>void</type> <function>close</function>(<type>bool</type> <parameter>force</parameter>);</synopsis>
	<para>
Close a connection, either gracefully or forcefully. If a
connection is closed forcefully, it closes immediately, without
sending the relevant close connection protocol messages to the
peer and waiting for the peer to acknowledge these protocol
messages.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>force</parameter></term>
		    <listitem>
			<para>
			    If true, close forcefully. Otherwise the
connection is closed gracefully.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.Connection.createProxy">
	<title><literal>createProxy</literal></title>
<synopsis><type>Object*</type> <function>createProxy</function>(<link linkend="Ice.Identity"><structname>Identity</structname></link> <parameter>id</parameter>);</synopsis>
	<para>
Create a special proxy that always uses this connection. This
can be used for callbacks from a server to a client if the
server cannot directly establish a connection to the client,
for example because of firewalls. In this case, the server
would create a proxy using an already established connection
from the client.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>id</parameter></term>
		    <listitem>
			<para>
			    The identity for which a proxy is to be created.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		A proxy that matches the given identity and uses this
connection.</para>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Connection.setAdapter"><function>setAdapter</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.Connection.flushBatchRequests">
	<title><literal>flushBatchRequests</literal></title>
<synopsis><type>void</type> <function>flushBatchRequests</function>();</synopsis>
	<para>
Flush any pending batch requests for this connection. This
causes all batch requests that were sent via proxies that use
this connection to be sent to the server.</para>
    </section>
    <section id="Ice.Connection.getAdapter">
	<title><literal>getAdapter</literal></title>
<synopsis><link linkend="Ice.ObjectAdapter"><classname>ObjectAdapter</classname></link> <function>getAdapter</function>();</synopsis>
	<para>
Get the object adapter that dispatches requests for this
connection.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		The object adapter that dispatches requests for the
connection, or null if no adapter is set.</para>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Connection.setAdapter"><function>setAdapter</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.Connection.setAdapter">
	<title><literal>setAdapter</literal></title>
<synopsis><type>void</type> <function>setAdapter</function>(<link linkend="Ice.ObjectAdapter"><classname>ObjectAdapter</classname></link> <parameter>adapter</parameter>);</synopsis>
	<para>
Explicitly set an object adapter that dispatches requests that
are received over this connection. A client can invoke an
operation on a server using a proxy, and then set an object
adapter for the outgoing connection that is used by the proxy
in order to receive callbacks. This is useful if the server
cannot establish a connection back to the client, for example
because of firewalls.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>adapter</parameter></term>
		    <listitem>
			<para>
			    The object adapter that should be used by this
connection to dispatch requests. The object adapter must be
activated. When the object adapter is deactivated, it is
automatically removed from the connection.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Connection.createProxy"><function>createProxy</function></link></member>
		<member><link linkend="Ice.Connection.setAdapter"><function>setAdapter</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.Connection.timeout">
	<title><literal>timeout</literal></title>
<synopsis><type>int</type> <function>timeout</function>();</synopsis>
	<para>
Get the timeout for the connection.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		The connection's timeout.</para>
	</section>
    </section>
    <section id="Ice.Connection.toString">
	<title><literal>toString</literal></title>
<synopsis><type>string</type> <function>toString</function>();</synopsis>
	<para>
Return a description of the connection as human readable text,
suitable for logging or error messages.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		The description of the connection as human readable
text.</para>
	</section>
    </section>
    <section id="Ice.Connection.type">
	<title><literal>type</literal></title>
<synopsis><type>string</type> <function>type</function>();</synopsis>
	<para>
Return the connection type. This corresponds to the endpoint
type, i.e., "tcp", "udp", etc.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		The type of the connection.</para>
	</section>
    </section>
</section>
<section id="Ice.ConnectionLostException">
    <title><literal>Ice::ConnectionLostException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>ConnectionLostException</classname>
    extends 
	<link linkend="Ice.SocketException"><classname>SocketException</classname></link></synopsis>
	<para>
This exception is a specialization of <link linkend="Ice.SocketException"><classname>SocketException</classname></link>, indicating
a lost connection.</para>
    </section>
</section>
<section id="Ice.ConnectionNotValidatedException">
    <title><literal>Ice::ConnectionNotValidatedException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>ConnectionNotValidatedException</classname>
    extends 
	<link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link></synopsis>
	<para>
This exception is a specialization of <link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link>, that is
raised if a message is received over a connection that is not yet
validated.</para>
    </section>
</section>
<section id="Ice.ConnectionRefusedException">
    <title><literal>Ice::ConnectionRefusedException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>ConnectionRefusedException</classname>
    extends 
	<link linkend="Ice.ConnectFailedException"><classname>ConnectFailedException</classname></link></synopsis>
	<para>
This exception is a specialization of <link linkend="Ice.ConnectFailedException"><classname>ConnectFailedException</classname></link> for
connection failures, where the server host actively refuses a
connection.</para>
    </section>
</section>
<section id="Ice.ConnectionTimeoutException">
    <title><literal>Ice::ConnectionTimeoutException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>ConnectionTimeoutException</classname>
    extends 
	<link linkend="Ice.TimeoutException"><classname>TimeoutException</classname></link></synopsis>
	<para>
This exception is a specialization of <link linkend="Ice.TimeoutException"><classname>TimeoutException</classname></link>, and
indicates that a connection has been shut down because it has been
idle for some time.</para>
    </section>
</section>
<section id="Ice.Current">
    <title><literal>Ice::Current</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local struct <structname>Current</structname></synopsis>
	<para>
Information about the current method invocation for servers. Each
operation on the server has a <link linkend="Ice.Current"><structname>Current</structname></link> as its implicit final
parameter. <link linkend="Ice.Current"><structname>Current</structname></link> is mostly used for &Ice; services. Most
applications ignore this parameter.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.ServantLocator.finished"><function>ServantLocator::finished</function></link></member>
		<member><link linkend="Ice.ServantLocator.locate"><function>ServantLocator::locate</function></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.Current.adapter"><type>adapter</type></link></term>
		    <listitem>
			<para>
The object adapter.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Current.con"><type>con</type></link></term>
		    <listitem>
			<para>
Information about the connection over which the current method
invocation was received.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Current.ctx"><type>ctx</type></link></term>
		    <listitem>
			<para>
The request context, as received from the client.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Current.facet"><type>facet</type></link></term>
		    <listitem>
			<para>
The facet.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Current.id"><type>id</type></link></term>
		    <listitem>
			<para>
The &Ice; object identity.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Current.mode"><type>mode</type></link></term>
		    <listitem>
			<para>
The mode of the operation.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Current.operation"><type>operation</type></link></term>
		    <listitem>
			<para>
The operation name.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.Current.adapter">
	<title><literal>adapter</literal></title>
<synopsis><link linkend="Ice.ObjectAdapter"><classname>ObjectAdapter</classname></link> <structfield>adapter</structfield>;</synopsis>
	<para>
The object adapter.</para>
    </section>
    <section id="Ice.Current.con">
	<title><literal>con</literal></title>
<synopsis><link linkend="Ice.Connection"><classname>Connection</classname></link> <structfield>con</structfield>;</synopsis>
	<para>
Information about the connection over which the current method
invocation was received. If the invocation is direct due to
collocation optimization, this value is set to null.</para>
    </section>
    <section id="Ice.Current.ctx">
	<title><literal>ctx</literal></title>
<synopsis><link linkend="Ice.Context"><type>Context</type></link> <structfield>ctx</structfield>;</synopsis>
	<para>
The request context, as received from the client.</para>
    </section>
    <section id="Ice.Current.facet">
	<title><literal>facet</literal></title>
<synopsis><type>string</type> <structfield>facet</structfield>;</synopsis>
	<para>
The facet.</para>
    </section>
    <section id="Ice.Current.id">
	<title><literal>id</literal></title>
<synopsis><link linkend="Ice.Identity"><structname>Identity</structname></link> <structfield>id</structfield>;</synopsis>
	<para>
The &Ice; object identity.</para>
    </section>
    <section id="Ice.Current.mode">
	<title><literal>mode</literal></title>
<synopsis><link linkend="Ice.OperationMode"><type>OperationMode</type></link> <structfield>mode</structfield>;</synopsis>
	<para>
The mode of the operation.</para>
    </section>
    <section id="Ice.Current.operation">
	<title><literal>operation</literal></title>
<synopsis><type>string</type> <structfield>operation</structfield>;</synopsis>
	<para>
The operation name.</para>
    </section>
</section>
<section id="Ice.DNSException">
    <title><literal>Ice::DNSException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>DNSException</classname></synopsis>
	<para>
This exception indicates a DNS problem. For details on the cause,
<link linkend="Ice.DNSException.error"><type>error</type></link> should be inspected.</para>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.DNSException.error"><type>error</type></link></term>
		    <listitem>
			<para>
The error number describing the DNS problem.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.DNSException.host"><type>host</type></link></term>
		    <listitem>
			<para>
The host name that could not be resolved.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.DNSException.error">
	<title><literal>error</literal></title>
<synopsis><type>int</type> <structfield>error</structfield>;</synopsis>
	<para>
The error number describing the DNS problem. For C++ and Unix,
this is equivalent to <literal>h_errno</literal>. For C++ and
Windows, this is the value returned by
<literal>WSAGetLastError()</literal>.</para>
    </section>
    <section id="Ice.DNSException.host">
	<title><literal>host</literal></title>
<synopsis><type>string</type> <structfield>host</structfield>;</synopsis>
	<para>
The host name that could not be resolved.</para>
    </section>
</section>
<section id="Ice.DatagramLimitException">
    <title><literal>Ice::DatagramLimitException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>DatagramLimitException</classname>
    extends 
	<link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link></synopsis>
	<para>
This exception is a specialization of <link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link> that is
raised if a datagram exceeds the configured send or receive buffer
size, or exceeds the maximum payload size of a UDP packet (65507 bytes).</para>
    </section>
</section>
<section id="Ice.EncapsulationException">
    <title><literal>Ice::EncapsulationException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>EncapsulationException</classname>
    extends 
	<link linkend="Ice.MarshalException"><classname>MarshalException</classname></link></synopsis>
	<para>
This exception is a specialization of <link linkend="Ice.MarshalException"><classname>MarshalException</classname></link>,
indicating a malformed data encapsulation.</para>
    </section>
</section>
<section id="Ice.EndpointParseException">
    <title><literal>Ice::EndpointParseException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>EndpointParseException</classname></synopsis>
	<para>
This exception is raised if there was an error while parsing an
endpoint.</para>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.EndpointParseException.str"><type>str</type></link></term>
		    <listitem>
			<para>
The string that could not be parsed.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.EndpointParseException.str">
	<title><literal>str</literal></title>
<synopsis><type>string</type> <structfield>str</structfield>;</synopsis>
	<para>
The string that could not be parsed.</para>
    </section>
</section>
<section id="Ice.FacetNotExistException">
    <title><literal>Ice::FacetNotExistException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>FacetNotExistException</classname>
    extends 
	<link linkend="Ice.RequestFailedException"><classname>RequestFailedException</classname></link></synopsis>
	<para>
This exception is raised if no facet with the given name exists,
but at least one facet with the given identity exists.</para>
    </section>
</section>
<section id="Ice.ForcedCloseConnectionException">
    <title><literal>Ice::ForcedCloseConnectionException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>ForcedCloseConnectionException</classname>
    extends 
	<link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link></synopsis>
	<para>
This exception is raised by an operation call if the application
forcefully closes the connection used by this call with
<link linkend="Ice.Connection.close"><function>Connection::close</function></link>.</para>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Connection.close"><function>Connection::close</function></link></member>
	    </simplelist></para></section>
    </section>
</section>
<section id="Ice.Identity">
    <title><literal>Ice::Identity</literal></title>
    <section>
	<title>Overview</title>
<synopsis>struct <structname>Identity</structname></synopsis>
	<para>
The identity of an &Ice; object. An empty <link linkend="Ice.Identity.name"><type>name</type></link> denotes a null
object.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Freeze.Evictor.add"><function>::Freeze::Evictor::add</function></link></member>
		<member><link linkend="Freeze.Evictor.addFacet"><function>::Freeze::Evictor::addFacet</function></link></member>
		<member><link linkend="Freeze.Evictor.createObject"><function>::Freeze::Evictor::createObject</function></link></member>
		<member><link linkend="Freeze.Evictor.destroyObject"><function>::Freeze::Evictor::destroyObject</function></link></member>
		<member><link linkend="Freeze.Evictor.hasFacet"><function>::Freeze::Evictor::hasFacet</function></link></member>
		<member><link linkend="Freeze.Evictor.hasObject"><function>::Freeze::Evictor::hasObject</function></link></member>
		<member><link linkend="Freeze.Evictor.keep"><function>::Freeze::Evictor::keep</function></link></member>
		<member><link linkend="Freeze.Evictor.keepFacet"><function>::Freeze::Evictor::keepFacet</function></link></member>
		<member><link linkend="Freeze.Evictor.release"><function>::Freeze::Evictor::release</function></link></member>
		<member><link linkend="Freeze.Evictor.releaseFacet"><function>::Freeze::Evictor::releaseFacet</function></link></member>
		<member><link linkend="Freeze.Evictor.remove"><function>::Freeze::Evictor::remove</function></link></member>
		<member><link linkend="Freeze.Evictor.removeFacet"><function>::Freeze::Evictor::removeFacet</function></link></member>
		<member><link linkend="Freeze.EvictorIterator.next"><function>::Freeze::EvictorIterator::next</function></link></member>
		<member><link linkend="Freeze.ServantInitializer.initialize"><function>::Freeze::ServantInitializer::initialize</function></link></member>
		<member><link linkend="Ice.Connection.createProxy"><function>Connection::createProxy</function></link></member>
		<member><link linkend="Ice.Current.id"><type>Current::id</type></link></member>
		<member><link linkend="Ice.IdentitySeq"><type>IdentitySeq</type></link></member>
		<member><link linkend="Ice.IllegalIdentityException.id"><type>IllegalIdentityException::id</type></link></member>
		<member><link linkend="Ice.Locator.findObjectById"><function>Locator::findObjectById</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.add"><function>ObjectAdapter::add</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.addFacet"><function>ObjectAdapter::addFacet</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.createDirectProxy"><function>ObjectAdapter::createDirectProxy</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.createProxy"><function>ObjectAdapter::createProxy</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.createReverseProxy"><function>ObjectAdapter::createReverseProxy</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.find"><function>ObjectAdapter::find</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.findAllFacets"><function>ObjectAdapter::findAllFacets</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.findFacet"><function>ObjectAdapter::findFacet</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.remove"><function>ObjectAdapter::remove</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.removeAllFacets"><function>ObjectAdapter::removeAllFacets</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.removeFacet"><function>ObjectAdapter::removeFacet</function></link></member>
		<member><link linkend="Ice.ObjectDict"><type>ObjectDict</type></link></member>
		<member><link linkend="Ice.RequestFailedException.id"><type>RequestFailedException::id</type></link></member>
		<member><link linkend="IcePack.Admin.getObjectDescriptor"><function>::IcePack::Admin::getObjectDescriptor</function></link></member>
		<member><link linkend="IcePack.Admin.removeObject"><function>::IcePack::Admin::removeObject</function></link></member>
		<member><link linkend="IcePack.Query.findObjectById"><function>::IcePack::Query::findObjectById</function></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.Identity.category"><type>category</type></link></term>
		    <listitem>
			<para>
The &Ice; object category.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Identity.name"><type>name</type></link></term>
		    <listitem>
			<para>
The name of the &Ice; object.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.Identity.category">
	<title><literal>category</literal></title>
<synopsis><type>string</type> <structfield>category</structfield>;</synopsis>
	<para>
The &Ice; object category.</para>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.ServantLocator"><classname>ServantLocator</classname></link></member>
		<member><link linkend="Ice.ObjectAdapter.addServantLocator"><function>ObjectAdapter::addServantLocator</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.Identity.name">
	<title><literal>name</literal></title>
<synopsis><type>string</type> <structfield>name</structfield>;</synopsis>
	<para>
The name of the &Ice; object.</para>
    </section>
</section>
<section id="Ice.IdentityParseException">
    <title><literal>Ice::IdentityParseException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>IdentityParseException</classname></synopsis>
	<para>
This exception is raised if there was an error while parsing a
stringified identity.</para>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.IdentityParseException.str"><type>str</type></link></term>
		    <listitem>
			<para>
The string that could not be parsed.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.IdentityParseException.str">
	<title><literal>str</literal></title>
<synopsis><type>string</type> <structfield>str</structfield>;</synopsis>
	<para>
The string that could not be parsed.</para>
    </section>
</section>
<section id="Ice.IllegalIdentityException">
    <title><literal>Ice::IllegalIdentityException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>IllegalIdentityException</classname></synopsis>
	<para>
This exception is raised if an illegal identity is encountered.</para>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.IllegalIdentityException.id"><type>id</type></link></term>
		    <listitem>
			<para>
The illegal identity.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.IllegalIdentityException.id">
	<title><literal>id</literal></title>
<synopsis><link linkend="Ice.Identity"><structname>Identity</structname></link> <structfield>id</structfield>;</synopsis>
	<para>
The illegal identity.</para>
    </section>
</section>
<section id="Ice.IllegalIndirectionException">
    <title><literal>Ice::IllegalIndirectionException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>IllegalIndirectionException</classname>
    extends 
	<link linkend="Ice.MarshalException"><classname>MarshalException</classname></link></synopsis>
	<para>
This exception is a specialization of <link linkend="Ice.MarshalException"><classname>MarshalException</classname></link>,
indicating an illegal indirection during unmarshaling.</para>
    </section>
</section>
<section id="Ice.IllegalMessageSizeException">
    <title><literal>Ice::IllegalMessageSizeException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>IllegalMessageSizeException</classname>
    extends 
	<link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link></synopsis>
	<para>
This exception is a specialization of <link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link>,
indicating that the message size is illegal, i.e., it is
less than the minimum required size.</para>
    </section>
</section>
<section id="Ice.InitializationException">
    <title><literal>Ice::InitializationException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>InitializationException</classname></synopsis>
	<para>
This exception is raised when a failure occurs during initialization.</para>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.InitializationException.reason"><type>reason</type></link></term>
		    <listitem>
			<para>
The reason for the failure.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.InitializationException.reason">
	<title><literal>reason</literal></title>
<synopsis><type>string</type> <structfield>reason</structfield>;</synopsis>
	<para>
The reason for the failure.</para>
    </section>
</section>
<section id="Ice.Locator">
    <title><literal>Ice::Locator</literal></title>
    <section>
	<title>Overview</title>
<synopsis>interface <classname>Locator</classname></synopsis>
	<para>
The &Ice; locator interface. This interface is used by clients to
lookup adapters and objects. It is also used by servers to get the
locator registry proxy.
<note><para> The <link linkend="Ice.Locator"><classname>Locator</classname></link> interface is intended to be used by
&Ice; internals and by locator implementations. Regular user code
should not attempt to use any functionality of this interface
directly.</para></note></para>
	<section>
	    <title>Operation Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.Locator.findAdapterById"><function>findAdapterById</function></link></term>
		    <listitem>
			<para>
Find an adapter by id and return its proxy (a dummy direct
proxy created by the adapter).</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Locator.findObjectById"><function>findObjectById</function></link></term>
		    <listitem>
			<para>
Find an object by identity and return its proxy.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Locator.getRegistry"><function>getRegistry</function></link></term>
		    <listitem>
			<para>
Get the locator registry.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.Locator.findAdapterById">
	<title><literal>findAdapterById</literal></title>
<synopsis>[ "amd" ]
<type>Object*</type> <function>findAdapterById</function>(<type>string</type> <parameter>id</parameter>)
    throws
	<link linkend="Ice.AdapterNotFoundException"><classname>AdapterNotFoundException</classname></link>;</synopsis>
	<para>
Find an adapter by id and return its proxy (a dummy direct
proxy created by the adapter).</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>id</parameter></term>
		    <listitem>
			<para>
			    The adapter id.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		The adapter proxy, or null if the adapter is not active.</para>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.AdapterNotFoundException"><classname>AdapterNotFoundException</classname></link></term>
		    <listitem>
			<para>
			    Raised if the adapter cannot be
found.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.Locator.findObjectById">
	<title><literal>findObjectById</literal></title>
<synopsis>[ "amd" ]
<type>Object*</type> <function>findObjectById</function>(<link linkend="Ice.Identity"><structname>Identity</structname></link> <parameter>id</parameter>)
    throws
	<link linkend="Ice.ObjectNotFoundException"><classname>ObjectNotFoundException</classname></link>;</synopsis>
	<para>
Find an object by identity and return its proxy.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>id</parameter></term>
		    <listitem>
			<para>
			    The identity.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		The proxy, or null if the object is not active.</para>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.ObjectNotFoundException"><classname>ObjectNotFoundException</classname></link></term>
		    <listitem>
			<para>
			    Raised if the object cannot
be found.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.Locator.getRegistry">
	<title><literal>getRegistry</literal></title>
<synopsis><classname>LocatorRegistry*</classname> <function>getRegistry</function>();</synopsis>
	<para>
Get the locator registry.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		The locator registry.</para>
	</section>
    </section>
</section>
<section id="Ice.LocatorRegistry">
    <title><literal>Ice::LocatorRegistry</literal></title>
    <section>
	<title>Overview</title>
<synopsis>interface <classname>LocatorRegistry</classname></synopsis>
	<para>
The &Ice; locator registry interface. This interface is used by
servers to register adapter endpoints with the locator.
<note><para> The <link linkend="Ice.LocatorRegistry"><classname>LocatorRegistry</classname></link> interface is intended to be used
by &Ice; internals and by locator implementations. Regular user
code should not attempt to use any functionality of this interface
directly.</para></note></para>
	<section>
	    <title>Operation Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.LocatorRegistry.setAdapterDirectProxy"><function>setAdapterDirectProxy</function></link></term>
		    <listitem>
			<para>
Set the adapter endpoints with the locator registry.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.LocatorRegistry.setServerProcessProxy"><function>setServerProcessProxy</function></link></term>
		    <listitem>
			<para>
Set the process proxy for a server.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.LocatorRegistry.setAdapterDirectProxy">
	<title><literal>setAdapterDirectProxy</literal></title>
<synopsis>[ "amd" ]
<type>void</type> <function>setAdapterDirectProxy</function>(<type>string</type> <parameter>id</parameter>,
    <type>Object*</type> <parameter>proxy</parameter>)
    throws
	<link linkend="Ice.AdapterNotFoundException"><classname>AdapterNotFoundException</classname></link>,
	<link linkend="Ice.AdapterAlreadyActiveException"><classname>AdapterAlreadyActiveException</classname></link>;</synopsis>
	<para>
Set the adapter endpoints with the locator registry.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>id</parameter></term>
		    <listitem>
			<para>
			    The adapter id.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>proxy</parameter></term>
		    <listitem>
			<para>
			    The adapter proxy (a dummy direct proxy created
by the adapter). The direct proxy contains the adapter
endpoints.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.AdapterNotFoundException"><classname>AdapterNotFoundException</classname></link></term>
		    <listitem>
			<para>
			    Raised if the adapter cannot
be found, or if the locator only allows
registered adapters to set their active proxy and the
adapter is not registered with the locator.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><literal>AdapterAlreadyActive</literal></term>
		    <listitem>
			<para>
			    Raised if an adapter with the same
id is already active.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.LocatorRegistry.setServerProcessProxy">
	<title><literal>setServerProcessProxy</literal></title>
<synopsis>[ "amd" ]
<type>void</type> <function>setServerProcessProxy</function>(<type>string</type> <parameter>id</parameter>,
    <classname>Process*</classname> <parameter>proxy</parameter>)
    throws
	<link linkend="Ice.ServerNotFoundException"><classname>ServerNotFoundException</classname></link>;</synopsis>
	<para>
Set the process proxy for a server.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>id</parameter></term>
		    <listitem>
			<para>
			    The server id.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>proxy</parameter></term>
		    <listitem>
			<para>
			    The process proxy.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.ServerNotFoundException"><classname>ServerNotFoundException</classname></link></term>
		    <listitem>
			<para>
			    Raised if the server cannot
be found.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
</section>
<section id="Ice.Logger">
    <title><literal>Ice::Logger</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local interface <classname>Logger</classname></synopsis>
	<para>
The &Ice; message logger. Applications can provide their own logger
by implementing this interface and installing it in a communicator.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Communicator.getLogger"><function>Communicator::getLogger</function></link></member>
		<member><link linkend="Ice.Communicator.setLogger"><function>Communicator::setLogger</function></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Operation Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.Logger.error"><function>error</function></link></term>
		    <listitem>
			<para>
Log an error message.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Logger.print"><function>print</function></link></term>
		    <listitem>
			<para>
Print a message.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Logger.trace"><function>trace</function></link></term>
		    <listitem>
			<para>
Log a trace message.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Logger.warning"><function>warning</function></link></term>
		    <listitem>
			<para>
Log a warning message.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.Logger.error">
	<title><literal>error</literal></title>
<synopsis><type>void</type> <function>error</function>(<type>string</type> <parameter>message</parameter>);</synopsis>
	<para>
Log an error message.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>message</parameter></term>
		    <listitem>
			<para>
			    The error message to log.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Logger.warning"><function>warning</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.Logger.print">
	<title><literal>print</literal></title>
<synopsis><type>void</type> <function>print</function>(<type>string</type> <parameter>message</parameter>);</synopsis>
	<para>
Print a message. The message is printed literally, without
any decorations such as executable name or time stamp.</para>
    </section>
    <section id="Ice.Logger.trace">
	<title><literal>trace</literal></title>
<synopsis><type>void</type> <function>trace</function>(<type>string</type> <parameter>category</parameter>,
    <type>string</type> <parameter>message</parameter>);</synopsis>
	<para>
Log a trace message.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>category</parameter></term>
		    <listitem>
			<para>
			    The trace category.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>message</parameter></term>
		    <listitem>
			<para>
			    The trace message to log.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.Logger.warning">
	<title><literal>warning</literal></title>
<synopsis><type>void</type> <function>warning</function>(<type>string</type> <parameter>message</parameter>);</synopsis>
	<para>
Log a warning message.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>message</parameter></term>
		    <listitem>
			<para>
			    The warning message to log.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Logger.error"><function>error</function></link></member>
	    </simplelist></para></section>
    </section>
</section>
<section id="Ice.MarshalException">
    <title><literal>Ice::MarshalException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>MarshalException</classname>
    extends 
	<link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link></synopsis>
	<para>
This exception is a specialization of <link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link> that is
raised upon an error during marshaling or unmarshaling data.</para>
	<section>
	    <title>Derived Exceptions</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.EncapsulationException"><classname>EncapsulationException</classname></link></member>
		<member><link linkend="Ice.IllegalIndirectionException"><classname>IllegalIndirectionException</classname></link></member>
		<member><link linkend="Ice.MemoryLimitException"><classname>MemoryLimitException</classname></link></member>
		<member><link linkend="Ice.NegativeSizeException"><classname>NegativeSizeException</classname></link></member>
		<member><link linkend="Ice.NoObjectFactoryException"><classname>NoObjectFactoryException</classname></link></member>
		<member><link linkend="Ice.ProxyUnmarshalException"><classname>ProxyUnmarshalException</classname></link></member>
		<member><link linkend="Ice.UnmarshalOutOfBoundsException"><classname>UnmarshalOutOfBoundsException</classname></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.MarshalException.reason"><type>reason</type></link></term>
		    <listitem>
			<para>
The reason for the failure.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.MarshalException.reason">
	<title><literal>reason</literal></title>
<synopsis><type>string</type> <structfield>reason</structfield>;</synopsis>
	<para>
The reason for the failure.</para>
    </section>
</section>
<section id="Ice.MemoryLimitException">
    <title><literal>Ice::MemoryLimitException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>MemoryLimitException</classname>
    extends 
	<link linkend="Ice.MarshalException"><classname>MarshalException</classname></link></synopsis>
	<para>
This exception is a specialization of <link linkend="Ice.MarshalException"><classname>MarshalException</classname></link> that is
raised if the system-specific memory limit is exceeded during
marshaling or unmarshaling.</para>
    </section>
</section>
<section id="Ice.NegativeSizeException">
    <title><literal>Ice::NegativeSizeException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>NegativeSizeException</classname>
    extends 
	<link linkend="Ice.MarshalException"><classname>MarshalException</classname></link></synopsis>
	<para>
This exception is a specialization of <link linkend="Ice.MarshalException"><classname>MarshalException</classname></link> that is
raised if a negative size (e.g., a negative sequence size) is
received.</para>
    </section>
</section>
<section id="Ice.NoEndpointException">
    <title><literal>Ice::NoEndpointException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>NoEndpointException</classname></synopsis>
	<para>
This exception is raised if no suitable endpoint is available.</para>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.NoEndpointException.proxy"><type>proxy</type></link></term>
		    <listitem>
			<para>
The stringified proxy for which no suitable endpoint is
available.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.NoEndpointException.proxy">
	<title><literal>proxy</literal></title>
<synopsis><type>string</type> <structfield>proxy</structfield>;</synopsis>
	<para>
The stringified proxy for which no suitable endpoint is
available.</para>
    </section>
</section>
<section id="Ice.NoObjectFactoryException">
    <title><literal>Ice::NoObjectFactoryException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>NoObjectFactoryException</classname>
    extends 
	<link linkend="Ice.MarshalException"><classname>MarshalException</classname></link></synopsis>
	<para>
This exception is a specialization of <link linkend="Ice.MarshalException"><classname>MarshalException</classname></link> that is
raised if no suitable object factory was found during object
unmarshaling.</para>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.ObjectFactory"><classname>ObjectFactory</classname></link></member>
		<member><link linkend="Ice.Communicator.addObjectFactory"><function>Communicator::addObjectFactory</function></link></member>
		<member><link linkend="Ice.Communicator.removeObjectFactory"><function>Communicator::removeObjectFactory</function></link></member>
		<member><link linkend="Ice.Communicator.findObjectFactory"><function>Communicator::findObjectFactory</function></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.NoObjectFactoryException.type"><type>type</type></link></term>
		    <listitem>
			<para>
The absolute Slice type name of the object for which we
could not find a factory.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.NoObjectFactoryException.type">
	<title><literal>type</literal></title>
<synopsis><type>string</type> <structfield>type</structfield>;</synopsis>
	<para>
The absolute Slice type name of the object for which we
could not find a factory.</para>
    </section>
</section>
<section id="Ice.NotRegisteredException">
    <title><literal>Ice::NotRegisteredException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>NotRegisteredException</classname></synopsis>
	<para>
This exception is raised if an attempt is made to remove a servant,
facet, object factory, plug-in, object adapter, object, or user
exception factory that is not currently registered.</para>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.NotRegisteredException.id"><type>id</type></link></term>
		    <listitem>
			<para>
The id (or name) of the object that could not be removed.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.NotRegisteredException.kindOfObject"><type>kindOfObject</type></link></term>
		    <listitem>
			<para>
The kind of object that could not be removed: "servant",
"facet", "object factory", "plug-in", "object adapter",
"object", or "user exception factory".</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.NotRegisteredException.id">
	<title><literal>id</literal></title>
<synopsis><type>string</type> <structfield>id</structfield>;</synopsis>
	<para>
The id (or name) of the object that could not be removed.</para>
    </section>
    <section id="Ice.NotRegisteredException.kindOfObject">
	<title><literal>kindOfObject</literal></title>
<synopsis><type>string</type> <structfield>kindOfObject</structfield>;</synopsis>
	<para>
The kind of object that could not be removed: "servant",
"facet", "object factory", "plug-in", "object adapter",
"object", or "user exception factory".</para>
    </section>
</section>
<section id="Ice.ObjectAdapter">
    <title><literal>Ice::ObjectAdapter</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local interface <classname>ObjectAdapter</classname></synopsis>
	<para>
The object adapter, which is responsible for receiving requests
from endpoints, and for mapping between servants, identities, and
proxies.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Freeze.ServantInitializer.initialize"><function>::Freeze::ServantInitializer::initialize</function></link></member>
		<member><link linkend="Ice.Communicator.createObjectAdapter"><function>Communicator::createObjectAdapter</function></link></member>
		<member><link linkend="ommunicator.createObjectAdapterWithEndpoints"><function>Communicator::createObjectAdapterWithEndpoints</function></link></member>
		<member><link linkend="Ice.Connection.getAdapter"><function>Connection::getAdapter</function></link></member>
		<member><link linkend="Ice.Connection.setAdapter"><function>Connection::setAdapter</function></link></member>
		<member><link linkend="Ice.Current.adapter"><type>Current::adapter</type></link></member>
	    </simplelist></para></section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Communicator"><classname>Communicator</classname></link></member>
		<member><link linkend="Ice.ServantLocator"><classname>ServantLocator</classname></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Operation Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.ObjectAdapter.activate"><function>activate</function></link></term>
		    <listitem>
			<para>
Activate all endpoints that belong to this object
adapter.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ObjectAdapter.add"><function>add</function></link></term>
		    <listitem>
			<para>
Add a servant to this object adapter's Active Servant Map.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ObjectAdapter.addFacet"><function>addFacet</function></link></term>
		    <listitem>
			<para>
Like <link linkend="Ice.ObjectAdapter.add"><function>add</function></link>, but with a facet.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ObjectAdapter.addFacetWithUUID"><function>addFacetWithUUID</function></link></term>
		    <listitem>
			<para>
Like <link linkend="Ice.ObjectAdapter.addWithUUID"><function>addWithUUID</function></link>, but with a facet.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ObjectAdapter.addRouter"><function>addRouter</function></link></term>
		    <listitem>
			<para>
Add a router to this object adapter.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ObjectAdapter.addServantLocator"><function>addServantLocator</function></link></term>
		    <listitem>
			<para>
Add a Servant Locator to this object adapter.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ObjectAdapter.addWithUUID"><function>addWithUUID</function></link></term>
		    <listitem>
			<para>
Add a servant to this object adapter's Active Servant Map,
using an automatically generated UUID as its identity.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ObjectAdapter.createDirectProxy"><function>createDirectProxy</function></link></term>
		    <listitem>
			<para>
Create a "direct proxy" that matches this object adapter and
the given identity.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ObjectAdapter.createProxy"><function>createProxy</function></link></term>
		    <listitem>
			<para>
Create a proxy that matches this object adapter and the given
identity.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ObjectAdapter.createReverseProxy"><function>createReverseProxy</function></link></term>
		    <listitem>
			<para>
Create a "reverse proxy" that matches this object adapter and
the given identity.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ObjectAdapter.deactivate"><function>deactivate</function></link></term>
		    <listitem>
			<para>
Deactivate all endpoints that belong to this object
adapter.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ObjectAdapter.find"><function>find</function></link></term>
		    <listitem>
			<para>
Look up a servant in this object adapter's Active Servant Map
by the identity of the &Ice; object it implements.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ObjectAdapter.findAllFacets"><function>findAllFacets</function></link></term>
		    <listitem>
			<para>
Find all facets with the given identity in the Active Servant
Map.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ObjectAdapter.findByProxy"><function>findByProxy</function></link></term>
		    <listitem>
			<para>
Look up a servant in this object adapter's Active Servant Map,
given a proxy.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ObjectAdapter.findFacet"><function>findFacet</function></link></term>
		    <listitem>
			<para>
Like <link linkend="Ice.ObjectAdapter.find"><function>find</function></link>, but with a facet.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ObjectAdapter.findServantLocator"><function>findServantLocator</function></link></term>
		    <listitem>
			<para>
Find a Servant Locator installed with this object adapter.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ObjectAdapter.getCommunicator"><function>getCommunicator</function></link></term>
		    <listitem>
			<para>
Get the communicator this object adapter belongs to.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ObjectAdapter.getName"><function>getName</function></link></term>
		    <listitem>
			<para>
Get the name of this object adapter.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ObjectAdapter.hold"><function>hold</function></link></term>
		    <listitem>
			<para>
Temporarily hold receiving and dispatching requests.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ObjectAdapter.remove"><function>remove</function></link></term>
		    <listitem>
			<para>
Remove a servant (that is, the default facet) from the
object adapter's Active Servant Map.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ObjectAdapter.removeAllFacets"><function>removeAllFacets</function></link></term>
		    <listitem>
			<para>
Remove all facets with the given identity from the Active
Servant Map (that is, completely remove the &Ice; object,
including it's default facet).</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ObjectAdapter.removeFacet"><function>removeFacet</function></link></term>
		    <listitem>
			<para>
Like <link linkend="Ice.ObjectAdapter.remove"><function>remove</function></link>, but with a facet.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ObjectAdapter.setLocator"><function>setLocator</function></link></term>
		    <listitem>
			<para>
Set an &Ice; locator for this object adapter.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ObjectAdapter.waitForDeactivate"><function>waitForDeactivate</function></link></term>
		    <listitem>
			<para>
Wait until the object adapter has deactivated.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ObjectAdapter.waitForHold"><function>waitForHold</function></link></term>
		    <listitem>
			<para>
Wait until the object adapter holds requests.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.ObjectAdapter.activate">
	<title><literal>activate</literal></title>
<synopsis><type>void</type> <function>activate</function>();</synopsis>
	<para>
Activate all endpoints that belong to this object
adapter. After activation, the object adapter can dispatch
requests received through its endpoints.</para>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.ObjectAdapter.hold"><function>hold</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.deactivate"><function>deactivate</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.ObjectAdapter.add">
	<title><literal>add</literal></title>
<synopsis><type>Object*</type> <function>add</function>(<type>Object</type> <parameter>servant</parameter>,
    <link linkend="Ice.Identity"><structname>Identity</structname></link> <parameter>id</parameter>);</synopsis>
	<para>
Add a servant to this object adapter's Active Servant Map. Note
that one servant can implement several &Ice; objects by
registering the servant with multiple identities. Adding a
servant with an identity that is in the map already throws
<link linkend="Ice.AlreadyRegisteredException"><classname>AlreadyRegisteredException</classname></link>.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>servant</parameter></term>
		    <listitem>
			<para>
			    The servant to add.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>id</parameter></term>
		    <listitem>
			<para>
			    The identity of the &Ice; object that is
implemented by the servant.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		A proxy that matches the given identity and this object
adapter.</para>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Identity"><structname>Identity</structname></link></member>
		<member><link linkend="Ice.ObjectAdapter.addFacet"><function>addFacet</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.addWithUUID"><function>addWithUUID</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.remove"><function>remove</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.find"><function>find</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.ObjectAdapter.addFacet">
	<title><literal>addFacet</literal></title>
<synopsis><type>Object*</type> <function>addFacet</function>(<type>Object</type> <parameter>servant</parameter>,
    <link linkend="Ice.Identity"><structname>Identity</structname></link> <parameter>id</parameter>,
    <type>string</type> <parameter>facet</parameter>);</synopsis>
	<para>
Like <link linkend="Ice.ObjectAdapter.add"><function>add</function></link>, but with a facet. Calling <literal>add(servant, * id)</literal>
is equivalent to calling <link linkend="Ice.ObjectAdapter.addFacet"><function>addFacet</function></link> with an empty
facet.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>servant</parameter></term>
		    <listitem>
			<para>
			    The servant to add.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>id</parameter></term>
		    <listitem>
			<para>
			    The identity of the &Ice; object that is
implemented by the servant.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>facet</parameter></term>
		    <listitem>
			<para>
			    The facet. An empty facet means the default
facet.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		A proxy that matches the given identity, facet, and
this object adapter.</para>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Identity"><structname>Identity</structname></link></member>
		<member><link linkend="Ice.ObjectAdapter.add"><function>add</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.addFacetWithUUID"><function>addFacetWithUUID</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.removeFacet"><function>removeFacet</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.findFacet"><function>findFacet</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.ObjectAdapter.addFacetWithUUID">
	<title><literal>addFacetWithUUID</literal></title>
<synopsis><type>Object*</type> <function>addFacetWithUUID</function>(<type>Object</type> <parameter>servant</parameter>,
    <type>string</type> <parameter>facet</parameter>);</synopsis>
	<para>
Like <link linkend="Ice.ObjectAdapter.addWithUUID"><function>addWithUUID</function></link>, but with a facet. Calling
<literal>addWithUUID(servant)</literal> is equivalent to calling
<link linkend="Ice.ObjectAdapter.addFacetWithUUID"><function>addFacetWithUUID</function></link> with an empty facet.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>servant</parameter></term>
		    <listitem>
			<para>
			    The servant to add.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>facet</parameter></term>
		    <listitem>
			<para>
			    The facet. An empty facet means the default
facet.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		A proxy that matches the generated UUID identity,
facet, and this object adapter.</para>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Identity"><structname>Identity</structname></link></member>
		<member><link linkend="Ice.ObjectAdapter.addFacet"><function>addFacet</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.addWithUUID"><function>addWithUUID</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.removeFacet"><function>removeFacet</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.findFacet"><function>findFacet</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.ObjectAdapter.addRouter">
	<title><literal>addRouter</literal></title>
<synopsis><type>void</type> <function>addRouter</function>(<classname>Router*</classname> <parameter>rtr</parameter>);</synopsis>
	<para>
Add a router to this object adapter. By doing so,
this object adapter can receive callbacks from this router
over connections that are established from this process to
the router. This avoids the need for the router to establish
a separate connection back to this object adapter.
<note><para> You can add a particular router to only a single
object adapter. Adding the same router to more than one object
adapter results in undefined behavior. However, it is possible
to add different routers to different object
adapters. </para></note></para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>rtr</parameter></term>
		    <listitem>
			<para>
			    The router to add to this object adapter.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Router"><classname>Router</classname></link></member>
		<member><link linkend="Ice.Communicator.setDefaultRouter"><function>Communicator::setDefaultRouter</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.ObjectAdapter.addServantLocator">
	<title><literal>addServantLocator</literal></title>
<synopsis><type>void</type> <function>addServantLocator</function>(<link linkend="Ice.ServantLocator"><classname>ServantLocator</classname></link> <parameter>locator</parameter>,
    <type>string</type> <parameter>category</parameter>);</synopsis>
	<para>
Add a Servant Locator to this object adapter. Adding a servant
locator for a category for which a servant locator is already
registered throws <link linkend="Ice.AlreadyRegisteredException"><classname>AlreadyRegisteredException</classname></link>. To dispatch
operation calls on servants, the object adapter tries to find a
servant for a given &Ice; object identity and facet in the
following order:
<orderedlist>
<listitem><para>The object adapter tries to find a servant for
the identity and facet in the Active Servant
Map.</para></listitem>
<listitem><para>If no servant has been found in the Active
Servant Map, the object adapter tries to find a locator for the
category component of the identity. If a locator is found, the
object adapter tries to find a servant using this
locator.</para></listitem>
<listitem><para>If no servant has been found by any of the
preceding steps, the object adapter tries to find a locator for
an empty category, regardless of the category contained in the
identity. If a locator is found, the object adapter tries to
find a servant using this locator.</para></listitem>
<listitem><para>If no servant has been found with any of the
preceding steps, the object adapter gives up and the caller
receives <link linkend="Ice.ObjectNotExistException"><classname>ObjectNotExistException</classname></link> or
<link linkend="Ice.FacetNotExistException"><classname>FacetNotExistException</classname></link>.</para></listitem>
</orderedlist>
<note><para>Only one locator for the empty category can be
installed.</para></note></para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>locator</parameter></term>
		    <listitem>
			<para>
			    The locator to add.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>category</parameter></term>
		    <listitem>
			<para>
			    The category for which the Servant Locator can
locate servants, or an empty string if the Servant Locator does
not belong to any specific category.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Identity"><structname>Identity</structname></link></member>
		<member><link linkend="Ice.ObjectAdapter.findServantLocator"><function>findServantLocator</function></link></member>
		<member><link linkend="Ice.ServantLocator"><classname>ServantLocator</classname></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.ObjectAdapter.addWithUUID">
	<title><literal>addWithUUID</literal></title>
<synopsis><type>Object*</type> <function>addWithUUID</function>(<type>Object</type> <parameter>servant</parameter>);</synopsis>
	<para>
Add a servant to this object adapter's Active Servant Map,
using an automatically generated UUID as its identity. Note that
the generated UUID identity can be accessed using the proxy's
<literal>ice_getIdentity</literal> operation.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>servant</parameter></term>
		    <listitem>
			<para>
			    The servant to add.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		A proxy that matches the generated UUID identity and
this object adapter.</para>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Identity"><structname>Identity</structname></link></member>
		<member><link linkend="Ice.ObjectAdapter.add"><function>add</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.addFacetWithUUID"><function>addFacetWithUUID</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.remove"><function>remove</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.find"><function>find</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.ObjectAdapter.createDirectProxy">
	<title><literal>createDirectProxy</literal></title>
<synopsis><type>Object*</type> <function>createDirectProxy</function>(<link linkend="Ice.Identity"><structname>Identity</structname></link> <parameter>id</parameter>);</synopsis>
	<para>
Create a "direct proxy" that matches this object adapter and
the given identity. A direct proxy always contains the current
adapter endpoints.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>id</parameter></term>
		    <listitem>
			<para>
			    The identity for which a proxy is to be created.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		A proxy that matches the given identity and this object
adapter.</para>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Identity"><structname>Identity</structname></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.ObjectAdapter.createProxy">
	<title><literal>createProxy</literal></title>
<synopsis><type>Object*</type> <function>createProxy</function>(<link linkend="Ice.Identity"><structname>Identity</structname></link> <parameter>id</parameter>);</synopsis>
	<para>
Create a proxy that matches this object adapter and the given
identity.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>id</parameter></term>
		    <listitem>
			<para>
			    The identity for which a proxy is to be created.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		A proxy that matches the given identity and this object
adapter.</para>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Identity"><structname>Identity</structname></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.ObjectAdapter.createReverseProxy">
	<title><literal>createReverseProxy</literal></title>
<synopsis><type>Object*</type> <function>createReverseProxy</function>(<link linkend="Ice.Identity"><structname>Identity</structname></link> <parameter>id</parameter>);</synopsis>
	<para>
Create a "reverse proxy" that matches this object adapter and
the given identity. A reverse proxy uses the incoming
connections that have been established from a client to this
object adapter.
<note><para> This operation is intended to be used by special
services, such as <link linkend="Ice.Router"><classname>Router</classname></link> implementations. Regular user code
should not attempt to use this operation. </para></note></para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>id</parameter></term>
		    <listitem>
			<para>
			    The identity for which a proxy is to be created.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		A "reverse proxy" that matches the given identity and
uses the incoming connections of this object adapter.</para>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Identity"><structname>Identity</structname></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.ObjectAdapter.deactivate">
	<title><literal>deactivate</literal></title>
<synopsis><type>void</type> <function>deactivate</function>();</synopsis>
	<para>
Deactivate all endpoints that belong to this object
adapter. After deactivation, the object adapter stops receiving
requests through its endpoints. Object adapters that have been
deactivated must not be reactivated again, i.e., the
deactivation is permanent and <link linkend="Ice.ObjectAdapter.activate"><function>activate</function></link> or <link linkend="Ice.ObjectAdapter.hold"><function>hold</function></link> must not be
called after calling <link linkend="Ice.ObjectAdapter.deactivate"><function>deactivate</function></link>; attempting to do so results
in an <link linkend="Ice.ObjectAdapterDeactivatedException"><classname>ObjectAdapterDeactivatedException</classname></link> being thrown. Calls
to <link linkend="Ice.ObjectAdapter.deactivate"><function>deactivate</function></link> on an already deactivated object adapter are
ignored.
<note><para> After <link linkend="Ice.ObjectAdapter.deactivate"><function>deactivate</function></link> returns, no new requests are
processed by the object adapter. However, requests that have
been started before <link linkend="Ice.ObjectAdapter.deactivate"><function>deactivate</function></link> was called might still be
active. You can use <link linkend="Ice.ObjectAdapter.waitForDeactivate"><function>waitForDeactivate</function></link> to wait for the
completion of all requests for this object
adapter. </para></note></para>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.ObjectAdapter.activate"><function>activate</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.hold"><function>hold</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.waitForDeactivate"><function>waitForDeactivate</function></link></member>
		<member><link linkend="Ice.Communicator.shutdown"><function>Communicator::shutdown</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.ObjectAdapter.find">
	<title><literal>find</literal></title>
<synopsis><type>Object</type> <function>find</function>(<link linkend="Ice.Identity"><structname>Identity</structname></link> <parameter>id</parameter>);</synopsis>
	<para>
Look up a servant in this object adapter's Active Servant Map
by the identity of the &Ice; object it implements.
<note><para>This operation only tries to lookup a servant in
the Active Servant Map. It does not attempt to find a servant
by using any installed <link linkend="Ice.ServantLocator"><classname>ServantLocator</classname></link>.</para></note></para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>id</parameter></term>
		    <listitem>
			<para>
			    The identity of the &Ice; object for which the
servant should be returned.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		The servant that implements the &Ice; object with the
given identity, or null if no such servant has been found.</para>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Identity"><structname>Identity</structname></link></member>
		<member><link linkend="Ice.ObjectAdapter.findFacet"><function>findFacet</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.findByProxy"><function>findByProxy</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.ObjectAdapter.findAllFacets">
	<title><literal>findAllFacets</literal></title>
<synopsis><link linkend="Ice.FacetMap"><type>FacetMap</type></link> <function>findAllFacets</function>(<link linkend="Ice.Identity"><structname>Identity</structname></link> <parameter>id</parameter>);</synopsis>
	<para>
Find all facets with the given identity in the Active Servant
Map.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>id</parameter></term>
		    <listitem>
			<para>
			    The identity of the &Ice; object for which the facets
should be returned.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		A collection containing all the facet names and
servants which have been found, or an empty map if there is no
facet for the given identity.</para>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.ObjectAdapter.find"><function>find</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.findFacet"><function>findFacet</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.ObjectAdapter.findByProxy">
	<title><literal>findByProxy</literal></title>
<synopsis><type>Object</type> <function>findByProxy</function>(<type>Object*</type> <parameter>proxy</parameter>);</synopsis>
	<para>
Look up a servant in this object adapter's Active Servant Map,
given a proxy.
<note><para>This operation only tries to lookup a servant in
the Active Servant Map. It does not attempt to find a servant
via any installed <link linkend="Ice.ServantLocator"><classname>ServantLocator</classname></link>s.</para></note></para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>proxy</parameter></term>
		    <listitem>
			<para>
			    The proxy for which the servant should be returned.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		The servant that matches the proxy, or null if no such
servant has been found.</para>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.ObjectAdapter.find"><function>find</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.findFacet"><function>findFacet</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.ObjectAdapter.findFacet">
	<title><literal>findFacet</literal></title>
<synopsis><type>Object</type> <function>findFacet</function>(<link linkend="Ice.Identity"><structname>Identity</structname></link> <parameter>id</parameter>,
    <type>string</type> <parameter>facet</parameter>);</synopsis>
	<para>
Like <link linkend="Ice.ObjectAdapter.find"><function>find</function></link>, but with a facet. Calling
<literal>find(id)</literal> is equivalent to calling
<link linkend="Ice.ObjectAdapter.findFacet"><function>findFacet</function></link> with an empty facet.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>id</parameter></term>
		    <listitem>
			<para>
			    The identity of the &Ice; object for which the
servant should be returned.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>facet</parameter></term>
		    <listitem>
			<para>
			    The facet. An empty facet means the default
facet.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		The servant that implements the &Ice; object with the
given identity and facet, or null if no such servant has been
found.</para>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Identity"><structname>Identity</structname></link></member>
		<member><link linkend="Ice.ObjectAdapter.find"><function>find</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.findByProxy"><function>findByProxy</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.ObjectAdapter.findServantLocator">
	<title><literal>findServantLocator</literal></title>
<synopsis><link linkend="Ice.ServantLocator"><classname>ServantLocator</classname></link> <function>findServantLocator</function>(<type>string</type> <parameter>category</parameter>);</synopsis>
	<para>
Find a Servant Locator installed with this object adapter.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>category</parameter></term>
		    <listitem>
			<para>
			    The category for which the Servant Locator can
locate servants, or an empty string if the Servant Locator does
not belong to any specific category.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		The Servant Locator, or null if no Servant Locator was
found for the given category.</para>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Identity"><structname>Identity</structname></link></member>
		<member><link linkend="Ice.ObjectAdapter.addServantLocator"><function>addServantLocator</function></link></member>
		<member><link linkend="Ice.ServantLocator"><classname>ServantLocator</classname></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.ObjectAdapter.getCommunicator">
	<title><literal>getCommunicator</literal></title>
<synopsis><link linkend="Ice.Communicator"><classname>Communicator</classname></link> <function>getCommunicator</function>();</synopsis>
	<para>
Get the communicator this object adapter belongs to.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		This object adapter's communicator.</para>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Communicator"><classname>Communicator</classname></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.ObjectAdapter.getName">
	<title><literal>getName</literal></title>
<synopsis><type>string</type> <function>getName</function>();</synopsis>
	<para>
Get the name of this object adapter.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		This object adapter's name.</para>
	</section>
    </section>
    <section id="Ice.ObjectAdapter.hold">
	<title><literal>hold</literal></title>
<synopsis><type>void</type> <function>hold</function>();</synopsis>
	<para>
Temporarily hold receiving and dispatching requests. The object
adapter can be reactivated with the <link linkend="Ice.ObjectAdapter.activate"><function>activate</function></link> operation.
<note><para> Holding is not immediate, i.e., after <link linkend="Ice.ObjectAdapter.hold"><function>hold</function></link>
returns, the object adapter might still be active for some
time. You can use <link linkend="Ice.ObjectAdapter.waitForHold"><function>waitForHold</function></link> to wait until holding is
complete. </para></note></para>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.ObjectAdapter.activate"><function>activate</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.deactivate"><function>deactivate</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.waitForHold"><function>waitForHold</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.ObjectAdapter.remove">
	<title><literal>remove</literal></title>
<synopsis><type>Object</type> <function>remove</function>(<link linkend="Ice.Identity"><structname>Identity</structname></link> <parameter>id</parameter>);</synopsis>
	<para>
Remove a servant (that is, the default facet) from the
object adapter's Active Servant Map.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>id</parameter></term>
		    <listitem>
			<para>
			    The identity of the &Ice; object that is
implemented by the servant. If the servant implements multiple
&Ice; objects, <link linkend="Ice.ObjectAdapter.remove"><function>remove</function></link> has to be called for all those &Ice;
objects. Removing an identity that is not in the map throws
<link linkend="Ice.NotRegisteredException"><classname>NotRegisteredException</classname></link>.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		The removed servant.</para>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Identity"><structname>Identity</structname></link></member>
		<member><link linkend="Ice.ObjectAdapter.add"><function>add</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.addWithUUID"><function>addWithUUID</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.ObjectAdapter.removeAllFacets">
	<title><literal>removeAllFacets</literal></title>
<synopsis><link linkend="Ice.FacetMap"><type>FacetMap</type></link> <function>removeAllFacets</function>(<link linkend="Ice.Identity"><structname>Identity</structname></link> <parameter>id</parameter>);</synopsis>
	<para>
Remove all facets with the given identity from the Active
Servant Map (that is, completely remove the &Ice; object,
including it's default facet). Removing an identity that
is not in the map throws <link linkend="Ice.NotRegisteredException"><classname>NotRegisteredException</classname></link>.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>id</parameter></term>
		    <listitem>
			<para>
			    The identity of the &Ice; object to be removed.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		A collection containing all the facet names and
servants of the removed &Ice; object.</para>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.ObjectAdapter.remove"><function>remove</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.removeFacet"><function>removeFacet</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.ObjectAdapter.removeFacet">
	<title><literal>removeFacet</literal></title>
<synopsis><type>Object</type> <function>removeFacet</function>(<link linkend="Ice.Identity"><structname>Identity</structname></link> <parameter>id</parameter>,
    <type>string</type> <parameter>facet</parameter>);</synopsis>
	<para>
Like <link linkend="Ice.ObjectAdapter.remove"><function>remove</function></link>, but with a facet. Calling
<literal>remove(id)</literal> is equivalent to calling
<link linkend="Ice.ObjectAdapter.removeFacet"><function>removeFacet</function></link> with an empty facet.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>id</parameter></term>
		    <listitem>
			<para>
			    The identity of the &Ice; object that is
implemented by the servant.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>facet</parameter></term>
		    <listitem>
			<para>
			    The facet. An empty facet means the default
facet.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		The removed servant.</para>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Identity"><structname>Identity</structname></link></member>
		<member><link linkend="Ice.ObjectAdapter.addFacet"><function>addFacet</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.addFacetWithUUID"><function>addFacetWithUUID</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.ObjectAdapter.setLocator">
	<title><literal>setLocator</literal></title>
<synopsis><type>void</type> <function>setLocator</function>(<classname>Locator*</classname> <parameter>loc</parameter>);</synopsis>
	<para>
Set an &Ice; locator for this object adapter. By doing so, the
object adapter will register itself with the locator registry
when it is activated for the first time. Furthermore, the proxies
created by this object adapter will contain the adapter name instead
of its endpoints.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>loc</parameter></term>
		    <listitem>
			<para>
			    The locator used by this object adapter.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.ObjectAdapter.createDirectProxy"><function>createDirectProxy</function></link></member>
		<member><link linkend="Ice.Locator"><classname>Locator</classname></link></member>
		<member><link linkend="Ice.LocatorRegistry"><classname>LocatorRegistry</classname></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.ObjectAdapter.waitForDeactivate">
	<title><literal>waitForDeactivate</literal></title>
<synopsis><type>void</type> <function>waitForDeactivate</function>();</synopsis>
	<para>
Wait until the object adapter has deactivated. Calling
<link linkend="Ice.ObjectAdapter.deactivate"><function>deactivate</function></link> initiates object adapter deactivation, and
<link linkend="Ice.ObjectAdapter.waitForDeactivate"><function>waitForDeactivate</function></link> only returns when deactivation has
been completed.</para>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.ObjectAdapter.deactivate"><function>deactivate</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.waitForHold"><function>waitForHold</function></link></member>
		<member><link linkend="Ice.Communicator.waitForShutdown"><function>Communicator::waitForShutdown</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.ObjectAdapter.waitForHold">
	<title><literal>waitForHold</literal></title>
<synopsis><type>void</type> <function>waitForHold</function>();</synopsis>
	<para>
Wait until the object adapter holds requests. Calling <link linkend="Ice.ObjectAdapter.hold"><function>hold</function></link>
initiates holding of requests, and <link linkend="Ice.ObjectAdapter.waitForHold"><function>waitForHold</function></link> only returns
when holding of requests has been completed.</para>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.ObjectAdapter.hold"><function>hold</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.waitForDeactivate"><function>waitForDeactivate</function></link></member>
		<member><link linkend="Ice.Communicator.waitForShutdown"><function>Communicator::waitForShutdown</function></link></member>
	    </simplelist></para></section>
    </section>
</section>
<section id="Ice.ObjectAdapterDeactivatedException">
    <title><literal>Ice::ObjectAdapterDeactivatedException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>ObjectAdapterDeactivatedException</classname></synopsis>
	<para>
This exception is raised if an attempt is made to use a deactivated
<link linkend="Ice.ObjectAdapter"><classname>ObjectAdapter</classname></link>.</para>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.ObjectAdapter.deactivate"><function>ObjectAdapter::deactivate</function></link></member>
		<member><link linkend="Ice.Communicator.shutdown"><function>Communicator::shutdown</function></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.ObjectAdapterDeactivatedException.name"><type>name</type></link></term>
		    <listitem>
			<para>
Name of the adapter.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.ObjectAdapterDeactivatedException.name">
	<title><literal>name</literal></title>
<synopsis><type>string</type> <structfield>name</structfield>;</synopsis>
	<para>
Name of the adapter.</para>
    </section>
</section>
<section id="Ice.ObjectAdapterIdInUseException">
    <title><literal>Ice::ObjectAdapterIdInUseException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>ObjectAdapterIdInUseException</classname></synopsis>
	<para>
This exception is raised if an <link linkend="Ice.ObjectAdapter"><classname>ObjectAdapter</classname></link> cannot be activated
because the <link linkend="Ice.Locator"><classname>Locator</classname></link> detected another active <link linkend="Ice.ObjectAdapter"><classname>ObjectAdapter</classname></link> with
the same adapter id.</para>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.ObjectAdapterIdInUseException.id"><type>id</type></link></term>
		    <listitem>
			<para>
Adapter id.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.ObjectAdapterIdInUseException.id">
	<title><literal>id</literal></title>
<synopsis><type>string</type> <structfield>id</structfield>;</synopsis>
	<para>
Adapter id.</para>
    </section>
</section>
<section id="Ice.ObjectFactory">
    <title><literal>Ice::ObjectFactory</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local interface <classname>ObjectFactory</classname></synopsis>
	<para>
A factory for objects. Object factories are used in several
places, for example, when receiving "objects by value" and
when <link linkend="Freeze"><type>::Freeze</type></link> restores a persistent object. Object factories
must be implemented by the application writer, and registered
with the communicator.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Communicator.addObjectFactory"><function>Communicator::addObjectFactory</function></link></member>
		<member><link linkend="Ice.Communicator.findObjectFactory"><function>Communicator::findObjectFactory</function></link></member>
	    </simplelist></para></section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Freeze"><type>::Freeze</type></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Operation Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.ObjectFactory.create"><function>create</function></link></term>
		    <listitem>
			<para>
Create a new object for a given object type.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ObjectFactory.destroy"><function>destroy</function></link></term>
		    <listitem>
			<para>
Called when the factory is removed from the communicator, or if
the communicator is destroyed.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.ObjectFactory.create">
	<title><literal>create</literal></title>
<synopsis><type>Object</type> <function>create</function>(<type>string</type> <parameter>type</parameter>);</synopsis>
	<para>
Create a new object for a given object type. The type is the
absolute &Slice; type name, i.e., the name relative to the
unnamed top-level Slice module. For example, the absolute
&Slice; type name for interfaces of type <literal>Bar</literal> in the module
<literal>Foo</literal> is <literal>::Foo::Bar</literal>.
<note><para>The leading "<literal>::</literal>" is required.</para></note></para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>type</parameter></term>
		    <listitem>
			<para>
			    The object type.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		The object created for the given type, or nil if the
factory is unable to create the object.</para>
	</section>
    </section>
    <section id="Ice.ObjectFactory.destroy">
	<title><literal>destroy</literal></title>
<synopsis><type>void</type> <function>destroy</function>();</synopsis>
	<para>
Called when the factory is removed from the communicator, or if
the communicator is destroyed.</para>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Communicator.removeObjectFactory"><function>Communicator::removeObjectFactory</function></link></member>
		<member><link linkend="Ice.Communicator.destroy"><function>Communicator::destroy</function></link></member>
	    </simplelist></para></section>
    </section>
</section>
<section id="Ice.ObjectNotExistException">
    <title><literal>Ice::ObjectNotExistException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>ObjectNotExistException</classname>
    extends 
	<link linkend="Ice.RequestFailedException"><classname>RequestFailedException</classname></link></synopsis>
	<para>
This exception is raised if an object does not exist on the server,
that is, if no facets with the given identity exist.</para>
    </section>
</section>
<section id="Ice.ObjectNotFoundException">
    <title><literal>Ice::ObjectNotFoundException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>exception <classname>ObjectNotFoundException</classname></synopsis>
	<para>
This exception is raised if an object cannot be found.</para>
    </section>
</section>
<section id="Ice.OperationMode">
    <title><literal>Ice::OperationMode</literal></title>
    <section>
	<title>Overview</title>
<synopsis>enum <type>OperationMode</type></synopsis>
	<para>
The <link linkend="Ice.OperationMode"><type>OperationMode</type></link> determines the skeleton signature (for C++), as
well as the retry behavior of the Ice run time for an operation
invocation in case of a (potentially) recoverable error.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Current.mode"><type>Current::mode</type></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Enumerator Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.Normal"><constant>Normal</constant></link></term>
		    <listitem>
			<para>
Ordinary operations have <link linkend="Ice.Normal"><constant>Normal</constant></link> mode.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Nonmutating"><constant>Nonmutating</constant></link></term>
		    <listitem>
			<para>
Operations that use the Slice <link linkend="Ice.Nonmutating"><constant>Nonmutating</constant></link> keyword must not
modify object state.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Idempotent"><constant>Idempotent</constant></link></term>
		    <listitem>
			<para>
Operations that use the Slice <link linkend="Ice.Idempotent"><constant>Idempotent</constant></link> keyword can modify
object state, but invoking an operation twice in a row must
result in the same object state as invoking it once.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.Normal">
	<title><literal>Normal</literal></title>
<synopsis><constant>Normal</constant></synopsis>
	<para>
Ordinary operations have <link linkend="Ice.Normal"><constant>Normal</constant></link> mode.  These operations
modify object state; invoking such an operation twice in a row
has different semantics than invoking it once. The Ice run time
guarantees that it will not violate at-most-once semantics for
<link linkend="Ice.Normal"><constant>Normal</constant></link> operations.</para>
    </section>
    <section id="Ice.Nonmutating">
	<title><literal>Nonmutating</literal></title>
<synopsis><constant>Nonmutating</constant></synopsis>
	<para>
Operations that use the Slice <link linkend="Ice.Nonmutating"><constant>Nonmutating</constant></link> keyword must not
modify object state. For C++, nonmutating operations generate
<literal>const</literal> member functions in the skeleton. In addition, the Ice
run time will attempt to transparently recover from certain
run-time errors by re-issuing a failed request and propagate
the failure to the application only if the second attempt
fails.</para>
    </section>
    <section id="Ice.Idempotent">
	<title><literal>Idempotent</literal></title>
<synopsis><constant>Idempotent</constant></synopsis>
	<para>
Operations that use the Slice <link linkend="Ice.Idempotent"><constant>Idempotent</constant></link> keyword can modify
object state, but invoking an operation twice in a row must
result in the same object state as invoking it once.  For
example, <literal>x = 1</literal> is an idempotent statement,
whereas <literal>x += 1</literal> is not. For idempotent
operations, the Ice run-time uses the same retry behavior
as for nonmutating operations in case of a potentially
recoverable error.</para>
    </section>
</section>
<section id="Ice.OperationNotExistException">
    <title><literal>Ice::OperationNotExistException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>OperationNotExistException</classname>
    extends 
	<link linkend="Ice.RequestFailedException"><classname>RequestFailedException</classname></link></synopsis>
	<para>
This exception is raised if an operation for a given object does
not exist on the server. Typically this is caused by either the
client or the server using an outdated Slice specification.</para>
    </section>
</section>
<section id="Ice.Plugin">
    <title><literal>Ice::Plugin</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local interface <classname>Plugin</classname></synopsis>
	<para>
A communicator plug-in. A plug-in generally adds a feature to a
communicator, such as support for a protocol.</para>
	<section>
	    <title>Derived Classes and Interfaces</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IceSSL.Plugin"><type>::IceSSL::Plugin</type></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.PluginManager.addPlugin"><function>PluginManager::addPlugin</function></link></member>
		<member><link linkend="Ice.PluginManager.getPlugin"><function>PluginManager::getPlugin</function></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Operation Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.Plugin.destroy"><function>destroy</function></link></term>
		    <listitem>
			<para>
Called when the communicator is being destroyed.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.Plugin.destroy">
	<title><literal>destroy</literal></title>
<synopsis><type>void</type> <function>destroy</function>();</synopsis>
	<para>
Called when the communicator is being destroyed.</para>
    </section>
</section>
<section id="Ice.PluginInitializationException">
    <title><literal>Ice::PluginInitializationException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>PluginInitializationException</classname></synopsis>
	<para>
This exception indicates that a failure occurred while initializing
a plug-in.</para>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.PluginInitializationException.reason"><type>reason</type></link></term>
		    <listitem>
			<para>
The reason for the failure.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.PluginInitializationException.reason">
	<title><literal>reason</literal></title>
<synopsis><type>string</type> <structfield>reason</structfield>;</synopsis>
	<para>
The reason for the failure.</para>
    </section>
</section>
<section id="Ice.PluginManager">
    <title><literal>Ice::PluginManager</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local interface <classname>PluginManager</classname></synopsis>
	<para>
Each communicator has a plugin manager to administer the set of
plug-ins.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Communicator.getPluginManager"><function>Communicator::getPluginManager</function></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Operation Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.PluginManager.addPlugin"><function>addPlugin</function></link></term>
		    <listitem>
			<para>
Install a new plug-in.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.PluginManager.destroy"><function>destroy</function></link></term>
		    <listitem>
			<para>
Called when the communicator is being destroyed.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.PluginManager.getPlugin"><function>getPlugin</function></link></term>
		    <listitem>
			<para>
Obtain a plug-in by name.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.PluginManager.addPlugin">
	<title><literal>addPlugin</literal></title>
<synopsis><type>void</type> <function>addPlugin</function>(<type>string</type> <parameter>name</parameter>,
    <link linkend="Ice.Plugin"><classname>Plugin</classname></link> <parameter>pi</parameter>);</synopsis>
	<para>
Install a new plug-in.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>name</parameter></term>
		    <listitem>
			<para>
			    The plug-in's name.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>pi</parameter></term>
		    <listitem>
			<para>
			    The plug-in.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.PluginManager.destroy">
	<title><literal>destroy</literal></title>
<synopsis><type>void</type> <function>destroy</function>();</synopsis>
	<para>
Called when the communicator is being destroyed.</para>
    </section>
    <section id="Ice.PluginManager.getPlugin">
	<title><literal>getPlugin</literal></title>
<synopsis><link linkend="Ice.Plugin"><classname>Plugin</classname></link> <function>getPlugin</function>(<type>string</type> <parameter>name</parameter>);</synopsis>
	<para>
Obtain a plug-in by name.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>name</parameter></term>
		    <listitem>
			<para>
			    The plug-in's name.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		The plug-in.</para>
	</section>
    </section>
</section>
<section id="Ice.Process">
    <title><literal>Ice::Process</literal></title>
    <section>
	<title>Overview</title>
<synopsis>interface <classname>Process</classname></synopsis>
	<para>
An administrative interface for process management. Managed servers must
implement this interface and invoke <literal>ObjectAdapter::setProcess</literal> to register
the process proxy.
<note><para> A servant implementing this interface is a potential target
for denial-of-service attacks, therefore proper security precautions
should be taken. For example, the servant can use a UUID to make its
identity harder to guess, and be registered in an object adapter with
a secured endpoint.</para></note></para>
	<section>
	    <title>Operation Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.Process.shutdown"><function>shutdown</function></link></term>
		    <listitem>
			<para>
Initiate a graceful shutdown.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Process.writeMessage"><function>writeMessage</function></link></term>
		    <listitem>
			<para>
Write a message on the process' stdout or stderr.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.Process.shutdown">
	<title><literal>shutdown</literal></title>
<synopsis><type>void</type> <function>shutdown</function>();</synopsis>
	<para>
Initiate a graceful shutdown.</para>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Communicator.shutdown"><function>Communicator::shutdown</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.Process.writeMessage">
	<title><literal>writeMessage</literal></title>
<synopsis><type>void</type> <function>writeMessage</function>(<type>string</type> <parameter>message</parameter>,
    <type>int</type> <parameter>fd</parameter>);</synopsis>
	<para>
Write a message on the process' stdout or stderr.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>message</parameter></term>
		    <listitem>
			<para>
			    The message.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>fd</parameter></term>
		    <listitem>
			<para>
			    1 for stdout, 2 for stderr.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
</section>
<section id="Ice.Properties">
    <title><literal>Ice::Properties</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local interface <classname>Properties</classname></synopsis>
	<para>
A property set used to configure &Ice; and &Ice; applications.
Properties are key/value pairs, with both keys and values
being <type>string</type>s. By convention, property keys should have the form
<replaceable>application-name</replaceable>[.<replaceable>category</replaceable>[.<replaceable>sub-category</replaceable>]].<replaceable>name</replaceable>.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Communicator.getProperties"><function>Communicator::getProperties</function></link></member>
		<member><link linkend="Ice.Properties.clone"><function>clone</function></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Operation Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.Properties.clone"><function>clone</function></link></term>
		    <listitem>
			<para>
Create a copy of this property set.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Properties.getCommandLineOptions"><function>getCommandLineOptions</function></link></term>
		    <listitem>
			<para>
Get a sequence of command-line options that is equivalent to
this property set.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Properties.getPropertiesForPrefix"><function>getPropertiesForPrefix</function></link></term>
		    <listitem>
			<para>
Get all properties whose keys begins with
<replaceable>prefix</replaceable>.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Properties.getProperty"><function>getProperty</function></link></term>
		    <listitem>
			<para>
Get a property by key.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Properties.getPropertyAsInt"><function>getPropertyAsInt</function></link></term>
		    <listitem>
			<para>
Get a property as an integer.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Properties.getPropertyAsIntWithDefault"><function>getPropertyAsIntWithDefault</function></link></term>
		    <listitem>
			<para>
Get a property as an integer.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Properties.getPropertyWithDefault"><function>getPropertyWithDefault</function></link></term>
		    <listitem>
			<para>
Get a property by key.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Properties.load"><function>load</function></link></term>
		    <listitem>
			<para>
Load properties from a file.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Properties.parseCommandLineOptions"><function>parseCommandLineOptions</function></link></term>
		    <listitem>
			<para>
Convert a sequence of command-line options into properties.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Properties.parseIceCommandLineOptions"><function>parseIceCommandLineOptions</function></link></term>
		    <listitem>
			<para>
Convert a sequence of command-line options into properties.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Properties.setProperty"><function>setProperty</function></link></term>
		    <listitem>
			<para>
Set a property.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.Properties.clone">
	<title><literal>clone</literal></title>
<synopsis><link linkend="Ice.Properties"><classname>Properties</classname></link> <function>clone</function>();</synopsis>
	<para>
Create a copy of this property set.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		A copy of this property set.</para>
	</section>
    </section>
    <section id="Ice.Properties.getCommandLineOptions">
	<title><literal>getCommandLineOptions</literal></title>
<synopsis><link linkend="Ice.StringSeq"><type>StringSeq</type></link> <function>getCommandLineOptions</function>();</synopsis>
	<para>
Get a sequence of command-line options that is equivalent to
this property set. Each element of the returned sequence is
a command-line option of the form
<literal>--<replaceable>key</replaceable>=<replaceable>value</replaceable></literal>.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		The command line options for this property set.</para>
	</section>
    </section>
    <section id="Ice.Properties.getPropertiesForPrefix">
	<title><literal>getPropertiesForPrefix</literal></title>
<synopsis><link linkend="Ice.PropertyDict"><type>PropertyDict</type></link> <function>getPropertiesForPrefix</function>(<type>string</type> <parameter>prefix</parameter>);</synopsis>
	<para>
Get all properties whose keys begins with
<replaceable>prefix</replaceable>. If
<replaceable>prefix</replaceable> is an empty string,
then all properties are returned.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		The matching property set.</para>
	</section>
    </section>
    <section id="Ice.Properties.getProperty">
	<title><literal>getProperty</literal></title>
<synopsis><type>string</type> <function>getProperty</function>(<type>string</type> <parameter>key</parameter>);</synopsis>
	<para>
Get a property by key. If the property does not exist, an empty
string is returned.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>key</parameter></term>
		    <listitem>
			<para>
			    The property key.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		The property value.</para>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Properties.setProperty"><function>setProperty</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.Properties.getPropertyAsInt">
	<title><literal>getPropertyAsInt</literal></title>
<synopsis><type>int</type> <function>getPropertyAsInt</function>(<type>string</type> <parameter>key</parameter>);</synopsis>
	<para>
Get a property as an integer. If the property does not exist, 0
is returned.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>key</parameter></term>
		    <listitem>
			<para>
			    The property key.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		The property value interpreted as an integer.</para>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Properties.setProperty"><function>setProperty</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.Properties.getPropertyAsIntWithDefault">
	<title><literal>getPropertyAsIntWithDefault</literal></title>
<synopsis><type>int</type> <function>getPropertyAsIntWithDefault</function>(<type>string</type> <parameter>key</parameter>,
    <type>int</type> <parameter>value</parameter>);</synopsis>
	<para>
Get a property as an integer. If the property does not exist, the
given default value is returned.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>key</parameter></term>
		    <listitem>
			<para>
			    The property key.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>value</parameter></term>
		    <listitem>
			<para>
			    The default value to use if the property does not
exist.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		The property value interpreted as an integer, or the
default value.</para>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Properties.setProperty"><function>setProperty</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.Properties.getPropertyWithDefault">
	<title><literal>getPropertyWithDefault</literal></title>
<synopsis><type>string</type> <function>getPropertyWithDefault</function>(<type>string</type> <parameter>key</parameter>,
    <type>string</type> <parameter>value</parameter>);</synopsis>
	<para>
Get a property by key. If the property does not exist, the
given default value is returned.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>key</parameter></term>
		    <listitem>
			<para>
			    The property key.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>value</parameter></term>
		    <listitem>
			<para>
			    The default value to use if the property does not
exist.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		The property value or the default value.</para>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Properties.setProperty"><function>setProperty</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.Properties.load">
	<title><literal>load</literal></title>
<synopsis><type>void</type> <function>load</function>(<type>string</type> <parameter>file</parameter>);</synopsis>
	<para>
Load properties from a file.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>file</parameter></term>
		    <listitem>
			<para>
			    The property file.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.Properties.parseCommandLineOptions">
	<title><literal>parseCommandLineOptions</literal></title>
<synopsis><link linkend="Ice.StringSeq"><type>StringSeq</type></link> <function>parseCommandLineOptions</function>(<type>string</type> <parameter>prefix</parameter>,
    <link linkend="Ice.StringSeq"><type>StringSeq</type></link> <parameter>options</parameter>);</synopsis>
	<para>
Convert a sequence of command-line options into properties.
All options that begin with
<literal>--<replaceable>prefix</replaceable>.</literal> are
converted into properties. If the prefix is empty, all options
that begin with <literal>--</literal> are converted to properties.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>prefix</parameter></term>
		    <listitem>
			<para>
			    The property prefix, or an empty string to
convert all options starting with <literal>--</literal>.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>options</parameter></term>
		    <listitem>
			<para>
			    The command-line options.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		The command-line options that do not start with the specified
prefix, in their original order.</para>
	</section>
    </section>
    <section id="Ice.Properties.parseIceCommandLineOptions">
	<title><literal>parseIceCommandLineOptions</literal></title>
<synopsis><link linkend="Ice.StringSeq"><type>StringSeq</type></link> <function>parseIceCommandLineOptions</function>(<link linkend="Ice.StringSeq"><type>StringSeq</type></link> <parameter>options</parameter>);</synopsis>
	<para>
Convert a sequence of command-line options into properties.
All options that begin with one of the following prefixes
are converted into properties: <literal>--Ice</literal>, <literal>--IceBox</literal>, <literal>--IcePack</literal>,
<literal>--IcePatch</literal>, <literal>--IceSSL</literal>, <literal>--IceStorm</literal>, <literal>--Freeze</literal>, and <literal>--Glacier</literal>.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>options</parameter></term>
		    <listitem>
			<para>
			    The command-line options.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		The command-line options that do not start with one of
the listed prefixes, in their original order.</para>
	</section>
    </section>
    <section id="Ice.Properties.setProperty">
	<title><literal>setProperty</literal></title>
<synopsis><type>void</type> <function>setProperty</function>(<type>string</type> <parameter>key</parameter>,
    <type>string</type> <parameter>value</parameter>);</synopsis>
	<para>
Set a property. To unset a property, set it to
the empty string.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>key</parameter></term>
		    <listitem>
			<para>
			    The property key.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>value</parameter></term>
		    <listitem>
			<para>
			    The property value.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Properties.getProperty"><function>getProperty</function></link></member>
	    </simplelist></para></section>
    </section>
</section>
<section id="Ice.ProtocolException">
    <title><literal>Ice::ProtocolException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>ProtocolException</classname></synopsis>
	<para>
A generic exception base for all kinds of protocol error
conditions.</para>
	<section>
	    <title>Derived Exceptions</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.AbortBatchRequestException"><classname>AbortBatchRequestException</classname></link></member>
		<member><link linkend="Ice.BadMagicException"><classname>BadMagicException</classname></link></member>
		<member><link linkend="Ice.CloseConnectionException"><classname>CloseConnectionException</classname></link></member>
		<member><link linkend="Ice.CompressionException"><classname>CompressionException</classname></link></member>
		<member><link linkend="Ice.CompressionNotSupportedException"><classname>CompressionNotSupportedException</classname></link></member>
		<member><link linkend="Ice.ConnectionNotValidatedException"><classname>ConnectionNotValidatedException</classname></link></member>
		<member><link linkend="Ice.DatagramLimitException"><classname>DatagramLimitException</classname></link></member>
		<member><link linkend="Ice.ForcedCloseConnectionException"><classname>ForcedCloseConnectionException</classname></link></member>
		<member><link linkend="Ice.IllegalMessageSizeException"><classname>IllegalMessageSizeException</classname></link></member>
		<member><link linkend="Ice.MarshalException"><classname>MarshalException</classname></link></member>
		<member><link linkend="Ice.UnknownMessageException"><classname>UnknownMessageException</classname></link></member>
		<member><link linkend="Ice.UnknownReplyStatusException"><classname>UnknownReplyStatusException</classname></link></member>
		<member><link linkend="Ice.UnknownRequestIdException"><classname>UnknownRequestIdException</classname></link></member>
		<member><link linkend="Ice.UnsupportedEncodingException"><classname>UnsupportedEncodingException</classname></link></member>
		<member><link linkend="Ice.UnsupportedProtocolException"><classname>UnsupportedProtocolException</classname></link></member>
	    </simplelist></para></section>
    </section>
</section>
<section id="Ice.ProxyParseException">
    <title><literal>Ice::ProxyParseException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>ProxyParseException</classname></synopsis>
	<para>
This exception is raised if there was an error while parsing a
stringified proxy.</para>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.ProxyParseException.str"><type>str</type></link></term>
		    <listitem>
			<para>
The string that could not be parsed.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.ProxyParseException.str">
	<title><literal>str</literal></title>
<synopsis><type>string</type> <structfield>str</structfield>;</synopsis>
	<para>
The string that could not be parsed.</para>
    </section>
</section>
<section id="Ice.ProxyUnmarshalException">
    <title><literal>Ice::ProxyUnmarshalException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>ProxyUnmarshalException</classname>
    extends 
	<link linkend="Ice.MarshalException"><classname>MarshalException</classname></link></synopsis>
	<para>
This exception is a specialization of <link linkend="Ice.MarshalException"><classname>MarshalException</classname></link> that is
raised if inconsistent data is received while unmarshaling a proxy.</para>
    </section>
</section>
<section id="Ice.RequestFailedException">
    <title><literal>Ice::RequestFailedException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>RequestFailedException</classname></synopsis>
	<para>
This exception is raised if a request failed. This exception, and
all exceptions derived from <link linkend="Ice.RequestFailedException"><classname>RequestFailedException</classname></link>, are
transmitted by the &Ice; protocol, even though they are declared
<literal>local</literal>.</para>
	<section>
	    <title>Derived Exceptions</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.FacetNotExistException"><classname>FacetNotExistException</classname></link></member>
		<member><link linkend="Ice.ObjectNotExistException"><classname>ObjectNotExistException</classname></link></member>
		<member><link linkend="Ice.OperationNotExistException"><classname>OperationNotExistException</classname></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.RequestFailedException.facet"><type>facet</type></link></term>
		    <listitem>
			<para>
The facet to which the request was sent.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.RequestFailedException.id"><type>id</type></link></term>
		    <listitem>
			<para>
The identity of the Ice Object to which the request was sent.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.RequestFailedException.operation"><type>operation</type></link></term>
		    <listitem>
			<para>
The operation name of the request.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.RequestFailedException.facet">
	<title><literal>facet</literal></title>
<synopsis><type>string</type> <structfield>facet</structfield>;</synopsis>
	<para>
The facet to which the request was sent.</para>
    </section>
    <section id="Ice.RequestFailedException.id">
	<title><literal>id</literal></title>
<synopsis><link linkend="Ice.Identity"><structname>Identity</structname></link> <structfield>id</structfield>;</synopsis>
	<para>
The identity of the Ice Object to which the request was sent.</para>
    </section>
    <section id="Ice.RequestFailedException.operation">
	<title><literal>operation</literal></title>
<synopsis><type>string</type> <structfield>operation</structfield>;</synopsis>
	<para>
The operation name of the request.</para>
    </section>
</section>
<section id="Ice.Router">
    <title><literal>Ice::Router</literal></title>
    <section>
	<title>Overview</title>
<synopsis>interface <classname>Router</classname></synopsis>
	<para>
The &Ice; router interface. Routers can be set either globally with
<link linkend="Ice.Communicator.setDefaultRouter"><function>Communicator::setDefaultRouter</function></link>, or with <literal>ice_router</literal> on specific
proxies.
<note><para> The router interface is intended to be used by &Ice;
internals and by router implementations. Regular user code should
not attempt to use any functionality of this interface
directly.</para></note></para>
	<section>
	    <title>Derived Classes and Interfaces</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Glacier2.Router"><type>::Glacier2::Router</type></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Operation Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.Router.addProxy"><function>addProxy</function></link></term>
		    <listitem>
			<para>
Add new proxy information to the router's routing table.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Router.getClientProxy"><function>getClientProxy</function></link></term>
		    <listitem>
			<para>
Get the router's client proxy, i.e., the proxy to use for
forwarding requests from the client to the router.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Router.getServerProxy"><function>getServerProxy</function></link></term>
		    <listitem>
			<para>
Get the router's server proxy, i.e., the proxy to use for
forwarding requests from the server to the router.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.Router.addProxy">
	<title><literal>addProxy</literal></title>
<synopsis><type>void</type> <function>addProxy</function>(<type>Object*</type> <parameter>proxy</parameter>);</synopsis>
	<para>
Add new proxy information to the router's routing table.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>proxy</parameter></term>
		    <listitem>
			<para>
			    The proxy to add.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.Router.getClientProxy">
	<title><literal>getClientProxy</literal></title>
<synopsis><type>Object*</type> <function>getClientProxy</function>();</synopsis>
	<para>
Get the router's client proxy, i.e., the proxy to use for
forwarding requests from the client to the router.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		The router's client proxy.</para>
	</section>
    </section>
    <section id="Ice.Router.getServerProxy">
	<title><literal>getServerProxy</literal></title>
<synopsis><type>Object*</type> <function>getServerProxy</function>();</synopsis>
	<para>
Get the router's server proxy, i.e., the proxy to use for
forwarding requests from the server to the router.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		The router's server proxy.</para>
	</section>
    </section>
</section>
<section id="Ice.ServantLocator">
    <title><literal>Ice::ServantLocator</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local interface <classname>ServantLocator</classname></synopsis>
	<para>
The servant locator, which is called by the object adapter to
locate a servant that is not found in its active servant map.</para>
	<section>
	    <title>Derived Classes and Interfaces</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Freeze.Evictor"><type>::Freeze::Evictor</type></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.ObjectAdapter.addServantLocator"><function>ObjectAdapter::addServantLocator</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.findServantLocator"><function>ObjectAdapter::findServantLocator</function></link></member>
	    </simplelist></para></section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.ObjectAdapter"><classname>ObjectAdapter</classname></link></member>
		<member><link linkend="Ice.ObjectAdapter.addServantLocator"><function>ObjectAdapter::addServantLocator</function></link></member>
		<member><link linkend="Ice.ObjectAdapter.findServantLocator"><function>ObjectAdapter::findServantLocator</function></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Operation Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.ServantLocator.deactivate"><function>deactivate</function></link></term>
		    <listitem>
			<para>
Called when the object adapter in which this servant locator is
installed is deactivated.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ServantLocator.finished"><function>finished</function></link></term>
		    <listitem>
			<para>
Called by the object adapter after a request has been
made.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.ServantLocator.locate"><function>locate</function></link></term>
		    <listitem>
			<para>
Called by the object adapter before a request is made when a
servant cannot be found in the object adapter's active servant
map.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.ServantLocator.deactivate">
	<title><literal>deactivate</literal></title>
<synopsis><type>void</type> <function>deactivate</function>(<type>string</type> <parameter>category</parameter>);</synopsis>
	<para>
Called when the object adapter in which this servant locator is
installed is deactivated.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>category</parameter></term>
		    <listitem>
			<para>
			    Indicates for which category the servant locator
is being deactivated.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.ObjectAdapter.deactivate"><function>ObjectAdapter::deactivate</function></link></member>
		<member><link linkend="Ice.Communicator.shutdown"><function>Communicator::shutdown</function></link></member>
		<member><link linkend="Ice.Communicator.destroy"><function>Communicator::destroy</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.ServantLocator.finished">
	<title><literal>finished</literal></title>
<synopsis><type>void</type> <function>finished</function>(<link linkend="Ice.Current"><structname>Current</structname></link> <parameter>curr</parameter>,
    <type>Object</type> <parameter>servant</parameter>,
    <type>LocalObject</type> <parameter>cookie</parameter>);</synopsis>
	<para>
Called by the object adapter after a request has been
made. This operation is only called if <link linkend="Ice.ServantLocator.locate"><function>locate</function></link> was called
prior to the request and returned a non-null servant. This
operation can be used for cleanup purposes after a request.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>curr</parameter></term>
		    <listitem>
			<para>
			    Information about the current operation call for
which a servant was located by <link linkend="Ice.ServantLocator.locate"><function>locate</function></link>.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>servant</parameter></term>
		    <listitem>
			<para>
			    The servant that was returned by <link linkend="Ice.ServantLocator.locate"><function>locate</function></link>.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>cookie</parameter></term>
		    <listitem>
			<para>
			    The cookie that was returned by <link linkend="Ice.ServantLocator.locate"><function>locate</function></link>.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.ObjectAdapter"><classname>ObjectAdapter</classname></link></member>
		<member><link linkend="Ice.Current"><structname>Current</structname></link></member>
		<member><link linkend="Ice.ServantLocator.locate"><function>locate</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Ice.ServantLocator.locate">
	<title><literal>locate</literal></title>
<synopsis><type>Object</type> <function>locate</function>(<link linkend="Ice.Current"><structname>Current</structname></link> <parameter>curr</parameter>,
    out <type>LocalObject</type> <parameter>cookie</parameter>);</synopsis>
	<para>
Called by the object adapter before a request is made when a
servant cannot be found in the object adapter's active servant
map. Note that the object adapter does not automatically insert
the returned servant into its active servant map. This must be
done by the servant locator implementation, if this is desired.
<important><para>If you call <link linkend="Ice.ServantLocator.locate"><function>locate</function></link> from your own code, you
must also call <link linkend="Ice.ServantLocator.finished"><function>finished</function></link> when you have finished using the
servant, provided that a non-null servant was
returned. Otherwise you will get undefined behavior if you use
Servant Locators such as the
<link linkend="Freeze.Evictor"><classname>::Freeze::Evictor</classname></link>.</para></important></para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>curr</parameter></term>
		    <listitem>
			<para>
			    Information about the current operation for which
a servant is required.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>cookie</parameter></term>
		    <listitem>
			<para>
			    A "cookie" that will be passed to <link linkend="Ice.ServantLocator.finished"><function>finished</function></link>.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		The located servant, or null if no suitable servant has
been found.</para>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.ObjectAdapter"><classname>ObjectAdapter</classname></link></member>
		<member><link linkend="Ice.Current"><structname>Current</structname></link></member>
		<member><link linkend="Ice.ServantLocator.finished"><function>finished</function></link></member>
	    </simplelist></para></section>
    </section>
</section>
<section id="Ice.ServerNotFoundException">
    <title><literal>Ice::ServerNotFoundException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>exception <classname>ServerNotFoundException</classname></synopsis>
	<para>
This exception is raised if a server cannot be found.</para>
    </section>
</section>
<section id="Ice.SocketException">
    <title><literal>Ice::SocketException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>SocketException</classname>
    extends 
	<link linkend="Ice.SyscallException"><classname>SyscallException</classname></link></synopsis>
	<para>
This exception is a specialization of <link linkend="Ice.SyscallException"><classname>SyscallException</classname></link> for socket
errors.</para>
	<section>
	    <title>Derived Exceptions</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.ConnectFailedException"><classname>ConnectFailedException</classname></link></member>
		<member><link linkend="Ice.ConnectionLostException"><classname>ConnectionLostException</classname></link></member>
	    </simplelist></para></section>
    </section>
</section>
<section id="Ice.Stats">
    <title><literal>Ice::Stats</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local interface <classname>Stats</classname></synopsis>
	<para>
An interface &Ice; uses to report statistics, such as how much data
is sent or received. Applications must provide their own <link linkend="Ice.Stats"><classname>Stats</classname></link>
by implementing this interface and installing it in a communicator.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Communicator.getStats"><function>Communicator::getStats</function></link></member>
		<member><link linkend="Ice.Communicator.setStats"><function>Communicator::setStats</function></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Operation Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.Stats.bytesReceived"><function>bytesReceived</function></link></term>
		    <listitem>
			<para>
Callback to report that data has been received.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.Stats.bytesSent"><function>bytesSent</function></link></term>
		    <listitem>
			<para>
Callback to report that data has been sent.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.Stats.bytesReceived">
	<title><literal>bytesReceived</literal></title>
<synopsis><type>void</type> <function>bytesReceived</function>(<type>string</type> <parameter>protocol</parameter>,
    <type>int</type> <parameter>num</parameter>);</synopsis>
	<para>
Callback to report that data has been received.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>protocol</parameter></term>
		    <listitem>
			<para>
			    The protocol over which data has been received
(for example "tcp", "udp", or "ssl").</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>num</parameter></term>
		    <listitem>
			<para>
			    How many bytes have been received.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.Stats.bytesSent">
	<title><literal>bytesSent</literal></title>
<synopsis><type>void</type> <function>bytesSent</function>(<type>string</type> <parameter>protocol</parameter>,
    <type>int</type> <parameter>num</parameter>);</synopsis>
	<para>
Callback to report that data has been sent.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>protocol</parameter></term>
		    <listitem>
			<para>
			    The protocol over which data has been sent (for
example "tcp", "udp", or "ssl").</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>num</parameter></term>
		    <listitem>
			<para>
			    How many bytes have been sent.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
</section>
<section id="Ice.SyscallException">
    <title><literal>Ice::SyscallException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>SyscallException</classname></synopsis>
	<para>
This exception is raised if a system error occurred in the server
or client process. There are many possible causes for such a system
exception. For details on the cause, <link linkend="Ice.SyscallException.error"><type>error</type></link>
should be inspected.</para>
	<section>
	    <title>Derived Exceptions</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.SocketException"><classname>SocketException</classname></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.SyscallException.error"><type>error</type></link></term>
		    <listitem>
			<para>
The error number describing the system exception.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.SyscallException.error">
	<title><literal>error</literal></title>
<synopsis><type>int</type> <structfield>error</structfield>;</synopsis>
	<para>
The error number describing the system exception. For C++ and
Unix, this is equivalent to <literal>errno</literal>. For C++
and Windows, this is the value returned by
<literal>GetLastError()</literal> or
<literal>WSAGetLastError()</literal>.</para>
    </section>
</section>
<section id="Ice.TimeoutException">
    <title><literal>Ice::TimeoutException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>TimeoutException</classname></synopsis>
	<para>
This exception indicates a timeout condition.</para>
	<section>
	    <title>Derived Exceptions</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.CloseTimeoutException"><classname>CloseTimeoutException</classname></link></member>
		<member><link linkend="Ice.ConnectTimeoutException"><classname>ConnectTimeoutException</classname></link></member>
		<member><link linkend="Ice.ConnectionTimeoutException"><classname>ConnectionTimeoutException</classname></link></member>
	    </simplelist></para></section>
    </section>
</section>
<section id="Ice.TwowayOnlyException">
    <title><literal>Ice::TwowayOnlyException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>TwowayOnlyException</classname></synopsis>
	<para>
This exception is raised if an attempt is made to invoke an
operation with <literal>ice_oneway</literal>, <literal>ice_batchOneway</literal>, <literal>ice_datagram</literal>,
or <literal>ice_batchDatagram</literal> and the operation has a return value,
out parameters, or an exception specification.</para>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.TwowayOnlyException.operation"><type>operation</type></link></term>
		    <listitem>
			<para>
The name of the operation that was invoked.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.TwowayOnlyException.operation">
	<title><literal>operation</literal></title>
<synopsis><type>string</type> <structfield>operation</structfield>;</synopsis>
	<para>
The name of the operation that was invoked.</para>
    </section>
</section>
<section id="Ice.UnknownException">
    <title><literal>Ice::UnknownException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>UnknownException</classname></synopsis>
	<para>
This exception is raised if an operation call on a server raises an
unknown exception. For example, for C++, this exception is raised
if the server throws a C++ exception that is not directly or
indirectly derived from <literal>Ice::LocalException</literal> or
<literal>Ice::UserException</literal>.</para>
	<section>
	    <title>Derived Exceptions</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.UnknownLocalException"><classname>UnknownLocalException</classname></link></member>
		<member><link linkend="Ice.UnknownUserException"><classname>UnknownUserException</classname></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.UnknownException.unknown"><type>unknown</type></link></term>
		    <listitem>
			<para>
A textual representation of the unknown exception.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.UnknownException.unknown">
	<title><literal>unknown</literal></title>
<synopsis><type>string</type> <structfield>unknown</structfield>;</synopsis>
	<para>
A textual representation of the unknown exception. This field may
or may not be set, depending on the security policy of the
server. Some servers may give this information to clients for
debugging purposes, while others may not wish to disclose
information about server internals.</para>
    </section>
</section>
<section id="Ice.UnknownLocalException">
    <title><literal>Ice::UnknownLocalException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>UnknownLocalException</classname>
    extends 
	<link linkend="Ice.UnknownException"><classname>UnknownException</classname></link></synopsis>
	<para>
This exception is raised if an operation call on a server raises a
local exception. Because local exceptions are not transmitted by
the &Ice; protocol, the client receives all local exceptions raised
by the server as <link linkend="Ice.UnknownLocalException"><classname>UnknownLocalException</classname></link>. The only exception to this
rule are all exceptions derived from <link linkend="Ice.RequestFailedException"><classname>RequestFailedException</classname></link>,
which are transmitted by the &Ice; protocol even though they are
declared <literal>local</literal>.</para>
    </section>
</section>
<section id="Ice.UnknownMessageException">
    <title><literal>Ice::UnknownMessageException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>UnknownMessageException</classname>
    extends 
	<link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link></synopsis>
	<para>
This exception is a specialization of <link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link>,
indicating that an unknown protocol message has been received.</para>
    </section>
</section>
<section id="Ice.UnknownReplyStatusException">
    <title><literal>Ice::UnknownReplyStatusException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>UnknownReplyStatusException</classname>
    extends 
	<link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link></synopsis>
	<para>
This exception is a specialization of <link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link>,
indicating that an unknown reply status has been received.</para>
    </section>
</section>
<section id="Ice.UnknownRequestIdException">
    <title><literal>Ice::UnknownRequestIdException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>UnknownRequestIdException</classname>
    extends 
	<link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link></synopsis>
	<para>
This exception is a specialization of <link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link>,
indicating that a response for an unknown request id has been
received.</para>
    </section>
</section>
<section id="Ice.UnknownUserException">
    <title><literal>Ice::UnknownUserException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>UnknownUserException</classname>
    extends 
	<link linkend="Ice.UnknownException"><classname>UnknownException</classname></link></synopsis>
	<para>
This exception is raised if an operation call on a server raises a
user exception that is not declared in the exception's
<literal>throws</literal> clause. Such undeclared exceptions are
not transmitted from the server to the client by the &Ice;
protocol, but instead the client just gets an
<link linkend="Ice.UnknownUserException"><classname>UnknownUserException</classname></link>. This is necessary in order to not violate
the contract established by an operation's signature: Only local
exceptions and user exceptions declared in the
<literal>throws</literal> clause can be raised.</para>
    </section>
</section>
<section id="Ice.UnmarshalOutOfBoundsException">
    <title><literal>Ice::UnmarshalOutOfBoundsException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>UnmarshalOutOfBoundsException</classname>
    extends 
	<link linkend="Ice.MarshalException"><classname>MarshalException</classname></link></synopsis>
	<para>
This exception is a specialization of <link linkend="Ice.MarshalException"><classname>MarshalException</classname></link> that is
raised if an out-of-bounds condition occurs during unmarshaling.</para>
    </section>
</section>
<section id="Ice.UnsupportedEncodingException">
    <title><literal>Ice::UnsupportedEncodingException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>UnsupportedEncodingException</classname>
    extends 
	<link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link></synopsis>
	<para>
This exception is a specialization of <link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link>,
indicating that an unsupported data encoding version has been
encountered.</para>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.UnsupportedEncodingException.badMajor"><type>badMajor</type></link></term>
		    <listitem>
			<para>
The major version number of the unsupported encoding.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.UnsupportedEncodingException.badMinor"><type>badMinor</type></link></term>
		    <listitem>
			<para>
The minor version number of the unsupported encoding.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.UnsupportedEncodingException.major"><type>major</type></link></term>
		    <listitem>
			<para>
The major version number of the encoding that is supported.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.UnsupportedEncodingException.minor"><type>minor</type></link></term>
		    <listitem>
			<para>
The highest minor version number of the encoding that can be supported.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.UnsupportedEncodingException.badMajor">
	<title><literal>badMajor</literal></title>
<synopsis><type>int</type> <structfield>badMajor</structfield>;</synopsis>
	<para>
The major version number of the unsupported encoding.</para>
    </section>
    <section id="Ice.UnsupportedEncodingException.badMinor">
	<title><literal>badMinor</literal></title>
<synopsis><type>int</type> <structfield>badMinor</structfield>;</synopsis>
	<para>
The minor version number of the unsupported encoding.</para>
    </section>
    <section id="Ice.UnsupportedEncodingException.major">
	<title><literal>major</literal></title>
<synopsis><type>int</type> <structfield>major</structfield>;</synopsis>
	<para>
The major version number of the encoding that is supported.</para>
    </section>
    <section id="Ice.UnsupportedEncodingException.minor">
	<title><literal>minor</literal></title>
<synopsis><type>int</type> <structfield>minor</structfield>;</synopsis>
	<para>
The highest minor version number of the encoding that can be supported.</para>
    </section>
</section>
<section id="Ice.UnsupportedProtocolException">
    <title><literal>Ice::UnsupportedProtocolException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>UnsupportedProtocolException</classname>
    extends 
	<link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link></synopsis>
	<para>
This exception is a specialization of <link linkend="Ice.ProtocolException"><classname>ProtocolException</classname></link>,
indicating that an unsupported protocol version has been
encountered.</para>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Ice.UnsupportedProtocolException.badMajor"><type>badMajor</type></link></term>
		    <listitem>
			<para>
The major version number of the unsupported protocol.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.UnsupportedProtocolException.badMinor"><type>badMinor</type></link></term>
		    <listitem>
			<para>
The minor version number of the unsupported protocol.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.UnsupportedProtocolException.major"><type>major</type></link></term>
		    <listitem>
			<para>
The major version number of the protocol that is supported.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Ice.UnsupportedProtocolException.minor"><type>minor</type></link></term>
		    <listitem>
			<para>
The highest minor version number of the protocol that can be supported.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Ice.UnsupportedProtocolException.badMajor">
	<title><literal>badMajor</literal></title>
<synopsis><type>int</type> <structfield>badMajor</structfield>;</synopsis>
	<para>
The major version number of the unsupported protocol.</para>
    </section>
    <section id="Ice.UnsupportedProtocolException.badMinor">
	<title><literal>badMinor</literal></title>
<synopsis><type>int</type> <structfield>badMinor</structfield>;</synopsis>
	<para>
The minor version number of the unsupported protocol.</para>
    </section>
    <section id="Ice.UnsupportedProtocolException.major">
	<title><literal>major</literal></title>
<synopsis><type>int</type> <structfield>major</structfield>;</synopsis>
	<para>
The major version number of the protocol that is supported.</para>
    </section>
    <section id="Ice.UnsupportedProtocolException.minor">
	<title><literal>minor</literal></title>
<synopsis><type>int</type> <structfield>minor</structfield>;</synopsis>
	<para>
The highest minor version number of the protocol that can be supported.</para>
    </section>
</section>
<section id="Ice.VersionMismatchException">
    <title><literal>Ice::VersionMismatchException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>VersionMismatchException</classname></synopsis>
	<para>
This exception is raised if the &Ice; library version does not match
the &Ice; header files version.</para>
    </section>
</section>
<section id="Freeze">
    <title><literal>Freeze</literal></title>
    <section>
	<title>Overview</title>
<synopsis>module <classname>Freeze</classname></synopsis>
	<para>
&Freeze; provides automatic persistence for &Ice;
servants. &Freeze; provides a binary data format for maximum speed,
as well as an XML data format for maximum flexibility. Freeze
databases using the XML data format can be migrated when the
&Slice; description of the persistent data changes.</para>
	<section>
	    <title>Interface Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Freeze.Connection"><type>Connection</type></link></term>
		    <listitem>
			<para>
A connection to a database (database environment with Berkeley
DB).</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.Evictor"><type>Evictor</type></link></term>
		    <listitem>
			<para>
An automatic &Ice; object persistence manager, based on the
evictor pattern.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.EvictorIterator"><type>EvictorIterator</type></link></term>
		    <listitem>
			<para>
An iterator for the objects managed by the evictor.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.ServantInitializer"><type>ServantInitializer</type></link></term>
		    <listitem>
			<para>
A servant initializer is installed in an evictor and provides the
application with an opportunity to perform custom servant
initialization.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.Transaction"><type>Transaction</type></link></term>
		    <listitem>
			<para>
A transaction.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Exception Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Freeze.DatabaseException"><classname>DatabaseException</classname></link></term>
		    <listitem>
			<para>
A Freeze database exception.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.DeadlockException"><classname>DeadlockException</classname></link></term>
		    <listitem>
			<para>
A Freeze database deadlock exception.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.EvictorDeactivatedException"><classname>EvictorDeactivatedException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if the evictor has been deactivated.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.InvalidPositionException"><classname>InvalidPositionException</classname></link></term>
		    <listitem>
			<para>
This Freeze Iterator is not on a valid position, for example
this position has been erased.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.NoSuchElementException"><classname>NoSuchElementException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if there are no further elements in the iteration.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.NotFoundException"><classname>NotFoundException</classname></link></term>
		    <listitem>
			<para>
A Freeze database exception, indicating that a database record
could not be found.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.TransactionAlreadyInProgressException"><classname>TransactionAlreadyInProgressException</classname></link></term>
		    <listitem>
			<para>
</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Struct Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Freeze.CatalogData"><structname>CatalogData</structname></link></term>
		    <listitem>
			<para>
The catalog keeps information about  Freeze Maps and Freeze
evictors in a Berkeley Db environment.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.ObjectRecord"><structname>ObjectRecord</structname></link></term>
		    <listitem>
			<para>
The evictor uses a number of maps <link linkend="Ice.Identity"><structname>::Ice::Identity</structname></link> to <link linkend="Freeze.ObjectRecord"><structname>ObjectRecord</structname></link> as its
persistent storage.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.Statistics"><structname>Statistics</structname></link></term>
		    <listitem>
			<para>
The evictor maintains statistics about each object.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Sequence Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Freeze.Key"><type>Key</type></link></term>
		    <listitem>
			<para>
A database key, represented as a sequence of bytes.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.Value"><type>Value</type></link></term>
		    <listitem>
			<para>
A database value, represented as a sequence of bytes.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Freeze.Key">
	<title><literal>Key</literal></title>
<synopsis>sequence&lt;<type>byte</type>&gt; <type>Key</type>;</synopsis>
	<para>
A database key, represented as a sequence of bytes.</para>
    </section>
    <section id="Freeze.Value">
	<title><literal>Value</literal></title>
<synopsis>sequence&lt;<type>byte</type>&gt; <type>Value</type>;</synopsis>
	<para>
A database value, represented as a sequence of bytes.</para>
    </section>
</section>
<section id="Freeze.CatalogData">
    <title><literal>Freeze::CatalogData</literal></title>
    <section>
	<title>Overview</title>
<synopsis>struct <structname>CatalogData</structname></synopsis>
	<para>
The catalog keeps information about  Freeze Maps and Freeze
evictors in a Berkeley Db environment. It is used by FreezeScript.</para>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Freeze.CatalogData.evictor"><type>evictor</type></link></term>
		    <listitem>
			<para>
</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.CatalogData.key"><type>key</type></link></term>
		    <listitem>
			<para>
</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.CatalogData.value"><type>value</type></link></term>
		    <listitem>
			<para>
</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Freeze.CatalogData.evictor">
	<title><literal>evictor</literal></title>
<synopsis><type>bool</type> <structfield>evictor</structfield>;</synopsis>
	<para></para>
    </section>
    <section id="Freeze.CatalogData.key">
	<title><literal>key</literal></title>
<synopsis><type>string</type> <structfield>key</structfield>;</synopsis>
	<para></para>
    </section>
    <section id="Freeze.CatalogData.value">
	<title><literal>value</literal></title>
<synopsis><type>string</type> <structfield>value</structfield>;</synopsis>
	<para></para>
    </section>
</section>
<section id="Freeze.Connection">
    <title><literal>Freeze::Connection</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local interface <classname>Connection</classname></synopsis>
	<para>
A connection to a database (database environment with Berkeley
DB). If you want to use a connection concurrently 
in multiple threads, you need to serialize access to this
connection.</para>
	<section>
	    <title>Operation Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Freeze.Connection.beginTransaction"><function>beginTransaction</function></link></term>
		    <listitem>
			<para>
Create a new transaction.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.Connection.close"><function>close</function></link></term>
		    <listitem>
			<para>
Closes this connection.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.Connection.currentTransaction"><function>currentTransaction</function></link></term>
		    <listitem>
			<para>
Returns the transaction associated with this connection.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.Connection.getCommunicator"><function>getCommunicator</function></link></term>
		    <listitem>
			<para>
Returns the communicator associated with this connection
</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.Connection.getName"><function>getName</function></link></term>
		    <listitem>
			<para>
The name of the connected system (e.g.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Freeze.Connection.beginTransaction">
	<title><literal>beginTransaction</literal></title>
<synopsis><link linkend="Freeze.Transaction"><classname>Transaction</classname></link> <function>beginTransaction</function>();</synopsis>
	<para>
Create a new transaction. Only one transaction at a time can
be associated with a connection.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		The new transaction</para>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><literal>raises</literal></term>
		    <listitem>
			<para>
			    TransactionAlreadyInProgressException if a 
transaction is already associated with this connection.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Freeze.Connection.close">
	<title><literal>close</literal></title>
<synopsis><type>void</type> <function>close</function>();</synopsis>
	<para>
Closes this connection. If there is an associated transaction,
it is rolled back.</para>
    </section>
    <section id="Freeze.Connection.currentTransaction">
	<title><literal>currentTransaction</literal></title>
<synopsis><link linkend="Freeze.Transaction"><classname>Transaction</classname></link> <function>currentTransaction</function>();</synopsis>
	<para>
Returns the transaction associated with this connection.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		The current transaction if there is one, null otherwise.</para>
	</section>
    </section>
    <section id="Freeze.Connection.getCommunicator">
	<title><literal>getCommunicator</literal></title>
<synopsis><link linkend="Ice.Communicator"><classname>::Ice::Communicator</classname></link> <function>getCommunicator</function>();</synopsis>
	<para>
Returns the communicator associated with this connection</para>
    </section>
    <section id="Freeze.Connection.getName">
	<title><literal>getName</literal></title>
<synopsis><type>string</type> <function>getName</function>();</synopsis>
	<para>
The name of the connected system (e.g. Berkeley DB
environment)</para>
    </section>
</section>
<section id="Freeze.DatabaseException">
    <title><literal>Freeze::DatabaseException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>DatabaseException</classname></synopsis>
	<para>
A Freeze database exception.</para>
	<section>
	    <title>Derived Exceptions</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Freeze.DeadlockException"><classname>DeadlockException</classname></link></member>
		<member><link linkend="Freeze.NotFoundException"><classname>NotFoundException</classname></link></member>
	    </simplelist></para></section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><literal>DB</literal></member>
		<member><link linkend="Freeze.Evictor"><classname>Evictor</classname></link></member>
		<member><link linkend="Freeze.Connection"><classname>Connection</classname></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Freeze.DatabaseException.message"><type>message</type></link></term>
		    <listitem>
			<para>
A message describing the reason for the exception.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Freeze.DatabaseException.message">
	<title><literal>message</literal></title>
<synopsis><type>string</type> <structfield>message</structfield>;</synopsis>
	<para>
A message describing the reason for the exception.</para>
    </section>
</section>
<section id="Freeze.DeadlockException">
    <title><literal>Freeze::DeadlockException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>DeadlockException</classname>
    extends 
	<link linkend="Freeze.DatabaseException"><classname>DatabaseException</classname></link></synopsis>
	<para>
A Freeze database deadlock exception. Applications can react to
this exception by aborting and trying the transaction again.</para>
    </section>
</section>
<section id="Freeze.Evictor">
    <title><literal>Freeze::Evictor</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local interface <classname>Evictor</classname>
    extends 
	<link linkend="Ice.ServantLocator"><type>::Ice::ServantLocator</type></link></synopsis>
	<para>
An automatic &Ice; object persistence manager, based on the
evictor pattern. The evictor is a servant locator implementation
that stores the persistent state of its objects in a database. Any
number of objects can be registered with an evictor, but only a
configurable number of servants are active at a time.  These active
servants reside in a queue; the least recently used servant in the
queue is the first to be evicted when a new servant is activated.</para>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Freeze.ServantInitializer"><classname>ServantInitializer</classname></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Operation Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Freeze.Evictor.add"><function>add</function></link></term>
		    <listitem>
			<para>
Add a servant to this evictor.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.Evictor.addFacet"><function>addFacet</function></link></term>
		    <listitem>
			<para>
Like <link linkend="Freeze.Evictor.add"><function>add</function></link>, but with a facet.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.Evictor.createObject"><function>createObject</function></link></term>
		    <listitem>
			<para>
Add or update a servant.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.Evictor.destroyObject"><function>destroyObject</function></link></term>
		    <listitem>
			<para>
Permanently destroy an &Ice; object.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.Evictor.getIterator"><function>getIterator</function></link></term>
		    <listitem>
			<para>
Get an iterator for the identities managed by the evictor.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.Evictor.getSize"><function>getSize</function></link></term>
		    <listitem>
			<para>
Get the size of the evictor's servant queue.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.Evictor.hasFacet"><function>hasFacet</function></link></term>
		    <listitem>
			<para>
Like <link linkend="Freeze.Evictor.hasObject"><function>hasObject</function></link>, but with a facet.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.Evictor.hasObject"><function>hasObject</function></link></term>
		    <listitem>
			<para>
Returns true if the given identity is managed by the evictor
with the default facet.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.Evictor.keep"><function>keep</function></link></term>
		    <listitem>
			<para>
Lock this object in the evictor cache.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.Evictor.keepFacet"><function>keepFacet</function></link></term>
		    <listitem>
			<para>
Like <link linkend="Freeze.Evictor.keep"><function>keep</function></link>, but with a facet.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.Evictor.release"><function>release</function></link></term>
		    <listitem>
			<para>
Release a "lock" acquired by <link linkend="Freeze.Evictor.keep"><function>keep</function></link>.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.Evictor.releaseFacet"><function>releaseFacet</function></link></term>
		    <listitem>
			<para>
Like <link linkend="Freeze.Evictor.release"><function>release</function></link>, but with a facet.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.Evictor.remove"><function>remove</function></link></term>
		    <listitem>
			<para>
Permanently destroy an &Ice; object.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.Evictor.removeFacet"><function>removeFacet</function></link></term>
		    <listitem>
			<para>
Like <link linkend="Freeze.Evictor.remove"><function>remove</function></link>, but with a facet.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.Evictor.setSize"><function>setSize</function></link></term>
		    <listitem>
			<para>
Set the size of the evictor's servant queue.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Freeze.Evictor.add">
	<title><literal>add</literal></title>
<synopsis><type>Object*</type> <function>add</function>(<type>Object</type> <parameter>servant</parameter>,
    <link linkend="Ice.Identity"><structname>::Ice::Identity</structname></link> <parameter>id</parameter>);</synopsis>
	<para>
Add a servant to this evictor. The state of the servant passed to 
this operation will be saved in the evictor's persistent store.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>servant</parameter></term>
		    <listitem>
			<para>
			    The servant to add.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>id</parameter></term>
		    <listitem>
			<para>
			    The identity of the &Ice; object that is implemented by 
the servant.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		A proxy that matches the given identity and this evictor's
object adapter.</para>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><literal>AlreadyRegisteredException</literal></term>
		    <listitem>
			<para>
			    Raised if the evictor already has
an object with this identity.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.DatabaseException"><classname>DatabaseException</classname></link></term>
		    <listitem>
			<para>
			    Raised if a database failure occurred.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.EvictorDeactivatedException"><classname>EvictorDeactivatedException</classname></link></term>
		    <listitem>
			<para>
			    Raised if the evictor has
been deactivated.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Freeze.Evictor.addFacet"><function>addFacet</function></link></member>
		<member><link linkend="Freeze.Evictor.remove"><function>remove</function></link></member>
		<member><link linkend="Freeze.Evictor.removeFacet"><function>removeFacet</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Freeze.Evictor.addFacet">
	<title><literal>addFacet</literal></title>
<synopsis><type>Object*</type> <function>addFacet</function>(<type>Object</type> <parameter>servant</parameter>,
    <link linkend="Ice.Identity"><structname>::Ice::Identity</structname></link> <parameter>id</parameter>,
    <type>string</type> <parameter>facet</parameter>);</synopsis>
	<para>
Like <link linkend="Freeze.Evictor.add"><function>add</function></link>, but with a facet. Calling <literal>add(servant, id)</literal>
is equivalent to calling <link linkend="Freeze.Evictor.addFacet"><function>addFacet</function></link> with an empty
facet.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>servant</parameter></term>
		    <listitem>
			<para>
			    The servant to add.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>id</parameter></term>
		    <listitem>
			<para>
			    The identity of the &Ice; object that is implemented by 
the servant.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>facet</parameter></term>
		    <listitem>
			<para>
			    The facet. An empty facet means the default
facet.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		A proxy that matches the given identity and this evictor's
object adapter.</para>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><literal>AlreadyRegisteredException</literal></term>
		    <listitem>
			<para>
			    Raised if the evictor already has
an object with this identity.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.DatabaseException"><classname>DatabaseException</classname></link></term>
		    <listitem>
			<para>
			    Raised if a database failure occurred.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.EvictorDeactivatedException"><classname>EvictorDeactivatedException</classname></link></term>
		    <listitem>
			<para>
			    Raised if the evictor has
been deactivated.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Freeze.Evictor.add"><function>add</function></link></member>
		<member><link linkend="Freeze.Evictor.remove"><function>remove</function></link></member>
		<member><link linkend="Freeze.Evictor.removeFacet"><function>removeFacet</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Freeze.Evictor.createObject">
	<title><literal>createObject</literal></title>
<synopsis><type>void</type> <function>createObject</function>(<link linkend="Ice.Identity"><structname>::Ice::Identity</structname></link> <parameter>id</parameter>,
    <type>Object</type> <parameter>servant</parameter>);</synopsis>
	<para>
Add or update a servant. The state of the servant passed to 
this operation will be saved in the evictor's persistent store.
This operation is deprecated and will be removed in a future release.
It is recommended to use add instead.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>id</parameter></term>
		    <listitem>
			<para>
			    The identity of the &Ice; object that is implemented by 
the servant.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>servant</parameter></term>
		    <listitem>
			<para>
			    The servant to add.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Freeze.DatabaseException"><classname>DatabaseException</classname></link></term>
		    <listitem>
			<para>
			    Raised if a database failure occurred.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.EvictorDeactivatedException"><classname>EvictorDeactivatedException</classname></link></term>
		    <listitem>
			<para>
			    Raised if the evictor has
been deactivated.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Freeze.Evictor.add"><function>add</function></link></member>
		<member><link linkend="Freeze.Evictor.destroyObject"><function>destroyObject</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Freeze.Evictor.destroyObject">
	<title><literal>destroyObject</literal></title>
<synopsis><type>void</type> <function>destroyObject</function>(<link linkend="Ice.Identity"><structname>::Ice::Identity</structname></link> <parameter>id</parameter>);</synopsis>
	<para>
Permanently destroy an &Ice; object. Like remove, except
destroyObject does not raise any exception when the object does
not exist.
This operation is deprecated and will be removed in a future release.
It is recommended to use remove instead.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>id</parameter></term>
		    <listitem>
			<para>
			    The identity of the &Ice; object.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Freeze.DatabaseException"><classname>DatabaseException</classname></link></term>
		    <listitem>
			<para>
			    Raised if a database failure occurred.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.EvictorDeactivatedException"><classname>EvictorDeactivatedException</classname></link></term>
		    <listitem>
			<para>
			    Raised if the evictor has
been deactivated.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Freeze.Evictor.remove"><function>remove</function></link></member>
		<member><link linkend="Freeze.Evictor.createObject"><function>createObject</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Freeze.Evictor.getIterator">
	<title><literal>getIterator</literal></title>
<synopsis><link linkend="Freeze.EvictorIterator"><classname>EvictorIterator</classname></link> <function>getIterator</function>(<type>string</type> <parameter>facet</parameter>,
    <type>int</type> <parameter>batchSize</parameter>);</synopsis>
	<para>
Get an iterator for the identities managed by the evictor.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>facet</parameter></term>
		    <listitem>
			<para>
			    The facet. An empty facet means the default
facet.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>batchSize</parameter></term>
		    <listitem>
			<para>
			    Internally, the Iterator retrieves the
identities in batches of size batchSize. Selecting a small batchSize
can have an adverse effect on performance.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		A new iterator.</para>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Freeze.EvictorDeactivatedException"><classname>EvictorDeactivatedException</classname></link></term>
		    <listitem>
			<para>
			    Raised if a the evictor has
been deactivated.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Freeze.Evictor.getSize">
	<title><literal>getSize</literal></title>
<synopsis><type>int</type> <function>getSize</function>();</synopsis>
	<para>
Get the size of the evictor's servant queue.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		The size of the servant queue.</para>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Freeze.EvictorDeactivatedException"><classname>EvictorDeactivatedException</classname></link></term>
		    <listitem>
			<para>
			    Raised if a the evictor has
been deactivated.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Freeze.Evictor.setSize"><function>setSize</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Freeze.Evictor.hasFacet">
	<title><literal>hasFacet</literal></title>
<synopsis><type>bool</type> <function>hasFacet</function>(<link linkend="Ice.Identity"><structname>::Ice::Identity</structname></link> <parameter>id</parameter>,
    <type>string</type> <parameter>facet</parameter>);</synopsis>
	<para>
Like <link linkend="Freeze.Evictor.hasObject"><function>hasObject</function></link>, but with a facet. Calling <literal>hasObject(id)</literal>
is equivalent to calling <link linkend="Freeze.Evictor.hasFacet"><function>hasFacet</function></link> with an empty
facet.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		true if the identity is managed by the evictor for the
given facet, false otherwise.</para>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Freeze.DatabaseException"><classname>DatabaseException</classname></link></term>
		    <listitem>
			<para>
			    Raised if a database failure occurred.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.EvictorDeactivatedException"><classname>EvictorDeactivatedException</classname></link></term>
		    <listitem>
			<para>
			    Raised if a the evictor has
been deactivated.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Freeze.Evictor.hasObject">
	<title><literal>hasObject</literal></title>
<synopsis><type>bool</type> <function>hasObject</function>(<link linkend="Ice.Identity"><structname>::Ice::Identity</structname></link> <parameter>id</parameter>);</synopsis>
	<para>
Returns true if the given identity is managed by the evictor
with the default facet.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		true if the identity is managed by the evictor, false
otherwise.</para>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Freeze.DatabaseException"><classname>DatabaseException</classname></link></term>
		    <listitem>
			<para>
			    Raised if a database failure occurred.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.EvictorDeactivatedException"><classname>EvictorDeactivatedException</classname></link></term>
		    <listitem>
			<para>
			    Raised if a the evictor has
been deactivated.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Freeze.Evictor.keep">
	<title><literal>keep</literal></title>
<synopsis><type>void</type> <function>keep</function>(<link linkend="Ice.Identity"><structname>::Ice::Identity</structname></link> <parameter>id</parameter>);</synopsis>
	<para>
Lock this object in the evictor cache. This lock can be released
by <link linkend="Freeze.Evictor.release"><function>release</function></link> or remove. <link linkend="Freeze.Evictor.release"><function>release</function></link> releases only one lock, while
<link linkend="Freeze.Evictor.remove"><function>remove</function></link> releases all the locks.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>id</parameter></term>
		    <listitem>
			<para>
			    The identity of the &Ice; object.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><literal>NotRegisteredException</literal></term>
		    <listitem>
			<para>
			    Raised if this identity was not 
registered with the evictor.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.DatabaseException"><classname>DatabaseException</classname></link></term>
		    <listitem>
			<para>
			    Raised if a database failure occurred.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Freeze.Evictor.keepFacet"><function>keepFacet</function></link></member>
		<member><link linkend="Freeze.Evictor.release"><function>release</function></link></member>
		<member><link linkend="Freeze.Evictor.remove"><function>remove</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Freeze.Evictor.keepFacet">
	<title><literal>keepFacet</literal></title>
<synopsis><type>void</type> <function>keepFacet</function>(<link linkend="Ice.Identity"><structname>::Ice::Identity</structname></link> <parameter>id</parameter>,
    <type>string</type> <parameter>facet</parameter>);</synopsis>
	<para>
Like <link linkend="Freeze.Evictor.keep"><function>keep</function></link>, but with a facet. Calling <literal>keep(id)</literal> 
is equivalent to calling <link linkend="Freeze.Evictor.keepFacet"><function>keepFacet</function></link> with an empty facet.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>id</parameter></term>
		    <listitem>
			<para>
			    The identity of the &Ice; object.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>facet</parameter></term>
		    <listitem>
			<para>
			    The facet. An empty facet means the default
facet.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><literal>NotRegisteredException</literal></term>
		    <listitem>
			<para>
			    Raised if this identity was not 
registered with the evictor.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.DatabaseException"><classname>DatabaseException</classname></link></term>
		    <listitem>
			<para>
			    Raised if a database failure occurred.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Freeze.Evictor.keep"><function>keep</function></link></member>
		<member><link linkend="Freeze.Evictor.releaseFacet"><function>releaseFacet</function></link></member>
		<member><link linkend="Freeze.Evictor.removeFacet"><function>removeFacet</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Freeze.Evictor.release">
	<title><literal>release</literal></title>
<synopsis><type>void</type> <function>release</function>(<link linkend="Ice.Identity"><structname>::Ice::Identity</structname></link> <parameter>id</parameter>);</synopsis>
	<para>
Release a "lock" acquired by <link linkend="Freeze.Evictor.keep"><function>keep</function></link>. Once all the locks on an
object have been released, the object is again subject to the 
normal eviction strategy.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>id</parameter></term>
		    <listitem>
			<para>
			    The identity of the &Ice; object.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><literal>NotRegisteredException</literal></term>
		    <listitem>
			<para>
			    Raised if this object was not
"locked" with <link linkend="Freeze.Evictor.keep"><function>keep</function></link> or <link linkend="Freeze.Evictor.keepFacet"><function>keepFacet</function></link>.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Freeze.Evictor.keepFacet"><function>keepFacet</function></link></member>
		<member><link linkend="Freeze.Evictor.release"><function>release</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Freeze.Evictor.releaseFacet">
	<title><literal>releaseFacet</literal></title>
<synopsis><type>void</type> <function>releaseFacet</function>(<link linkend="Ice.Identity"><structname>::Ice::Identity</structname></link> <parameter>id</parameter>,
    <type>string</type> <parameter>facet</parameter>);</synopsis>
	<para>
Like <link linkend="Freeze.Evictor.release"><function>release</function></link>, but with a facet. Calling <literal>release(id)</literal> 
is equivalent to calling <link linkend="Freeze.Evictor.releaseFacet"><function>releaseFacet</function></link> with an empty facet.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>id</parameter></term>
		    <listitem>
			<para>
			    The identity of the &Ice; object.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>facet</parameter></term>
		    <listitem>
			<para>
			    The facet. An empty facet means the default
facet.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><literal>NotRegisteredException</literal></term>
		    <listitem>
			<para>
			    Raised if this object was not
"locked" with <link linkend="Freeze.Evictor.keep"><function>keep</function></link> or <link linkend="Freeze.Evictor.keepFacet"><function>keepFacet</function></link>.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Freeze.Evictor.keep"><function>keep</function></link></member>
		<member><link linkend="Freeze.Evictor.releaseFacet"><function>releaseFacet</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Freeze.Evictor.remove">
	<title><literal>remove</literal></title>
<synopsis><type>Object</type> <function>remove</function>(<link linkend="Ice.Identity"><structname>::Ice::Identity</structname></link> <parameter>id</parameter>);</synopsis>
	<para>
Permanently destroy an &Ice; object.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>id</parameter></term>
		    <listitem>
			<para>
			    The identity of the &Ice; object.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		The removed servant.</para>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><literal>NotRegisteredException</literal></term>
		    <listitem>
			<para>
			    Raised if this identity was not 
registered with the evictor.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.DatabaseException"><classname>DatabaseException</classname></link></term>
		    <listitem>
			<para>
			    Raised if a database failure occurred.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.EvictorDeactivatedException"><classname>EvictorDeactivatedException</classname></link></term>
		    <listitem>
			<para>
			    Raised if the evictor has
been deactivated.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Freeze.Evictor.add"><function>add</function></link></member>
		<member><link linkend="Freeze.Evictor.removeFacet"><function>removeFacet</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Freeze.Evictor.removeFacet">
	<title><literal>removeFacet</literal></title>
<synopsis><type>Object</type> <function>removeFacet</function>(<link linkend="Ice.Identity"><structname>::Ice::Identity</structname></link> <parameter>id</parameter>,
    <type>string</type> <parameter>facet</parameter>);</synopsis>
	<para>
Like <link linkend="Freeze.Evictor.remove"><function>remove</function></link>, but with a facet. Calling <literal>remove(id)</literal> 
is equivalent to calling <link linkend="Freeze.Evictor.removeFacet"><function>removeFacet</function></link> with an empty facet.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>id</parameter></term>
		    <listitem>
			<para>
			    The identity of the &Ice; object.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>facet</parameter></term>
		    <listitem>
			<para>
			    The facet. An empty facet means the default
facet.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		The removed servant.</para>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><literal>NotRegisteredException</literal></term>
		    <listitem>
			<para>
			    Raised if this identity was not 
registered with the evictor.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.DatabaseException"><classname>DatabaseException</classname></link></term>
		    <listitem>
			<para>
			    Raised if a database failure occurred.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.EvictorDeactivatedException"><classname>EvictorDeactivatedException</classname></link></term>
		    <listitem>
			<para>
			    Raised if the evictor has
been deactivated.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Freeze.Evictor.remove"><function>remove</function></link></member>
		<member><link linkend="Freeze.Evictor.addFacet"><function>addFacet</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Freeze.Evictor.setSize">
	<title><literal>setSize</literal></title>
<synopsis><type>void</type> <function>setSize</function>(<type>int</type> <parameter>sz</parameter>);</synopsis>
	<para>
Set the size of the evictor's servant queue. This is the
maximum number of servants the evictor keeps active. Requests
to set the queue size to a value smaller than zero are ignored.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>sz</parameter></term>
		    <listitem>
			<para>
			    The size of the servant queue. If the evictor
currently holds more than <link linkend="Freeze.Evictor.setSize"><function>setSize</function></link> servants in its queue, it evicts
enough servants to match the new size. Note that this operation
can block if the new queue size is smaller than the current
number of servants that are servicing requests. In this case,
the operation waits until a sufficient number of servants
complete their requests.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Freeze.EvictorDeactivatedException"><classname>EvictorDeactivatedException</classname></link></term>
		    <listitem>
			<para>
			    Raised if a the evictor has
been deactivated.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Freeze.Evictor.getSize"><function>getSize</function></link></member>
	    </simplelist></para></section>
    </section>
</section>
<section id="Freeze.EvictorDeactivatedException">
    <title><literal>Freeze::EvictorDeactivatedException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>EvictorDeactivatedException</classname></synopsis>
	<para>
This exception is raised if the evictor has been deactivated.</para>
    </section>
</section>
<section id="Freeze.EvictorIterator">
    <title><literal>Freeze::EvictorIterator</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local interface <classname>EvictorIterator</classname></synopsis>
	<para>
An iterator for the objects managed by the evictor.
Note that an EvictorIterator is not thread-safe: the application needs to
serialize access to a given EvictorIterator, for example by using it
in just one thread.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Freeze.Evictor.getIterator"><function>Evictor::getIterator</function></link></member>
	    </simplelist></para></section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Freeze.Evictor"><classname>Evictor</classname></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Operation Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Freeze.EvictorIterator.hasNext"><function>hasNext</function></link></term>
		    <listitem>
			<para>
Determines if the iteration has more elements.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.EvictorIterator.next"><function>next</function></link></term>
		    <listitem>
			<para>
Obtains the next identity in the iteration.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Freeze.EvictorIterator.hasNext">
	<title><literal>hasNext</literal></title>
<synopsis><type>bool</type> <function>hasNext</function>();</synopsis>
	<para>
Determines if the iteration has more elements.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		True if the iterator has more elements, false
otherwise.</para>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Freeze.DatabaseException"><classname>DatabaseException</classname></link></term>
		    <listitem>
			<para>
			    Raised if a database failure
occurs while retrieving a batch of objects.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Freeze.EvictorIterator.next">
	<title><literal>next</literal></title>
<synopsis><link linkend="Ice.Identity"><structname>::Ice::Identity</structname></link> <function>next</function>();</synopsis>
	<para>
Obtains the next identity in the iteration.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		s The next identity in the iteration.</para>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Freeze.NoSuchElementException"><classname>NoSuchElementException</classname></link></term>
		    <listitem>
			<para>
			    Raised if there is no further
elements in the iteration.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.DatabaseException"><classname>DatabaseException</classname></link></term>
		    <listitem>
			<para>
			    Raised if a database failure
occurs while retrieving a batch of objects.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
</section>
<section id="Freeze.InvalidPositionException">
    <title><literal>Freeze::InvalidPositionException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>InvalidPositionException</classname></synopsis>
	<para>
This Freeze Iterator is not on a valid position, for example
this position has been erased.</para>
    </section>
</section>
<section id="Freeze.NoSuchElementException">
    <title><literal>Freeze::NoSuchElementException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>NoSuchElementException</classname></synopsis>
	<para>
This exception is raised if there are no further elements in the iteration.</para>
    </section>
</section>
<section id="Freeze.NotFoundException">
    <title><literal>Freeze::NotFoundException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>NotFoundException</classname>
    extends 
	<link linkend="Freeze.DatabaseException"><classname>DatabaseException</classname></link></synopsis>
	<para>
A Freeze database exception, indicating that a database record
could not be found.</para>
    </section>
</section>
<section id="Freeze.ObjectRecord">
    <title><literal>Freeze::ObjectRecord</literal></title>
    <section>
	<title>Overview</title>
<synopsis>struct <structname>ObjectRecord</structname></synopsis>
	<para>
The evictor uses a number of maps <link linkend="Ice.Identity"><structname>::Ice::Identity</structname></link> to <link linkend="Freeze.ObjectRecord"><structname>ObjectRecord</structname></link> as its
persistent storage.</para>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Freeze.ObjectRecord.servant"><type>servant</type></link></term>
		    <listitem>
			<para>
</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.ObjectRecord.stats"><type>stats</type></link></term>
		    <listitem>
			<para>
</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Freeze.ObjectRecord.servant">
	<title><literal>servant</literal></title>
<synopsis><type>Object</type> <structfield>servant</structfield>;</synopsis>
	<para></para>
    </section>
    <section id="Freeze.ObjectRecord.stats">
	<title><literal>stats</literal></title>
<synopsis><link linkend="Freeze.Statistics"><structname>Statistics</structname></link> <structfield>stats</structfield>;</synopsis>
	<para></para>
    </section>
</section>
<section id="Freeze.ServantInitializer">
    <title><literal>Freeze::ServantInitializer</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local interface <classname>ServantInitializer</classname></synopsis>
	<para>
A servant initializer is installed in an evictor and provides the
application with an opportunity to perform custom servant
initialization.</para>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Freeze.Evictor"><classname>Evictor</classname></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Operation Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Freeze.ServantInitializer.initialize"><function>initialize</function></link></term>
		    <listitem>
			<para>
Called whenever the evictor creates a new servant.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Freeze.ServantInitializer.initialize">
	<title><literal>initialize</literal></title>
<synopsis><type>void</type> <function>initialize</function>(<link linkend="Ice.ObjectAdapter"><classname>::Ice::ObjectAdapter</classname></link> <parameter>adapter</parameter>,
    <link linkend="Ice.Identity"><structname>::Ice::Identity</structname></link> <parameter>identity</parameter>,
    <type>string</type> <parameter>facet</parameter>,
    <type>Object</type> <parameter>servant</parameter>);</synopsis>
	<para>
Called whenever the evictor creates a new servant. This
operation allows application code to perform custom servant
initialization after the servant has been created by the
evictor and its persistent state has been restored.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>adapter</parameter></term>
		    <listitem>
			<para>
			    The object adapter in which the evictor is
installed.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>identity</parameter></term>
		    <listitem>
			<para>
			    The identity of the &Ice; object for which the
servant was created.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>facet</parameter></term>
		    <listitem>
			<para>
			    The facet. An empty facet means the default
facet.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>servant</parameter></term>
		    <listitem>
			<para>
			    The servant to initialize.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Ice.Identity"><structname>::Ice::Identity</structname></link></member>
	    </simplelist></para></section>
    </section>
</section>
<section id="Freeze.Statistics">
    <title><literal>Freeze::Statistics</literal></title>
    <section>
	<title>Overview</title>
<synopsis>struct <structname>Statistics</structname></synopsis>
	<para>
The evictor maintains statistics about each object.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Freeze.ObjectRecord.stats"><type>ObjectRecord::stats</type></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Freeze.Statistics.avgSaveTime"><type>avgSaveTime</type></link></term>
		    <listitem>
			<para>
The average time between saves, in milliseconds.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.Statistics.creationTime"><type>creationTime</type></link></term>
		    <listitem>
			<para>
The time the object was created, in milliseconds since Jan 1, 1970 0:00.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.Statistics.lastSaveTime"><type>lastSaveTime</type></link></term>
		    <listitem>
			<para>
The time the object was last saved, in milliseconds relative to <link linkend="Freeze.Statistics.creationTime"><type>creationTime</type></link>.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Freeze.Statistics.avgSaveTime">
	<title><literal>avgSaveTime</literal></title>
<synopsis><type>long</type> <structfield>avgSaveTime</structfield>;</synopsis>
	<para>
The average time between saves, in milliseconds.</para>
    </section>
    <section id="Freeze.Statistics.creationTime">
	<title><literal>creationTime</literal></title>
<synopsis><type>long</type> <structfield>creationTime</structfield>;</synopsis>
	<para>
The time the object was created, in milliseconds since Jan 1, 1970 0:00.</para>
    </section>
    <section id="Freeze.Statistics.lastSaveTime">
	<title><literal>lastSaveTime</literal></title>
<synopsis><type>long</type> <structfield>lastSaveTime</structfield>;</synopsis>
	<para>
The time the object was last saved, in milliseconds relative to <link linkend="Freeze.Statistics.creationTime"><type>creationTime</type></link>.</para>
    </section>
</section>
<section id="Freeze.Transaction">
    <title><literal>Freeze::Transaction</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local interface <classname>Transaction</classname></synopsis>
	<para>
A transaction. If you want to use a transaction concurrently 
in multiple threads, you need to serialize access to this
transaction.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Freeze.Connection.beginTransaction"><function>Connection::beginTransaction</function></link></member>
		<member><link linkend="Freeze.Connection.currentTransaction"><function>Connection::currentTransaction</function></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Operation Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Freeze.Transaction.commit"><function>commit</function></link></term>
		    <listitem>
			<para>
Commit this transaction.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Freeze.Transaction.rollback"><function>rollback</function></link></term>
		    <listitem>
			<para>
Roll back this transaction.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Freeze.Transaction.commit">
	<title><literal>commit</literal></title>
<synopsis><type>void</type> <function>commit</function>();</synopsis>
	<para>
Commit this transaction.</para>
    </section>
    <section id="Freeze.Transaction.rollback">
	<title><literal>rollback</literal></title>
<synopsis><type>void</type> <function>rollback</function>();</synopsis>
	<para>
Roll back this transaction.</para>
    </section>
</section>
<section id="Freeze.TransactionAlreadyInProgressException">
    <title><literal>Freeze::TransactionAlreadyInProgressException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>TransactionAlreadyInProgressException</classname></synopsis>
	<para></para>
    </section>
</section>
<section id="IceBox">
    <title><literal>IceBox</literal></title>
    <section>
	<title>Overview</title>
<synopsis>module <classname>IceBox</classname></synopsis>
	<para>
&IceBox; is an application server specifically for &Ice;
applications. &IceBox; can easily run and administer Ice services
that are dynamically loaded as a DLL, shared library, or Java
class.</para>
	<section>
	    <title>Interface Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IceBox.Service"><type>Service</type></link></term>
		    <listitem>
			<para>
An application service managed by a <link linkend="IceBox.ServiceManager"><classname>ServiceManager</classname></link>.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceBox.ServiceManager"><type>ServiceManager</type></link></term>
		    <listitem>
			<para>
Administers a set of <link linkend="IceBox.Service"><classname>Service</classname></link> instances.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Exception Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IceBox.FailureException"><classname>FailureException</classname></link></term>
		    <listitem>
			<para>
Indicates a failure occurred.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
</section>
<section id="IceBox.FailureException">
    <title><literal>IceBox::FailureException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>FailureException</classname></synopsis>
	<para>
Indicates a failure occurred. For example, if a service encounters
an error during initialization, or if the service manager is unable
to load a service executable.</para>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IceBox.FailureException.reason"><type>reason</type></link></term>
		    <listitem>
			<para>
The reason for the failure.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IceBox.FailureException.reason">
	<title><literal>reason</literal></title>
<synopsis><type>string</type> <structfield>reason</structfield>;</synopsis>
	<para>
The reason for the failure.</para>
    </section>
</section>
<section id="IceBox.Service">
    <title><literal>IceBox::Service</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local interface <classname>Service</classname></synopsis>
	<para>
An application service managed by a <link linkend="IceBox.ServiceManager"><classname>ServiceManager</classname></link>.</para>
	<section>
	    <title>Operation Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IceBox.Service.start"><function>start</function></link></term>
		    <listitem>
			<para>
Start the service.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceBox.Service.stop"><function>stop</function></link></term>
		    <listitem>
			<para>
Stop the service.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IceBox.Service.start">
	<title><literal>start</literal></title>
<synopsis><type>void</type> <function>start</function>(<type>string</type> <parameter>name</parameter>,
    <link linkend="Ice.Communicator"><classname>::Ice::Communicator</classname></link> <parameter>communicator</parameter>,
    <link linkend="Ice.StringSeq"><type>::Ice::StringSeq</type></link> <parameter>args</parameter>);</synopsis>
	<para>
Start the service. The given communicator is created by the
<link linkend="IceBox.ServiceManager"><classname>ServiceManager</classname></link> for use by the service. This communicator may
also be used by other services, depending on the service
configuration.
<note><para>The <link linkend="IceBox.ServiceManager"><classname>ServiceManager</classname></link> owns this communicator, and is
responsible for destroying it.</para></note></para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>name</parameter></term>
		    <listitem>
			<para>
			    The service's name, as determined by the
configuration.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>communicator</parameter></term>
		    <listitem>
			<para>
			    A communicator for use by the service.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>args</parameter></term>
		    <listitem>
			<para>
			    The service arguments that were not converted into
properties.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IceBox.FailureException"><classname>FailureException</classname></link></term>
		    <listitem>
			<para>
			    Raised if <link linkend="IceBox.Service.start"><function>start</function></link> failed.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IceBox.Service.stop">
	<title><literal>stop</literal></title>
<synopsis><type>void</type> <function>stop</function>();</synopsis>
	<para>
Stop the service.</para>
    </section>
</section>
<section id="IceBox.ServiceManager">
    <title><literal>IceBox::ServiceManager</literal></title>
    <section>
	<title>Overview</title>
<synopsis>interface <classname>ServiceManager</classname></synopsis>
	<para>
Administers a set of <link linkend="IceBox.Service"><classname>Service</classname></link> instances.</para>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IceBox.Service"><classname>Service</classname></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Operation Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IceBox.ServiceManager.getSliceChecksums"><function>getSliceChecksums</function></link></term>
		    <listitem>
			<para>
Returns the checksums for the IceBox Slice definitions.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceBox.ServiceManager.shutdown"><function>shutdown</function></link></term>
		    <listitem>
			<para>
Shutdown all services.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IceBox.ServiceManager.getSliceChecksums">
	<title><literal>getSliceChecksums</literal></title>
<synopsis><link linkend="Ice.SliceChecksumDict"><type>::Ice::SliceChecksumDict</type></link> <function>getSliceChecksums</function>();</synopsis>
	<para>
Returns the checksums for the IceBox Slice definitions.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		A dictionary mapping Slice type ids to their checksums.</para>
	</section>
    </section>
    <section id="IceBox.ServiceManager.shutdown">
	<title><literal>shutdown</literal></title>
<synopsis><type>void</type> <function>shutdown</function>();</synopsis>
	<para>
Shutdown all services. This will cause <link linkend="IceBox.Service.stop"><function>Service::stop</function></link> to be
invoked on all configured services.</para>
    </section>
</section>
<section id="IcePack">
    <title><literal>IcePack</literal></title>
    <section>
	<title>Overview</title>
<synopsis>module <classname>IcePack</classname></synopsis>
	<para>
&IcePack; is a server activation and deployment tool. &IcePack;,
simplifies the complex task of deploying applications in a
heterogenous computer network.</para>
	<section>
	    <title>Class Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.ApplicationDescriptor"><type>ApplicationDescriptor</type></link></term>
		    <listitem>
			<para>
An application descriptor.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.ComponentDescriptor"><type>ComponentDescriptor</type></link></term>
		    <listitem>
			<para>
A component descriptor.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.CppIceBoxDescriptor"><type>CppIceBoxDescriptor</type></link></term>
		    <listitem>
			<para>
A C++ &IceBox; server descriptor.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.JavaIceBoxDescriptor"><type>JavaIceBoxDescriptor</type></link></term>
		    <listitem>
			<para>
A Java &IceBox; server descriptor.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.JavaServerDescriptor"><type>JavaServerDescriptor</type></link></term>
		    <listitem>
			<para>
A Java &Ice; server descriptor.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.ServerDescriptor"><type>ServerDescriptor</type></link></term>
		    <listitem>
			<para>
An &Ice; server descriptor.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.ServiceDescriptor"><type>ServiceDescriptor</type></link></term>
		    <listitem>
			<para>
An &IceBox; service descriptor.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Interface Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.Admin"><type>Admin</type></link></term>
		    <listitem>
			<para>
The &IcePack; administrative interface.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Query"><type>Query</type></link></term>
		    <listitem>
			<para>
The &IcePack; query interface.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Exception Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.AdapterNotExistException"><classname>AdapterNotExistException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if an adapter does not exist.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.ApplicationNotExistException"><classname>ApplicationNotExistException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if an application does not exist.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.BadSignalException"><classname>BadSignalException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if an unknown signal was sent to
to a server.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.DeploymentException"><classname>DeploymentException</classname></link></term>
		    <listitem>
			<para>
A generic exception base for all kinds of deployment error
exception.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.NodeNotExistException"><classname>NodeNotExistException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if a node does not exist.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.NodeUnreachableException"><classname>NodeUnreachableException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if a node could not be reached.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.ObjectExistsException"><classname>ObjectExistsException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if an object already exists.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.ObjectNotExistException"><classname>ObjectNotExistException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if an object does not exist.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.ServerNotExistException"><classname>ServerNotExistException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if a server does not exist.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Struct Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.AdapterDescriptor"><structname>AdapterDescriptor</structname></link></term>
		    <listitem>
			<para>
An &Ice; object adapter descriptor.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.DbEnvDescriptor"><structname>DbEnvDescriptor</structname></link></term>
		    <listitem>
			<para>
A &Freeze; database environment descriptor.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.ObjectDescriptor"><structname>ObjectDescriptor</structname></link></term>
		    <listitem>
			<para>
An &Ice; object descriptor.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.PropertyDescriptor"><structname>PropertyDescriptor</structname></link></term>
		    <listitem>
			<para>
A configuration property descriptor.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Sequence Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.AdapterDescriptorSeq"><type>AdapterDescriptorSeq</type></link></term>
		    <listitem>
			<para>
A sequence of adapter descriptors.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.DbEnvDescriptorSeq"><type>DbEnvDescriptorSeq</type></link></term>
		    <listitem>
			<para>
A sequence of database environment descriptors.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.ObjectDescriptorSeq"><type>ObjectDescriptorSeq</type></link></term>
		    <listitem>
			<para>
A sequence of object descriptors.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.PropertyDescriptorSeq"><type>PropertyDescriptorSeq</type></link></term>
		    <listitem>
			<para>
A sequence of property descriptors.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.ServerDescriptorSeq"><type>ServerDescriptorSeq</type></link></term>
		    <listitem>
			<para>
A sequence of server descriptors.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.ServiceDescriptorSeq"><type>ServiceDescriptorSeq</type></link></term>
		    <listitem>
			<para>
A sequence of service descriptors.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Enum Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.ServerActivation"><type>ServerActivation</type></link></term>
		    <listitem>
			<para>
The server activation mode.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.ServerState"><type>ServerState</type></link></term>
		    <listitem>
			<para>
An enumeration representing the state of the server.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IcePack.AdapterDescriptorSeq">
	<title><literal>AdapterDescriptorSeq</literal></title>
<synopsis>sequence&lt;<link linkend="IcePack.AdapterDescriptor"><structname>AdapterDescriptor</structname></link>&gt; <type>AdapterDescriptorSeq</type>;</synopsis>
	<para>
A sequence of adapter descriptors.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IcePack.ComponentDescriptor.adapters"><type>ComponentDescriptor::adapters</type></link></member>
	    </simplelist></para></section>
    </section>
    <section id="IcePack.DbEnvDescriptorSeq">
	<title><literal>DbEnvDescriptorSeq</literal></title>
<synopsis>sequence&lt;<link linkend="IcePack.DbEnvDescriptor"><structname>DbEnvDescriptor</structname></link>&gt; <type>DbEnvDescriptorSeq</type>;</synopsis>
	<para>
A sequence of database environment descriptors.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IcePack.ComponentDescriptor.dbEnvs"><type>ComponentDescriptor::dbEnvs</type></link></member>
	    </simplelist></para></section>
    </section>
    <section id="IcePack.ObjectDescriptorSeq">
	<title><literal>ObjectDescriptorSeq</literal></title>
<synopsis>sequence&lt;<link linkend="IcePack.ObjectDescriptor"><structname>ObjectDescriptor</structname></link>&gt; <type>ObjectDescriptorSeq</type>;</synopsis>
	<para>
A sequence of object descriptors.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IcePack.AdapterDescriptor.objects"><type>AdapterDescriptor::objects</type></link></member>
		<member><link linkend="IcePack.Admin.getAllObjectDescriptors"><function>Admin::getAllObjectDescriptors</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="IcePack.PropertyDescriptorSeq">
	<title><literal>PropertyDescriptorSeq</literal></title>
<synopsis>sequence&lt;<link linkend="IcePack.PropertyDescriptor"><structname>PropertyDescriptor</structname></link>&gt; <type>PropertyDescriptorSeq</type>;</synopsis>
	<para>
A sequence of property descriptors.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IcePack.ComponentDescriptor.properties"><type>ComponentDescriptor::properties</type></link></member>
		<member><link linkend="IcePack.DbEnvDescriptor.properties"><type>DbEnvDescriptor::properties</type></link></member>
	    </simplelist></para></section>
    </section>
    <section id="IcePack.ServerDescriptorSeq">
	<title><literal>ServerDescriptorSeq</literal></title>
<synopsis>sequence&lt;<link linkend="IcePack.ServerDescriptor"><classname>ServerDescriptor</classname></link>&gt; <type>ServerDescriptorSeq</type>;</synopsis>
	<para>
A sequence of server descriptors.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IcePack.ApplicationDescriptor.servers"><type>ApplicationDescriptor::servers</type></link></member>
	    </simplelist></para></section>
    </section>
    <section id="IcePack.ServiceDescriptorSeq">
	<title><literal>ServiceDescriptorSeq</literal></title>
<synopsis>sequence&lt;<link linkend="IcePack.ServiceDescriptor"><classname>ServiceDescriptor</classname></link>&gt; <type>ServiceDescriptorSeq</type>;</synopsis>
	<para>
A sequence of service descriptors.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IcePack.CppIceBoxDescriptor.services"><type>CppIceBoxDescriptor::services</type></link></member>
		<member><link linkend="IcePack.JavaIceBoxDescriptor.services"><type>JavaIceBoxDescriptor::services</type></link></member>
	    </simplelist></para></section>
    </section>
</section>
<section id="IcePack.AdapterDescriptor">
    <title><literal>IcePack::AdapterDescriptor</literal></title>
    <section>
	<title>Overview</title>
<synopsis>struct <structname>AdapterDescriptor</structname></synopsis>
	<para>
An &Ice; object adapter descriptor.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IcePack.AdapterDescriptorSeq"><type>AdapterDescriptorSeq</type></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.AdapterDescriptor.endpoints"><type>endpoints</type></link></term>
		    <listitem>
			<para>
The object adapter endpoints.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.AdapterDescriptor.id"><type>id</type></link></term>
		    <listitem>
			<para>
The object adapter id.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.AdapterDescriptor.name"><type>name</type></link></term>
		    <listitem>
			<para>
The object adapter name.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.AdapterDescriptor.objects"><type>objects</type></link></term>
		    <listitem>
			<para>
The object descriptor associated to this object adapter descriptor.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.AdapterDescriptor.registerProcess"><type>registerProcess</type></link></term>
		    <listitem>
			<para>
Flag to specify if the object adapter will register a process object.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IcePack.AdapterDescriptor.endpoints">
	<title><literal>endpoints</literal></title>
<synopsis><type>string</type> <structfield>endpoints</structfield>;</synopsis>
	<para>
The object adapter endpoints.</para>
    </section>
    <section id="IcePack.AdapterDescriptor.id">
	<title><literal>id</literal></title>
<synopsis><type>string</type> <structfield>id</structfield>;</synopsis>
	<para>
The object adapter id.</para>
    </section>
    <section id="IcePack.AdapterDescriptor.name">
	<title><literal>name</literal></title>
<synopsis><type>string</type> <structfield>name</structfield>;</synopsis>
	<para>
The object adapter name.</para>
    </section>
    <section id="IcePack.AdapterDescriptor.objects">
	<title><literal>objects</literal></title>
<synopsis><link linkend="IcePack.ObjectDescriptorSeq"><type>ObjectDescriptorSeq</type></link> <structfield>objects</structfield>;</synopsis>
	<para>
The object descriptor associated to this object adapter descriptor.</para>
    </section>
    <section id="IcePack.AdapterDescriptor.registerProcess">
	<title><literal>registerProcess</literal></title>
<synopsis><type>bool</type> <structfield>registerProcess</structfield>;</synopsis>
	<para>
Flag to specify if the object adapter will register a process object.</para>
    </section>
</section>
<section id="IcePack.AdapterNotExistException">
    <title><literal>IcePack::AdapterNotExistException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>exception <classname>AdapterNotExistException</classname></synopsis>
	<para>
This exception is raised if an adapter does not exist.</para>
    </section>
</section>
<section id="IcePack.Admin">
    <title><literal>IcePack::Admin</literal></title>
    <section>
	<title>Overview</title>
<synopsis>interface <classname>Admin</classname></synopsis>
	<para>
The &IcePack; administrative interface. <warning><para>Allowing
access to this interface is a security risk! Please see the
&IcePack; documentation for further information.</para></warning></para>
	<section>
	    <title>Operation Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.Admin.addApplication"><function>addApplication</function></link></term>
		    <listitem>
			<para>
Add an application to &IcePack;.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Admin.addObject"><function>addObject</function></link></term>
		    <listitem>
			<para>
Add an object to the object registry.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Admin.addObjectWithType"><function>addObjectWithType</function></link></term>
		    <listitem>
			<para>
Add an object to the object registry and explicitly specify
its type.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Admin.addServer"><function>addServer</function></link></term>
		    <listitem>
			<para>
Add a server to an &IcePack; node.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Admin.getAdapterEndpoints"><function>getAdapterEndpoints</function></link></term>
		    <listitem>
			<para>
Get the list of endpoints for an adapter.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Admin.getAllAdapterIds"><function>getAllAdapterIds</function></link></term>
		    <listitem>
			<para>
Get all the adapter ids registered with &IcePack;.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Admin.getAllApplicationNames"><function>getAllApplicationNames</function></link></term>
		    <listitem>
			<para>
Get all the &IcePack; applications currently registered.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Admin.getAllNodeNames"><function>getAllNodeNames</function></link></term>
		    <listitem>
			<para>
Get all the &IcePack; nodes currently registered.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Admin.getAllObjectDescriptors"><function>getAllObjectDescriptors</function></link></term>
		    <listitem>
			<para>
Get the descriptors of all registered objects whose stringified
identities match the given expression.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Admin.getAllServerNames"><function>getAllServerNames</function></link></term>
		    <listitem>
			<para>
Get all the server names registered with &IcePack;.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Admin.getApplicationDescriptor"><function>getApplicationDescriptor</function></link></term>
		    <listitem>
			<para>
Get an application descriptor.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Admin.getNodeHostname"><function>getNodeHostname</function></link></term>
		    <listitem>
			<para>
Get the hostname of this node.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Admin.getObjectDescriptor"><function>getObjectDescriptor</function></link></term>
		    <listitem>
			<para>
Get the object descriptor if the object with the given
identity.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Admin.getServerActivation"><function>getServerActivation</function></link></term>
		    <listitem>
			<para>
Get the server's activation mode.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Admin.getServerDescriptor"><function>getServerDescriptor</function></link></term>
		    <listitem>
			<para>
Get a server descriptor.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Admin.getServerPid"><function>getServerPid</function></link></term>
		    <listitem>
			<para>
Get a server's system process id.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Admin.getServerState"><function>getServerState</function></link></term>
		    <listitem>
			<para>
Get a server's state.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Admin.getSliceChecksums"><function>getSliceChecksums</function></link></term>
		    <listitem>
			<para>
Returns the checksums for the IcePack Slice definitions.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Admin.pingNode"><function>pingNode</function></link></term>
		    <listitem>
			<para>
Ping an &IcePack; node to see if it is active.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Admin.removeApplication"><function>removeApplication</function></link></term>
		    <listitem>
			<para>
Remove an application from &IcePack;.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Admin.removeNode"><function>removeNode</function></link></term>
		    <listitem>
			<para>
Remove the given node and associated servers from the &IcePack; registry.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Admin.removeObject"><function>removeObject</function></link></term>
		    <listitem>
			<para>
Remove an object from the object registry.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Admin.removeServer"><function>removeServer</function></link></term>
		    <listitem>
			<para>
Remove a server from an &IcePack; node.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Admin.sendSignal"><function>sendSignal</function></link></term>
		    <listitem>
			<para>
Send signal to a server.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Admin.setServerActivation"><function>setServerActivation</function></link></term>
		    <listitem>
			<para>
Set the server's activation mode.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Admin.shutdown"><function>shutdown</function></link></term>
		    <listitem>
			<para>
Shut down the &IcePack; registry.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Admin.shutdownNode"><function>shutdownNode</function></link></term>
		    <listitem>
			<para>
Shutdown an &IcePack; node.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Admin.startServer"><function>startServer</function></link></term>
		    <listitem>
			<para>
Start a server.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Admin.stopServer"><function>stopServer</function></link></term>
		    <listitem>
			<para>
Stop a server.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Admin.updateApplication"><function>updateApplication</function></link></term>
		    <listitem>
			<para>
Update an application.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Admin.updateServer"><function>updateServer</function></link></term>
		    <listitem>
			<para>
Update a server.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Admin.writeMessage"><function>writeMessage</function></link></term>
		    <listitem>
			<para>
Write message on server stdout or stderr
@param name The name of the server.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IcePack.Admin.addApplication">
	<title><literal>addApplication</literal></title>
<synopsis><type>void</type> <function>addApplication</function>(<link linkend="IcePack.ApplicationDescriptor"><classname>ApplicationDescriptor</classname></link> <parameter>descriptor</parameter>)
    throws
	<link linkend="IcePack.DeploymentException"><classname>DeploymentException</classname></link>;</synopsis>
	<para>
Add an application to &IcePack;. An application is a set of servers.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>descriptor</parameter></term>
		    <listitem>
			<para>
			    The application descriptor.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.DeploymentException"><classname>DeploymentException</classname></link></term>
		    <listitem>
			<para>
			    Raised if application deployment failed.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IcePack.Admin.removeApplication"><function>removeApplication</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="IcePack.Admin.addObject">
	<title><literal>addObject</literal></title>
<synopsis><type>void</type> <function>addObject</function>(<type>Object*</type> <parameter>obj</parameter>)
    throws
	<link linkend="IcePack.ObjectExistsException"><classname>ObjectExistsException</classname></link>,
	<link linkend="IcePack.DeploymentException"><classname>DeploymentException</classname></link>;</synopsis>
	<para>
Add an object to the object registry. &IcePack; will get the
object type by calling <literal>ice_id</literal> on the given proxy. The object
must be reachable.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>obj</parameter></term>
		    <listitem>
			<para>
			    The object to be added to the registry.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.ObjectExistsException"><classname>ObjectExistsException</classname></link></term>
		    <listitem>
			<para>
			    Raised if the object is already
registered.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IcePack.Admin.addObjectWithType">
	<title><literal>addObjectWithType</literal></title>
<synopsis><type>void</type> <function>addObjectWithType</function>(<type>Object*</type> <parameter>obj</parameter>,
    <type>string</type> <parameter>type</parameter>)
    throws
	<link linkend="IcePack.ObjectExistsException"><classname>ObjectExistsException</classname></link>;</synopsis>
	<para>
Add an object to the object registry and explicitly specify
its type.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>obj</parameter></term>
		    <listitem>
			<para>
			    The object to be added to the registry.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>type</parameter></term>
		    <listitem>
			<para>
			    The object type.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.ObjectExistsException"><classname>ObjectExistsException</classname></link></term>
		    <listitem>
			<para>
			    Raised if the object is already
registered.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IcePack.Admin.addServer">
	<title><literal>addServer</literal></title>
<synopsis><type>void</type> <function>addServer</function>(<link linkend="IcePack.ServerDescriptor"><classname>ServerDescriptor</classname></link> <parameter>server</parameter>)
    throws
	<link linkend="IcePack.DeploymentException"><classname>DeploymentException</classname></link>;</synopsis>
	<para>
Add a server to an &IcePack; node.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>descriptor</parameter></term>
		    <listitem>
			<para>
			    The server deployment descriptor.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.DeploymentException"><classname>DeploymentException</classname></link></term>
		    <listitem>
			<para>
			    Raised if server deployment failed.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IcePack.Admin.removeServer"><function>removeServer</function></link></member>
		<member><link linkend="IcePack.Admin.updateServer"><function>updateServer</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="IcePack.Admin.getAdapterEndpoints">
	<title><literal>getAdapterEndpoints</literal></title>
<synopsis><type>string</type> <function>getAdapterEndpoints</function>(<type>string</type> <parameter>id</parameter>)
    throws
	<link linkend="IcePack.AdapterNotExistException"><classname>AdapterNotExistException</classname></link>,
	<link linkend="IcePack.NodeUnreachableException"><classname>NodeUnreachableException</classname></link>;</synopsis>
	<para>
Get the list of endpoints for an adapter.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>id</parameter></term>
		    <listitem>
			<para>
			    The adapter id.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		The stringified adapter endpoints.</para>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.AdapterNotExistException"><classname>AdapterNotExistException</classname></link></term>
		    <listitem>
			<para>
			    Raised if the adapter is not
found.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IcePack.Admin.getAllAdapterIds">
	<title><literal>getAllAdapterIds</literal></title>
<synopsis><link linkend="Ice.StringSeq"><type>::Ice::StringSeq</type></link> <function>getAllAdapterIds</function>();</synopsis>
	<para>
Get all the adapter ids registered with &IcePack;.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		The adapter ids.</para>
	</section>
    </section>
    <section id="IcePack.Admin.getAllApplicationNames">
	<title><literal>getAllApplicationNames</literal></title>
<synopsis><link linkend="Ice.StringSeq"><type>::Ice::StringSeq</type></link> <function>getAllApplicationNames</function>();</synopsis>
	<para>
Get all the &IcePack; applications currently registered.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		The application names.</para>
	</section>
    </section>
    <section id="IcePack.Admin.getAllNodeNames">
	<title><literal>getAllNodeNames</literal></title>
<synopsis><link linkend="Ice.StringSeq"><type>::Ice::StringSeq</type></link> <function>getAllNodeNames</function>();</synopsis>
	<para>
Get all the &IcePack; nodes currently registered.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		The node names.</para>
	</section>
    </section>
    <section id="IcePack.Admin.getAllObjectDescriptors">
	<title><literal>getAllObjectDescriptors</literal></title>
<synopsis><link linkend="IcePack.ObjectDescriptorSeq"><type>ObjectDescriptorSeq</type></link> <function>getAllObjectDescriptors</function>(<type>string</type> <parameter>expr</parameter>);</synopsis>
	<para>
Get the descriptors of all registered objects whose stringified
identities match the given expression.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>expr</parameter></term>
		    <listitem>
			<para>
			    The expression to match against the stringified
identities of registered objects. The expression may contain
a trailing wildcard (<literal>*</literal>) character.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		All the object descriptors with a stringified identity
matching the given expression.</para>
	</section>
    </section>
    <section id="IcePack.Admin.getAllServerNames">
	<title><literal>getAllServerNames</literal></title>
<synopsis><link linkend="Ice.StringSeq"><type>::Ice::StringSeq</type></link> <function>getAllServerNames</function>();</synopsis>
	<para>
Get all the server names registered with &IcePack;.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		The server names.</para>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IcePack.Admin.getServerState"><function>getServerState</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="IcePack.Admin.getApplicationDescriptor">
	<title><literal>getApplicationDescriptor</literal></title>
<synopsis><link linkend="IcePack.ApplicationDescriptor"><classname>ApplicationDescriptor</classname></link> <function>getApplicationDescriptor</function>(<type>string</type> <parameter>name</parameter>)
    throws
	<link linkend="IcePack.ApplicationNotExistException"><classname>ApplicationNotExistException</classname></link>;</synopsis>
	<para>
Get an application descriptor.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>name</parameter></term>
		    <listitem>
			<para>
			    The application name.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		s The application descriptor.</para>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.ApplicationNotExistException"><classname>ApplicationNotExistException</classname></link></term>
		    <listitem>
			<para>
			    Raised if the application doesn't exist.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IcePack.Admin.getNodeHostname">
	<title><literal>getNodeHostname</literal></title>
<synopsis><type>string</type> <function>getNodeHostname</function>(<type>string</type> <parameter>name</parameter>)
    throws
	<link linkend="IcePack.NodeNotExistException"><classname>NodeNotExistException</classname></link>,
	<link linkend="IcePack.NodeUnreachableException"><classname>NodeUnreachableException</classname></link>;</synopsis>
	<para>
Get the hostname of this node.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>name</parameter></term>
		    <listitem>
			<para>
			    The node name.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IcePack.Admin.getObjectDescriptor">
	<title><literal>getObjectDescriptor</literal></title>
<synopsis><link linkend="IcePack.ObjectDescriptor"><structname>ObjectDescriptor</structname></link> <function>getObjectDescriptor</function>(<link linkend="Ice.Identity"><structname>::Ice::Identity</structname></link> <parameter>id</parameter>)
    throws
	<link linkend="IcePack.ObjectNotExistException"><classname>ObjectNotExistException</classname></link>;</synopsis>
	<para>
Get the object descriptor if the object with the given
identity.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>id</parameter></term>
		    <listitem>
			<para>
			    The identity of the object.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		The object descriptor.</para>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><literal>ObjectNotExistExcpetion</literal></term>
		    <listitem>
			<para>
			    Raised if the object cannot be
found.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IcePack.Admin.getServerActivation">
	<title><literal>getServerActivation</literal></title>
<synopsis><link linkend="IcePack.ServerActivation"><type>ServerActivation</type></link> <function>getServerActivation</function>(<type>string</type> <parameter>name</parameter>)
    throws
	<link linkend="IcePack.ServerNotExistException"><classname>ServerNotExistException</classname></link>,
	<link linkend="IcePack.NodeUnreachableException"><classname>NodeUnreachableException</classname></link>;</synopsis>
	<para>
Get the server's activation mode.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>name</parameter></term>
		    <listitem>
			<para>
			    The name of the server.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		The server activation mode.</para>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.ServerNotExistException"><classname>ServerNotExistException</classname></link></term>
		    <listitem>
			<para>
			    Raised if the server is not
found.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.NodeUnreachableException"><classname>NodeUnreachableException</classname></link></term>
		    <listitem>
			<para>
			    Raised if the node could not be
reached.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IcePack.Admin.getServerState"><function>getServerState</function></link></member>
		<member><link linkend="IcePack.Admin.getAllServerNames"><function>getAllServerNames</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="IcePack.Admin.getServerDescriptor">
	<title><literal>getServerDescriptor</literal></title>
<synopsis><link linkend="IcePack.ServerDescriptor"><classname>ServerDescriptor</classname></link> <function>getServerDescriptor</function>(<type>string</type> <parameter>name</parameter>)
    throws
	<link linkend="IcePack.ServerNotExistException"><classname>ServerNotExistException</classname></link>;</synopsis>
	<para>
Get a server descriptor.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>name</parameter></term>
		    <listitem>
			<para>
			    The server name.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		s The server descriptor.</para>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.ServerNotExistException"><classname>ServerNotExistException</classname></link></term>
		    <listitem>
			<para>
			    Raised if the server doesn't exist.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IcePack.Admin.getServerPid">
	<title><literal>getServerPid</literal></title>
<synopsis><type>int</type> <function>getServerPid</function>(<type>string</type> <parameter>name</parameter>)
    throws
	<link linkend="IcePack.ServerNotExistException"><classname>ServerNotExistException</classname></link>,
	<link linkend="IcePack.NodeUnreachableException"><classname>NodeUnreachableException</classname></link>;</synopsis>
	<para>
Get a server's system process id. The process id is operating
system dependent.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>name</parameter></term>
		    <listitem>
			<para>
			    The name of the server.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		The server process id.</para>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.ServerNotExistException"><classname>ServerNotExistException</classname></link></term>
		    <listitem>
			<para>
			    Raised if the server is not
found.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.NodeUnreachableException"><classname>NodeUnreachableException</classname></link></term>
		    <listitem>
			<para>
			    Raised if the node could not be
reached.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IcePack.Admin.getServerState"><function>getServerState</function></link></member>
		<member><link linkend="IcePack.Admin.getAllServerNames"><function>getAllServerNames</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="IcePack.Admin.getServerState">
	<title><literal>getServerState</literal></title>
<synopsis><link linkend="IcePack.ServerState"><type>ServerState</type></link> <function>getServerState</function>(<type>string</type> <parameter>name</parameter>)
    throws
	<link linkend="IcePack.ServerNotExistException"><classname>ServerNotExistException</classname></link>,
	<link linkend="IcePack.NodeUnreachableException"><classname>NodeUnreachableException</classname></link>;</synopsis>
	<para>
Get a server's state.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>name</parameter></term>
		    <listitem>
			<para>
			    The name of the server.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		The server state.</para>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.ServerNotExistException"><classname>ServerNotExistException</classname></link></term>
		    <listitem>
			<para>
			    Raised if the server is not
found.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.NodeUnreachableException"><classname>NodeUnreachableException</classname></link></term>
		    <listitem>
			<para>
			    Raised if the node could not be
reached.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IcePack.Admin.getServerPid"><function>getServerPid</function></link></member>
		<member><link linkend="IcePack.Admin.getAllServerNames"><function>getAllServerNames</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="IcePack.Admin.getSliceChecksums">
	<title><literal>getSliceChecksums</literal></title>
<synopsis><link linkend="Ice.SliceChecksumDict"><type>::Ice::SliceChecksumDict</type></link> <function>getSliceChecksums</function>();</synopsis>
	<para>
Returns the checksums for the IcePack Slice definitions.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		A dictionary mapping Slice type ids to their checksums.</para>
	</section>
    </section>
    <section id="IcePack.Admin.pingNode">
	<title><literal>pingNode</literal></title>
<synopsis><type>bool</type> <function>pingNode</function>(<type>string</type> <parameter>name</parameter>)
    throws
	<link linkend="IcePack.NodeNotExistException"><classname>NodeNotExistException</classname></link>;</synopsis>
	<para>
Ping an &IcePack; node to see if it is active.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>name</parameter></term>
		    <listitem>
			<para>
			    The node name.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		true if the node ping succeeded, false otherwise.</para>
	</section>
    </section>
    <section id="IcePack.Admin.removeApplication">
	<title><literal>removeApplication</literal></title>
<synopsis><type>void</type> <function>removeApplication</function>(<type>string</type> <parameter>name</parameter>)
    throws
	<link linkend="IcePack.ApplicationNotExistException"><classname>ApplicationNotExistException</classname></link>;</synopsis>
	<para>
Remove an application from &IcePack;.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>name</parameter></term>
		    <listitem>
			<para>
			    The application name.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IcePack.Admin.addApplication"><function>addApplication</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="IcePack.Admin.removeNode">
	<title><literal>removeNode</literal></title>
<synopsis><type>void</type> <function>removeNode</function>(<type>string</type> <parameter>name</parameter>)
    throws
	<link linkend="IcePack.NodeNotExistException"><classname>NodeNotExistException</classname></link>;</synopsis>
	<para>
Remove the given node and associated servers from the &IcePack; registry.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>name</parameter></term>
		    <listitem>
			<para>
			    The node name.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IcePack.Admin.removeObject">
	<title><literal>removeObject</literal></title>
<synopsis><type>void</type> <function>removeObject</function>(<link linkend="Ice.Identity"><structname>::Ice::Identity</structname></link> <parameter>id</parameter>)
    throws
	<link linkend="IcePack.ObjectNotExistException"><classname>ObjectNotExistException</classname></link>;</synopsis>
	<para>
Remove an object from the object registry.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>id</parameter></term>
		    <listitem>
			<para>
			    The identity of the object to be removed from the
registry.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.ObjectNotExistException"><classname>ObjectNotExistException</classname></link></term>
		    <listitem>
			<para>
			    Raised if the object cannot be
found.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IcePack.Admin.removeServer">
	<title><literal>removeServer</literal></title>
<synopsis><type>void</type> <function>removeServer</function>(<type>string</type> <parameter>name</parameter>)
    throws
	<link linkend="IcePack.ServerNotExistException"><classname>ServerNotExistException</classname></link>,
	<link linkend="IcePack.DeploymentException"><classname>DeploymentException</classname></link>;</synopsis>
	<para>
Remove a server from an &IcePack; node.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>name</parameter></term>
		    <listitem>
			<para>
			    The server name.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.ServerNotExistException"><classname>ServerNotExistException</classname></link></term>
		    <listitem>
			<para>
			    Raised if the server doesn't exist.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IcePack.Admin.addServer"><function>addServer</function></link></member>
		<member><link linkend="IcePack.Admin.updateServer"><function>updateServer</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="IcePack.Admin.sendSignal">
	<title><literal>sendSignal</literal></title>
<synopsis><type>void</type> <function>sendSignal</function>(<type>string</type> <parameter>name</parameter>,
    <type>string</type> <parameter>signal</parameter>)
    throws
	<link linkend="IcePack.ServerNotExistException"><classname>ServerNotExistException</classname></link>,
	<link linkend="IcePack.NodeUnreachableException"><classname>NodeUnreachableException</classname></link>,
	<link linkend="IcePack.BadSignalException"><classname>BadSignalException</classname></link>;</synopsis>
	<para>
Send signal to a server.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>name</parameter></term>
		    <listitem>
			<para>
			    The name of the server.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>signal</parameter></term>
		    <listitem>
			<para>
			    The signal, for example SIGTERM or 15.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.ServerNotExistException"><classname>ServerNotExistException</classname></link></term>
		    <listitem>
			<para>
			    Raised if the server is not
found.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.NodeUnreachableException"><classname>NodeUnreachableException</classname></link></term>
		    <listitem>
			<para>
			    Raised if the node could not be
reached.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.BadSignalException"><classname>BadSignalException</classname></link></term>
		    <listitem>
			<para>
			    Raised if the signal is not recognized 
by the target server.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IcePack.Admin.setServerActivation">
	<title><literal>setServerActivation</literal></title>
<synopsis><type>void</type> <function>setServerActivation</function>(<type>string</type> <parameter>name</parameter>,
    <link linkend="IcePack.ServerActivation"><type>ServerActivation</type></link> <parameter>mode</parameter>)
    throws
	<link linkend="IcePack.ServerNotExistException"><classname>ServerNotExistException</classname></link>,
	<link linkend="IcePack.NodeUnreachableException"><classname>NodeUnreachableException</classname></link>;</synopsis>
	<para>
Set the server's activation mode.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>name</parameter></term>
		    <listitem>
			<para>
			    The name of the server.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		The server activation mode.</para>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.ServerNotExistException"><classname>ServerNotExistException</classname></link></term>
		    <listitem>
			<para>
			    Raised if the server is not
found.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.NodeUnreachableException"><classname>NodeUnreachableException</classname></link></term>
		    <listitem>
			<para>
			    Raised if the node could not be
reached.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IcePack.Admin.getServerState"><function>getServerState</function></link></member>
		<member><link linkend="IcePack.Admin.getAllServerNames"><function>getAllServerNames</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="IcePack.Admin.shutdown">
	<title><literal>shutdown</literal></title>
<synopsis><type>void</type> <function>shutdown</function>();</synopsis>
	<para>
Shut down the &IcePack; registry.</para>
    </section>
    <section id="IcePack.Admin.shutdownNode">
	<title><literal>shutdownNode</literal></title>
<synopsis><type>void</type> <function>shutdownNode</function>(<type>string</type> <parameter>name</parameter>)
    throws
	<link linkend="IcePack.NodeNotExistException"><classname>NodeNotExistException</classname></link>,
	<link linkend="IcePack.NodeUnreachableException"><classname>NodeUnreachableException</classname></link>;</synopsis>
	<para>
Shutdown an &IcePack; node.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>name</parameter></term>
		    <listitem>
			<para>
			    The node name.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IcePack.Admin.startServer">
	<title><literal>startServer</literal></title>
<synopsis><type>bool</type> <function>startServer</function>(<type>string</type> <parameter>name</parameter>)
    throws
	<link linkend="IcePack.ServerNotExistException"><classname>ServerNotExistException</classname></link>,
	<link linkend="IcePack.NodeUnreachableException"><classname>NodeUnreachableException</classname></link>;</synopsis>
	<para>
Start a server.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>name</parameter></term>
		    <listitem>
			<para>
			    The name of the server.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		True if the server was successfully started, false
otherwise.</para>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.ServerNotExistException"><classname>ServerNotExistException</classname></link></term>
		    <listitem>
			<para>
			    Raised if the server is not
found.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.NodeUnreachableException"><classname>NodeUnreachableException</classname></link></term>
		    <listitem>
			<para>
			    Raised if the node could not be
reached.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IcePack.Admin.stopServer">
	<title><literal>stopServer</literal></title>
<synopsis><type>void</type> <function>stopServer</function>(<type>string</type> <parameter>name</parameter>)
    throws
	<link linkend="IcePack.ServerNotExistException"><classname>ServerNotExistException</classname></link>,
	<link linkend="IcePack.NodeUnreachableException"><classname>NodeUnreachableException</classname></link>;</synopsis>
	<para>
Stop a server.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>name</parameter></term>
		    <listitem>
			<para>
			    The name of the server.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.ServerNotExistException"><classname>ServerNotExistException</classname></link></term>
		    <listitem>
			<para>
			    Raised if the server is not
found.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.NodeUnreachableException"><classname>NodeUnreachableException</classname></link></term>
		    <listitem>
			<para>
			    Raised if the node could not be
reached.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IcePack.Admin.updateApplication">
	<title><literal>updateApplication</literal></title>
<synopsis><type>void</type> <function>updateApplication</function>(<link linkend="IcePack.ApplicationDescriptor"><classname>ApplicationDescriptor</classname></link> <parameter>descriptor</parameter>)
    throws
	<link linkend="IcePack.DeploymentException"><classname>DeploymentException</classname></link>;</synopsis>
	<para>
Update an application. An application is a set of servers.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>descriptor</parameter></term>
		    <listitem>
			<para>
			    The application descriptor.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.DeploymentException"><classname>DeploymentException</classname></link></term>
		    <listitem>
			<para>
			    Raised if application deployment failed.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IcePack.Admin.removeApplication"><function>removeApplication</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="IcePack.Admin.updateServer">
	<title><literal>updateServer</literal></title>
<synopsis><type>void</type> <function>updateServer</function>(<link linkend="IcePack.ServerDescriptor"><classname>ServerDescriptor</classname></link> <parameter>server</parameter>)
    throws
	<link linkend="IcePack.ServerNotExistException"><classname>ServerNotExistException</classname></link>,
	<link linkend="IcePack.DeploymentException"><classname>DeploymentException</classname></link>;</synopsis>
	<para>
Update a server.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>descriptor</parameter></term>
		    <listitem>
			<para>
			    The server deployment descriptor.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.DeploymentException"><classname>DeploymentException</classname></link></term>
		    <listitem>
			<para>
			    Raised if server deployment failed.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.ServerNotExistException"><classname>ServerNotExistException</classname></link></term>
		    <listitem>
			<para>
			    Raised if the server doesn't exist.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IcePack.Admin.addServer"><function>addServer</function></link></member>
		<member><link linkend="IcePack.Admin.removeServer"><function>removeServer</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="IcePack.Admin.writeMessage">
	<title><literal>writeMessage</literal></title>
<synopsis><type>void</type> <function>writeMessage</function>(<type>string</type> <parameter>name</parameter>,
    <type>string</type> <parameter>message</parameter>,
    <type>int</type> <parameter>fd</parameter>)
    throws
	<link linkend="IcePack.ServerNotExistException"><classname>ServerNotExistException</classname></link>,
	<link linkend="IcePack.NodeUnreachableException"><classname>NodeUnreachableException</classname></link>;</synopsis>
	<para>
Write message on server stdout or stderr</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>name</parameter></term>
		    <listitem>
			<para>
			    The name of the server.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>message</parameter></term>
		    <listitem>
			<para>
			    The message.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>fd</parameter></term>
		    <listitem>
			<para>
			    1 for stdout, 2 for stderr.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.ServerNotExistException"><classname>ServerNotExistException</classname></link></term>
		    <listitem>
			<para>
			    Raised if the server is not
found.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.NodeUnreachableException"><classname>NodeUnreachableException</classname></link></term>
		    <listitem>
			<para>
			    Raised if the node could not be
reached.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
</section>
<section id="IcePack.ApplicationDescriptor">
    <title><literal>IcePack::ApplicationDescriptor</literal></title>
    <section>
	<title>Overview</title>
<synopsis>class <classname>ApplicationDescriptor</classname></synopsis>
	<para>
An application descriptor.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IcePack.Admin.addApplication"><function>Admin::addApplication</function></link></member>
		<member><link linkend="IcePack.Admin.getApplicationDescriptor"><function>Admin::getApplicationDescriptor</function></link></member>
		<member><link linkend="IcePack.Admin.updateApplication"><function>Admin::updateApplication</function></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.ApplicationDescriptor.comment"><type>comment</type></link></term>
		    <listitem>
			<para>
Some comments on the application.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.ApplicationDescriptor.name"><type>name</type></link></term>
		    <listitem>
			<para>
The application name.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.ApplicationDescriptor.servers"><type>servers</type></link></term>
		    <listitem>
			<para>
The application servers.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IcePack.ApplicationDescriptor.comment">
	<title><literal>comment</literal></title>
<synopsis><type>string</type> <structfield>comment</structfield>;</synopsis>
	<para>
Some comments on the application.</para>
    </section>
    <section id="IcePack.ApplicationDescriptor.name">
	<title><literal>name</literal></title>
<synopsis><type>string</type> <structfield>name</structfield>;</synopsis>
	<para>
The application name.</para>
    </section>
    <section id="IcePack.ApplicationDescriptor.servers">
	<title><literal>servers</literal></title>
<synopsis><link linkend="IcePack.ServerDescriptorSeq"><type>ServerDescriptorSeq</type></link> <structfield>servers</structfield>;</synopsis>
	<para>
The application servers.</para>
    </section>
</section>
<section id="IcePack.ApplicationNotExistException">
    <title><literal>IcePack::ApplicationNotExistException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>exception <classname>ApplicationNotExistException</classname></synopsis>
	<para>
This exception is raised if an application does not exist.</para>
    </section>
</section>
<section id="IcePack.BadSignalException">
    <title><literal>IcePack::BadSignalException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>exception <classname>BadSignalException</classname></synopsis>
	<para>
This exception is raised if an unknown signal was sent to
to a server.</para>
    </section>
</section>
<section id="IcePack.ComponentDescriptor">
    <title><literal>IcePack::ComponentDescriptor</literal></title>
    <section>
	<title>Overview</title>
<synopsis>class <classname>ComponentDescriptor</classname></synopsis>
	<para>
A component descriptor. A component is either an &Ice; server or
an &IceBox; service.</para>
	<section>
	    <title>Derived Classes and Interfaces</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IcePack.ServerDescriptor"><type>ServerDescriptor</type></link></member>
		<member><link linkend="IcePack.ServiceDescriptor"><type>ServiceDescriptor</type></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.ComponentDescriptor.adapters"><type>adapters</type></link></term>
		    <listitem>
			<para>
The component object adapters.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.ComponentDescriptor.comment"><type>comment</type></link></term>
		    <listitem>
			<para>
Some comments on the component.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.ComponentDescriptor.dbEnvs"><type>dbEnvs</type></link></term>
		    <listitem>
			<para>
The component database environments.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.ComponentDescriptor.name"><type>name</type></link></term>
		    <listitem>
			<para>
The component nane.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.ComponentDescriptor.properties"><type>properties</type></link></term>
		    <listitem>
			<para>
The component configuration properties.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IcePack.ComponentDescriptor.adapters">
	<title><literal>adapters</literal></title>
<synopsis><link linkend="IcePack.AdapterDescriptorSeq"><type>AdapterDescriptorSeq</type></link> <structfield>adapters</structfield>;</synopsis>
	<para>
The component object adapters.</para>
    </section>
    <section id="IcePack.ComponentDescriptor.comment">
	<title><literal>comment</literal></title>
<synopsis><type>string</type> <structfield>comment</structfield>;</synopsis>
	<para>
Some comments on the component.</para>
    </section>
    <section id="IcePack.ComponentDescriptor.dbEnvs">
	<title><literal>dbEnvs</literal></title>
<synopsis><link linkend="IcePack.DbEnvDescriptorSeq"><type>DbEnvDescriptorSeq</type></link> <structfield>dbEnvs</structfield>;</synopsis>
	<para>
The component database environments.</para>
    </section>
    <section id="IcePack.ComponentDescriptor.name">
	<title><literal>name</literal></title>
<synopsis><type>string</type> <structfield>name</structfield>;</synopsis>
	<para>
The component nane.</para>
    </section>
    <section id="IcePack.ComponentDescriptor.properties">
	<title><literal>properties</literal></title>
<synopsis><link linkend="IcePack.PropertyDescriptorSeq"><type>PropertyDescriptorSeq</type></link> <structfield>properties</structfield>;</synopsis>
	<para>
The component configuration properties.</para>
    </section>
</section>
<section id="IcePack.CppIceBoxDescriptor">
    <title><literal>IcePack::CppIceBoxDescriptor</literal></title>
    <section>
	<title>Overview</title>
<synopsis>class <classname>CppIceBoxDescriptor</classname>
    extends 
	<link linkend="IcePack.ServerDescriptor"><type>ServerDescriptor</type></link></synopsis>
	<para>
A C++ &IceBox; server descriptor.</para>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.CppIceBoxDescriptor.endpoints"><type>endpoints</type></link></term>
		    <listitem>
			<para>
The endpoints of the &IceBox; service manager interface.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.CppIceBoxDescriptor.services"><type>services</type></link></term>
		    <listitem>
			<para>
The &IceBox; C++ services.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IcePack.CppIceBoxDescriptor.endpoints">
	<title><literal>endpoints</literal></title>
<synopsis><type>string</type> <structfield>endpoints</structfield>;</synopsis>
	<para>
The endpoints of the &IceBox; service manager interface.</para>
    </section>
    <section id="IcePack.CppIceBoxDescriptor.services">
	<title><literal>services</literal></title>
<synopsis><link linkend="IcePack.ServiceDescriptorSeq"><type>ServiceDescriptorSeq</type></link> <structfield>services</structfield>;</synopsis>
	<para>
The &IceBox; C++ services.</para>
    </section>
</section>
<section id="IcePack.DbEnvDescriptor">
    <title><literal>IcePack::DbEnvDescriptor</literal></title>
    <section>
	<title>Overview</title>
<synopsis>struct <structname>DbEnvDescriptor</structname></synopsis>
	<para>
A &Freeze; database environment descriptor.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IcePack.DbEnvDescriptorSeq"><type>DbEnvDescriptorSeq</type></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.DbEnvDescriptor.dbHome"><type>dbHome</type></link></term>
		    <listitem>
			<para>
The home of the database environment (i.e.: the directory where the database file
will be stored).</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.DbEnvDescriptor.name"><type>name</type></link></term>
		    <listitem>
			<para>
The name of the database environment.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.DbEnvDescriptor.properties"><type>properties</type></link></term>
		    <listitem>
			<para>
The configuration properties of the database environment.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IcePack.DbEnvDescriptor.dbHome">
	<title><literal>dbHome</literal></title>
<synopsis><type>string</type> <structfield>dbHome</structfield>;</synopsis>
	<para>
The home of the database environment (i.e.: the directory where the database file
will be stored).</para>
    </section>
    <section id="IcePack.DbEnvDescriptor.name">
	<title><literal>name</literal></title>
<synopsis><type>string</type> <structfield>name</structfield>;</synopsis>
	<para>
The name of the database environment.</para>
    </section>
    <section id="IcePack.DbEnvDescriptor.properties">
	<title><literal>properties</literal></title>
<synopsis><link linkend="IcePack.PropertyDescriptorSeq"><type>PropertyDescriptorSeq</type></link> <structfield>properties</structfield>;</synopsis>
	<para>
The configuration properties of the database environment.</para>
    </section>
</section>
<section id="IcePack.DeploymentException">
    <title><literal>IcePack::DeploymentException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>exception <classname>DeploymentException</classname></synopsis>
	<para>
A generic exception base for all kinds of deployment error
exception.</para>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.DeploymentException.reason"><type>reason</type></link></term>
		    <listitem>
			<para>
The reason for the failure.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IcePack.DeploymentException.reason">
	<title><literal>reason</literal></title>
<synopsis><type>string</type> <structfield>reason</structfield>;</synopsis>
	<para>
The reason for the failure.</para>
    </section>
</section>
<section id="IcePack.JavaIceBoxDescriptor">
    <title><literal>IcePack::JavaIceBoxDescriptor</literal></title>
    <section>
	<title>Overview</title>
<synopsis>class <classname>JavaIceBoxDescriptor</classname>
    extends 
	<link linkend="IcePack.JavaServerDescriptor"><type>JavaServerDescriptor</type></link></synopsis>
	<para>
A Java &IceBox; server descriptor.</para>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.JavaIceBoxDescriptor.endpoints"><type>endpoints</type></link></term>
		    <listitem>
			<para>
The endpoints of the &IceBox; service manager interface.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.JavaIceBoxDescriptor.services"><type>services</type></link></term>
		    <listitem>
			<para>
The &IceBox; Java services.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IcePack.JavaIceBoxDescriptor.endpoints">
	<title><literal>endpoints</literal></title>
<synopsis><type>string</type> <structfield>endpoints</structfield>;</synopsis>
	<para>
The endpoints of the &IceBox; service manager interface.</para>
    </section>
    <section id="IcePack.JavaIceBoxDescriptor.services">
	<title><literal>services</literal></title>
<synopsis><link linkend="IcePack.ServiceDescriptorSeq"><type>ServiceDescriptorSeq</type></link> <structfield>services</structfield>;</synopsis>
	<para>
The &IceBox; Java services.</para>
    </section>
</section>
<section id="IcePack.JavaServerDescriptor">
    <title><literal>IcePack::JavaServerDescriptor</literal></title>
    <section>
	<title>Overview</title>
<synopsis>class <classname>JavaServerDescriptor</classname>
    extends 
	<link linkend="IcePack.ServerDescriptor"><type>ServerDescriptor</type></link></synopsis>
	<para>
A Java &Ice; server descriptor.</para>
	<section>
	    <title>Derived Classes and Interfaces</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IcePack.JavaIceBoxDescriptor"><type>JavaIceBoxDescriptor</type></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.JavaServerDescriptor.className"><type>className</type></link></term>
		    <listitem>
			<para>
The name of the Java class containing the main function.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.JavaServerDescriptor.jvmOptions"><type>jvmOptions</type></link></term>
		    <listitem>
			<para>
The command line options to pass to the JVM.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IcePack.JavaServerDescriptor.className">
	<title><literal>className</literal></title>
<synopsis><type>string</type> <structfield>className</structfield>;</synopsis>
	<para>
The name of the Java class containing the main function.</para>
    </section>
    <section id="IcePack.JavaServerDescriptor.jvmOptions">
	<title><literal>jvmOptions</literal></title>
<synopsis><link linkend="Ice.StringSeq"><type>::Ice::StringSeq</type></link> <structfield>jvmOptions</structfield>;</synopsis>
	<para>
The command line options to pass to the JVM.</para>
    </section>
</section>
<section id="IcePack.NodeNotExistException">
    <title><literal>IcePack::NodeNotExistException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>exception <classname>NodeNotExistException</classname></synopsis>
	<para>
This exception is raised if a node does not exist.</para>
    </section>
</section>
<section id="IcePack.NodeUnreachableException">
    <title><literal>IcePack::NodeUnreachableException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>exception <classname>NodeUnreachableException</classname></synopsis>
	<para>
This exception is raised if a node could not be reached.</para>
    </section>
</section>
<section id="IcePack.ObjectDescriptor">
    <title><literal>IcePack::ObjectDescriptor</literal></title>
    <section>
	<title>Overview</title>
<synopsis>struct <structname>ObjectDescriptor</structname></synopsis>
	<para>
An &Ice; object descriptor.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IcePack.Admin.getObjectDescriptor"><function>Admin::getObjectDescriptor</function></link></member>
		<member><link linkend="IcePack.ObjectDescriptorSeq"><type>ObjectDescriptorSeq</type></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.ObjectDescriptor.adapterId"><type>adapterId</type></link></term>
		    <listitem>
			<para>
The object adapter id.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.ObjectDescriptor.proxy"><type>proxy</type></link></term>
		    <listitem>
			<para>
The object proxy.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.ObjectDescriptor.type"><type>type</type></link></term>
		    <listitem>
			<para>
The object type.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IcePack.ObjectDescriptor.adapterId">
	<title><literal>adapterId</literal></title>
<synopsis><type>string</type> <structfield>adapterId</structfield>;</synopsis>
	<para>
The object adapter id.</para>
    </section>
    <section id="IcePack.ObjectDescriptor.proxy">
	<title><literal>proxy</literal></title>
<synopsis><type>Object*</type> <structfield>proxy</structfield>;</synopsis>
	<para>
The object proxy.</para>
    </section>
    <section id="IcePack.ObjectDescriptor.type">
	<title><literal>type</literal></title>
<synopsis><type>string</type> <structfield>type</structfield>;</synopsis>
	<para>
The object type.</para>
    </section>
</section>
<section id="IcePack.ObjectExistsException">
    <title><literal>IcePack::ObjectExistsException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>exception <classname>ObjectExistsException</classname></synopsis>
	<para>
This exception is raised if an object already exists.</para>
    </section>
</section>
<section id="IcePack.ObjectNotExistException">
    <title><literal>IcePack::ObjectNotExistException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>exception <classname>ObjectNotExistException</classname></synopsis>
	<para>
This exception is raised if an object does not exist.</para>
    </section>
</section>
<section id="IcePack.PropertyDescriptor">
    <title><literal>IcePack::PropertyDescriptor</literal></title>
    <section>
	<title>Overview</title>
<synopsis>struct <structname>PropertyDescriptor</structname></synopsis>
	<para>
A configuration property descriptor.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IcePack.PropertyDescriptorSeq"><type>PropertyDescriptorSeq</type></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.PropertyDescriptor.name"><type>name</type></link></term>
		    <listitem>
			<para>
The name of the property.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.PropertyDescriptor.value"><type>value</type></link></term>
		    <listitem>
			<para>
The value of the property.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IcePack.PropertyDescriptor.name">
	<title><literal>name</literal></title>
<synopsis><type>string</type> <structfield>name</structfield>;</synopsis>
	<para>
The name of the property.</para>
    </section>
    <section id="IcePack.PropertyDescriptor.value">
	<title><literal>value</literal></title>
<synopsis><type>string</type> <structfield>value</structfield>;</synopsis>
	<para>
The value of the property.</para>
    </section>
</section>
<section id="IcePack.Query">
    <title><literal>IcePack::Query</literal></title>
    <section>
	<title>Overview</title>
<synopsis>interface <classname>Query</classname></synopsis>
	<para>
The &IcePack; query interface. This interface is accessible to
&Ice; clients who wish to lookup objects.</para>
	<section>
	    <title>Operation Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.Query.findAllObjectsWithType"><function>findAllObjectsWithType</function></link></term>
		    <listitem>
			<para>
Find all the objects with the given type.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Query.findObjectById"><function>findObjectById</function></link></term>
		    <listitem>
			<para>
Find an object by identity.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Query.findObjectByType"><function>findObjectByType</function></link></term>
		    <listitem>
			<para>
Find an object by type.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IcePack.Query.findAllObjectsWithType">
	<title><literal>findAllObjectsWithType</literal></title>
<synopsis><link linkend="Ice.ObjectProxySeq"><type>::Ice::ObjectProxySeq</type></link> <function>findAllObjectsWithType</function>(<type>string</type> <parameter>type</parameter>)
    throws
	<link linkend="IcePack.ObjectNotExistException"><classname>ObjectNotExistException</classname></link>;</synopsis>
	<para>
Find all the objects with the given type.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>type</parameter></term>
		    <listitem>
			<para>
			    The object type.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		The proxies.</para>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.ObjectNotExistException"><classname>ObjectNotExistException</classname></link></term>
		    <listitem>
			<para>
			    Raised if no objects can be
found.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IcePack.Query.findObjectById">
	<title><literal>findObjectById</literal></title>
<synopsis><type>Object*</type> <function>findObjectById</function>(<link linkend="Ice.Identity"><structname>::Ice::Identity</structname></link> <parameter>id</parameter>)
    throws
	<link linkend="IcePack.ObjectNotExistException"><classname>ObjectNotExistException</classname></link>;</synopsis>
	<para>
Find an object by identity.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>id</parameter></term>
		    <listitem>
			<para>
			    The identity.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		The proxy.</para>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.ObjectNotExistException"><classname>ObjectNotExistException</classname></link></term>
		    <listitem>
			<para>
			    Raised if no objects can be
found.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IcePack.Query.findObjectByType">
	<title><literal>findObjectByType</literal></title>
<synopsis><type>Object*</type> <function>findObjectByType</function>(<type>string</type> <parameter>type</parameter>)
    throws
	<link linkend="IcePack.ObjectNotExistException"><classname>ObjectNotExistException</classname></link>;</synopsis>
	<para>
Find an object by type.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>type</parameter></term>
		    <listitem>
			<para>
			    The object type.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		The proxy.</para>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.ObjectNotExistException"><classname>ObjectNotExistException</classname></link></term>
		    <listitem>
			<para>
			    Raised if no objects can be
found.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
</section>
<section id="IcePack.ServerActivation">
    <title><literal>IcePack::ServerActivation</literal></title>
    <section>
	<title>Overview</title>
<synopsis>enum <type>ServerActivation</type></synopsis>
	<para>
The server activation mode.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IcePack.Admin.getServerActivation"><function>Admin::getServerActivation</function></link></member>
		<member><link linkend="IcePack.Admin.setServerActivation"><function>Admin::setServerActivation</function></link></member>
		<member><link linkend="IcePack.ServerDescriptor.activation"><type>ServerDescriptor::activation</type></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Enumerator Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.OnDemand"><constant>OnDemand</constant></link></term>
		    <listitem>
			<para>
The server is activated on demand if a client requests one of
the server's adapter endpoints and the server is not already
running.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Manual"><constant>Manual</constant></link></term>
		    <listitem>
			<para>
The server is activated manually through the administrative
interface.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IcePack.OnDemand">
	<title><literal>OnDemand</literal></title>
<synopsis><constant>OnDemand</constant></synopsis>
	<para>
The server is activated on demand if a client requests one of
the server's adapter endpoints and the server is not already
running.</para>
    </section>
    <section id="IcePack.Manual">
	<title><literal>Manual</literal></title>
<synopsis><constant>Manual</constant></synopsis>
	<para>
The server is activated manually through the administrative
interface.</para>
    </section>
</section>
<section id="IcePack.ServerDescriptor">
    <title><literal>IcePack::ServerDescriptor</literal></title>
    <section>
	<title>Overview</title>
<synopsis>class <classname>ServerDescriptor</classname>
    extends 
	<link linkend="IcePack.ComponentDescriptor"><type>ComponentDescriptor</type></link></synopsis>
	<para>
An &Ice; server descriptor.</para>
	<section>
	    <title>Derived Classes and Interfaces</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IcePack.CppIceBoxDescriptor"><type>CppIceBoxDescriptor</type></link></member>
		<member><link linkend="IcePack.JavaServerDescriptor"><type>JavaServerDescriptor</type></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IcePack.Admin.addServer"><function>Admin::addServer</function></link></member>
		<member><link linkend="IcePack.Admin.getServerDescriptor"><function>Admin::getServerDescriptor</function></link></member>
		<member><link linkend="IcePack.Admin.updateServer"><function>Admin::updateServer</function></link></member>
		<member><link linkend="IcePack.ServerDescriptorSeq"><type>ServerDescriptorSeq</type></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.ServerDescriptor.activation"><type>activation</type></link></term>
		    <listitem>
			<para>
The server initial activation mode.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.ServerDescriptor.application"><type>application</type></link></term>
		    <listitem>
			<para>
The name of the application this server belongs to.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.ServerDescriptor.envs"><type>envs</type></link></term>
		    <listitem>
			<para>
The server environment variables.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.ServerDescriptor.exe"><type>exe</type></link></term>
		    <listitem>
			<para>
The path of the server executable.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.ServerDescriptor.node"><type>node</type></link></term>
		    <listitem>
			<para>
The &IcePack node on which the server is deployed.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.ServerDescriptor.options"><type>options</type></link></term>
		    <listitem>
			<para>
The command line options to pass to the server executable.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.ServerDescriptor.pwd"><type>pwd</type></link></term>
		    <listitem>
			<para>
The path to the server working directory.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IcePack.ServerDescriptor.activation">
	<title><literal>activation</literal></title>
<synopsis><link linkend="IcePack.ServerActivation"><type>ServerActivation</type></link> <structfield>activation</structfield>;</synopsis>
	<para>
The server initial activation mode.</para>
    </section>
    <section id="IcePack.ServerDescriptor.application">
	<title><literal>application</literal></title>
<synopsis><type>string</type> <structfield>application</structfield>;</synopsis>
	<para>
The name of the application this server belongs to.</para>
    </section>
    <section id="IcePack.ServerDescriptor.envs">
	<title><literal>envs</literal></title>
<synopsis><link linkend="Ice.StringSeq"><type>::Ice::StringSeq</type></link> <structfield>envs</structfield>;</synopsis>
	<para>
The server environment variables.</para>
    </section>
    <section id="IcePack.ServerDescriptor.exe">
	<title><literal>exe</literal></title>
<synopsis><type>string</type> <structfield>exe</structfield>;</synopsis>
	<para>
The path of the server executable.</para>
    </section>
    <section id="IcePack.ServerDescriptor.node">
	<title><literal>node</literal></title>
<synopsis><type>string</type> <structfield>node</structfield>;</synopsis>
	<para>
The &IcePack node on which the server is deployed.</para>
    </section>
    <section id="IcePack.ServerDescriptor.options">
	<title><literal>options</literal></title>
<synopsis><link linkend="Ice.StringSeq"><type>::Ice::StringSeq</type></link> <structfield>options</structfield>;</synopsis>
	<para>
The command line options to pass to the server executable.</para>
    </section>
    <section id="IcePack.ServerDescriptor.pwd">
	<title><literal>pwd</literal></title>
<synopsis><type>string</type> <structfield>pwd</structfield>;</synopsis>
	<para>
The path to the server working directory.</para>
    </section>
</section>
<section id="IcePack.ServerNotExistException">
    <title><literal>IcePack::ServerNotExistException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>exception <classname>ServerNotExistException</classname></synopsis>
	<para>
This exception is raised if a server does not exist.</para>
    </section>
</section>
<section id="IcePack.ServerState">
    <title><literal>IcePack::ServerState</literal></title>
    <section>
	<title>Overview</title>
<synopsis>enum <type>ServerState</type></synopsis>
	<para>
An enumeration representing the state of the server.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IcePack.Admin.getServerState"><function>Admin::getServerState</function></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Enumerator Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.Inactive"><constant>Inactive</constant></link></term>
		    <listitem>
			<para>
The server is not running.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Activating"><constant>Activating</constant></link></term>
		    <listitem>
			<para>
The server is being activated and will change to the active
state if the server fork succeeded or to the Inactive state if
it failed.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Active"><constant>Active</constant></link></term>
		    <listitem>
			<para>
The server is running.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Deactivating"><constant>Deactivating</constant></link></term>
		    <listitem>
			<para>
The server is being deactivated.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Destroying"><constant>Destroying</constant></link></term>
		    <listitem>
			<para>
The server is being destroyed.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePack.Destroyed"><constant>Destroyed</constant></link></term>
		    <listitem>
			<para>
The server is destroyed.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IcePack.Inactive">
	<title><literal>Inactive</literal></title>
<synopsis><constant>Inactive</constant></synopsis>
	<para>
The server is not running.</para>
    </section>
    <section id="IcePack.Activating">
	<title><literal>Activating</literal></title>
<synopsis><constant>Activating</constant></synopsis>
	<para>
The server is being activated and will change to the active
state if the server fork succeeded or to the Inactive state if
it failed.</para>
    </section>
    <section id="IcePack.Active">
	<title><literal>Active</literal></title>
<synopsis><constant>Active</constant></synopsis>
	<para>
The server is running.</para>
    </section>
    <section id="IcePack.Deactivating">
	<title><literal>Deactivating</literal></title>
<synopsis><constant>Deactivating</constant></synopsis>
	<para>
The server is being deactivated.</para>
    </section>
    <section id="IcePack.Destroying">
	<title><literal>Destroying</literal></title>
<synopsis><constant>Destroying</constant></synopsis>
	<para>
The server is being destroyed.</para>
    </section>
    <section id="IcePack.Destroyed">
	<title><literal>Destroyed</literal></title>
<synopsis><constant>Destroyed</constant></synopsis>
	<para>
The server is destroyed.</para>
    </section>
</section>
<section id="IcePack.ServiceDescriptor">
    <title><literal>IcePack::ServiceDescriptor</literal></title>
    <section>
	<title>Overview</title>
<synopsis>class <classname>ServiceDescriptor</classname>
    extends 
	<link linkend="IcePack.ComponentDescriptor"><type>ComponentDescriptor</type></link></synopsis>
	<para>
An &IceBox; service descriptor.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IcePack.ServiceDescriptorSeq"><type>ServiceDescriptorSeq</type></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePack.ServiceDescriptor.entry"><type>entry</type></link></term>
		    <listitem>
			<para>
The entry point of the &IceBox; service.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IcePack.ServiceDescriptor.entry">
	<title><literal>entry</literal></title>
<synopsis><type>string</type> <structfield>entry</structfield>;</synopsis>
	<para>
The entry point of the &IceBox; service.</para>
    </section>
</section>
<section id="IceSSL">
    <title><literal>IceSSL</literal></title>
    <section>
	<title>Overview</title>
<synopsis>module <classname>IceSSL</classname></synopsis>
	<para>
&IceSSL; is a dynamic SSL transport plug-in for the &Ice; core. It
provides authentication, encryption, and message integrity, using
the industry-standard SSL protocol.</para>
	<section>
	    <title>Interface Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IceSSL.CertificateVerifier"><type>CertificateVerifier</type></link></term>
		    <listitem>
			<para>
The <link linkend="IceSSL.CertificateVerifier"><classname>CertificateVerifier</classname></link> is the base interface for all classes that define
additional application-specific certificate verification rules.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceSSL.Plugin"><type>Plugin</type></link></term>
		    <listitem>
			<para>
The interface for the SSL plug-in.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Exception Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IceSSL.CertificateException"><classname>CertificateException</classname></link></term>
		    <listitem>
			<para>
A root exception class for all exceptions related to public key
certificates.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceSSL.CertificateKeyMatchException"><classname>CertificateKeyMatchException</classname></link></term>
		    <listitem>
			<para>
When loading a public and private key pair into a
<literal>Context</literal>, the load succeeded, but the private
key and public key (certificate) did not match.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceSSL.CertificateLoadException"><classname>CertificateLoadException</classname></link></term>
		    <listitem>
			<para>
Indicates that a problem occurred while loading a certificate
into a <literal>Context</literal> from either a memory buffer
or from a file.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceSSL.CertificateParseException"><classname>CertificateParseException</classname></link></term>
		    <listitem>
			<para>
Indicates that IceSSL was unable to parse the provided public key
certificate into a form usable by the underlying SSL implementation.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceSSL.CertificateSignatureException"><classname>CertificateSignatureException</classname></link></term>
		    <listitem>
			<para>
Indicates that the signature verification of a newly signed temporary
RSA certificate has failed.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceSSL.CertificateSigningException"><classname>CertificateSigningException</classname></link></term>
		    <listitem>
			<para>
Indicates that a problem occurred while signing certificates during
temporary RSA certificate generation.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceSSL.CertificateVerificationException"><classname>CertificateVerificationException</classname></link></term>
		    <listitem>
			<para>
Indicates a problem occurred during the certificate
verification phase of the SSL handshake.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceSSL.CertificateVerifierTypeException"><classname>CertificateVerifierTypeException</classname></link></term>
		    <listitem>
			<para>
This exception indicates that the provided CertificateVerifier was
not derived from the proper base class, and thus, does not provide
the appropriate interface.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceSSL.ConfigParseException"><classname>ConfigParseException</classname></link></term>
		    <listitem>
			<para>
This exception indicates that a problem occurred while parsing the
SSL configuration file, or while attempting to locate the configuration
file.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceSSL.ConfigurationLoadingException"><classname>ConfigurationLoadingException</classname></link></term>
		    <listitem>
			<para>
This exception indicates that an attempt was made to load the
configuration for a <literal>Context</literal>, but the
property specifying the indicated <literal>Context</literal>'s 
SSL configuration file was not set.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceSSL.ContextException"><classname>ContextException</classname></link></term>
		    <listitem>
			<para>
A problem was encountered while setting up the
<literal>Context</literal>.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceSSL.ContextInitializationException"><classname>ContextInitializationException</classname></link></term>
		    <listitem>
			<para>
Indicates that a problem occurred while initializing the context structure
of the underlying SSL implementation.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceSSL.ContextNotConfiguredException"><classname>ContextNotConfiguredException</classname></link></term>
		    <listitem>
			<para>
This exception is raised when an attempt is made to make use of a
<literal>Context</literal> that has not been configured yet.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceSSL.PrivateKeyException"><classname>PrivateKeyException</classname></link></term>
		    <listitem>
			<para>
A root exception class for all exceptions related to private keys.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceSSL.PrivateKeyLoadException"><classname>PrivateKeyLoadException</classname></link></term>
		    <listitem>
			<para>
Indicates that a problem occurred while loading a private key
into a <literal>Context</literal> from either a memory buffer
or from a file.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceSSL.PrivateKeyParseException"><classname>PrivateKeyParseException</classname></link></term>
		    <listitem>
			<para>
Indicates that IceSSL was unable to parse the provided private key
into a form usable by the underlying SSL implementation.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceSSL.ProtocolException"><classname>ProtocolException</classname></link></term>
		    <listitem>
			<para>
Indicates that a problem occurred that violates the SSL
protocol, causing the connection to be shutdown.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceSSL.ShutdownException"><classname>ShutdownException</classname></link></term>
		    <listitem>
			<para>
This exception generally indicates that a problem occurred
that caused the shutdown of an SSL connection.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceSSL.SslException"><classname>SslException</classname></link></term>
		    <listitem>
			<para>
This exception represents the base of all security related exceptions
in &Ice;.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceSSL.TrustedCertificateAddException"><classname>TrustedCertificateAddException</classname></link></term>
		    <listitem>
			<para>
An attempt to add a certificate to the <literal>Context</literal>'s
trusted certifificate store has failed.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceSSL.UnsupportedContextException"><classname>UnsupportedContextException</classname></link></term>
		    <listitem>
			<para>
An attempt was made to call a method that references a
<link linkend="IceSSL.ContextType"><type>ContextType</type></link> that is not supported for that operation.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Enum Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IceSSL.ContextType"><type>ContextType</type></link></term>
		    <listitem>
			<para>
A <link linkend="IceSSL.Plugin"><classname>Plugin</classname></link> may serve as a Client, Server or both (ClientServer).</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
</section>
<section id="IceSSL.CertificateException">
    <title><literal>IceSSL::CertificateException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>CertificateException</classname>
    extends 
	<link linkend="IceSSL.SslException"><classname>SslException</classname></link></synopsis>
	<para>
A root exception class for all exceptions related to public key
certificates.</para>
	<section>
	    <title>Derived Exceptions</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IceSSL.CertificateParseException"><classname>CertificateParseException</classname></link></member>
		<member><link linkend="IceSSL.CertificateSignatureException"><classname>CertificateSignatureException</classname></link></member>
		<member><link linkend="IceSSL.CertificateSigningException"><classname>CertificateSigningException</classname></link></member>
	    </simplelist></para></section>
    </section>
</section>
<section id="IceSSL.CertificateKeyMatchException">
    <title><literal>IceSSL::CertificateKeyMatchException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>CertificateKeyMatchException</classname>
    extends 
	<link linkend="IceSSL.ContextException"><classname>ContextException</classname></link></synopsis>
	<para>
When loading a public and private key pair into a
<literal>Context</literal>, the load succeeded, but the private
key and public key (certificate) did not match.</para>
    </section>
</section>
<section id="IceSSL.CertificateLoadException">
    <title><literal>IceSSL::CertificateLoadException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>CertificateLoadException</classname>
    extends 
	<link linkend="IceSSL.ContextException"><classname>ContextException</classname></link></synopsis>
	<para>
Indicates that a problem occurred while loading a certificate
into a <literal>Context</literal> from either a memory buffer
or from a file.</para>
    </section>
</section>
<section id="IceSSL.CertificateParseException">
    <title><literal>IceSSL::CertificateParseException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>CertificateParseException</classname>
    extends 
	<link linkend="IceSSL.CertificateException"><classname>CertificateException</classname></link></synopsis>
	<para>
Indicates that IceSSL was unable to parse the provided public key
certificate into a form usable by the underlying SSL implementation.</para>
    </section>
</section>
<section id="IceSSL.CertificateSignatureException">
    <title><literal>IceSSL::CertificateSignatureException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>CertificateSignatureException</classname>
    extends 
	<link linkend="IceSSL.CertificateException"><classname>CertificateException</classname></link></synopsis>
	<para>
Indicates that the signature verification of a newly signed temporary
RSA certificate has failed.</para>
    </section>
</section>
<section id="IceSSL.CertificateSigningException">
    <title><literal>IceSSL::CertificateSigningException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>CertificateSigningException</classname>
    extends 
	<link linkend="IceSSL.CertificateException"><classname>CertificateException</classname></link></synopsis>
	<para>
Indicates that a problem occurred while signing certificates during
temporary RSA certificate generation.</para>
    </section>
</section>
<section id="IceSSL.CertificateVerificationException">
    <title><literal>IceSSL::CertificateVerificationException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>CertificateVerificationException</classname>
    extends 
	<link linkend="IceSSL.ShutdownException"><classname>ShutdownException</classname></link></synopsis>
	<para>
Indicates a problem occurred during the certificate
verification phase of the SSL handshake. This is currently only
thrown by server connections.</para>
    </section>
</section>
<section id="IceSSL.CertificateVerifier">
    <title><literal>IceSSL::CertificateVerifier</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local interface <classname>CertificateVerifier</classname></synopsis>
	<para>
The <link linkend="IceSSL.CertificateVerifier"><classname>CertificateVerifier</classname></link> is the base interface for all classes that define
additional application-specific certificate verification rules.  These rules
are evaluated during the SSL handshake by an instance of a class derived
from <link linkend="IceSSL.CertificateVerifier"><classname>CertificateVerifier</classname></link>.  The methods defined in derived interfaces will
depend upon the requirements of the underlying SSL implementation.
Default certificate verifier implementations can be obtained via the
<link linkend="IceSSL.Plugin"><classname>Plugin</classname></link>.
As this is simply a base class for purposes of derivation, no methods are
defined.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IceSSL.Plugin.getDefaultCertVerifier"><function>Plugin::getDefaultCertVerifier</function></link></member>
		<member><link linkend="IceSSL.Plugin.getSingleCertVerifier"><function>Plugin::getSingleCertVerifier</function></link></member>
		<member><link linkend="IceSSL.Plugin.setCertificateVerifier"><function>Plugin::setCertificateVerifier</function></link></member>
	    </simplelist></para></section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IceSSL.Plugin"><classname>Plugin</classname></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Operation Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IceSSL.CertificateVerifier.setContext"><function>setContext</function></link></term>
		    <listitem>
			<para>
Set the context type of this Certificate Verifier.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IceSSL.CertificateVerifier.setContext">
	<title><literal>setContext</literal></title>
<synopsis><type>void</type> <function>setContext</function>(<link linkend="IceSSL.ContextType"><type>ContextType</type></link> <parameter>type</parameter>);</synopsis>
	<para>
Set the context type of this Certificate Verifier.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>type</parameter></term>
		    <listitem>
			<para>
			    The type of context that is using this CertificateVerifier,
Client, Server or ClientServer.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
</section>
<section id="IceSSL.CertificateVerifierTypeException">
    <title><literal>IceSSL::CertificateVerifierTypeException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>CertificateVerifierTypeException</classname>
    extends 
	<link linkend="IceSSL.SslException"><classname>SslException</classname></link></synopsis>
	<para>
This exception indicates that the provided CertificateVerifier was
not derived from the proper base class, and thus, does not provide
the appropriate interface.</para>
    </section>
</section>
<section id="IceSSL.ConfigParseException">
    <title><literal>IceSSL::ConfigParseException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>ConfigParseException</classname>
    extends 
	<link linkend="IceSSL.SslException"><classname>SslException</classname></link></synopsis>
	<para>
This exception indicates that a problem occurred while parsing the
SSL configuration file, or while attempting to locate the configuration
file. This exception could indicate a
problem with the <literal>IceSSL.Client.Config</literal>,
<literal>IceSSL.Server.Config</literal>,
<literal>IceSSL.Client.CertPath</literal> or
<literal>IceSSL.Server.CertPath</literal> properties for your
<link linkend="Ice.Communicator"><classname>::Ice::Communicator</classname></link>.</para>
    </section>
</section>
<section id="IceSSL.ConfigurationLoadingException">
    <title><literal>IceSSL::ConfigurationLoadingException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>ConfigurationLoadingException</classname>
    extends 
	<link linkend="IceSSL.SslException"><classname>SslException</classname></link></synopsis>
	<para>
This exception indicates that an attempt was made to load the
configuration for a <literal>Context</literal>, but the
property specifying the indicated <literal>Context</literal>'s 
SSL configuration file was not set. Check the values for the
appropriate property, either <literal>IceSSL.Client.Config</literal>
or <literal>IceSSL.Server.Config</literal>.</para>
    </section>
</section>
<section id="IceSSL.ContextException">
    <title><literal>IceSSL::ContextException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>ContextException</classname>
    extends 
	<link linkend="IceSSL.SslException"><classname>SslException</classname></link></synopsis>
	<para>
A problem was encountered while setting up the
<literal>Context</literal>.  This can include problems related
to loading certificates and keys or calling methods on a
<literal>Context</literal> that has not been initialized as of yet.</para>
	<section>
	    <title>Derived Exceptions</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IceSSL.CertificateKeyMatchException"><classname>CertificateKeyMatchException</classname></link></member>
		<member><link linkend="IceSSL.CertificateLoadException"><classname>CertificateLoadException</classname></link></member>
		<member><link linkend="IceSSL.ContextInitializationException"><classname>ContextInitializationException</classname></link></member>
		<member><link linkend="IceSSL.ContextNotConfiguredException"><classname>ContextNotConfiguredException</classname></link></member>
		<member><link linkend="IceSSL.PrivateKeyLoadException"><classname>PrivateKeyLoadException</classname></link></member>
		<member><link linkend="IceSSL.TrustedCertificateAddException"><classname>TrustedCertificateAddException</classname></link></member>
		<member><link linkend="IceSSL.UnsupportedContextException"><classname>UnsupportedContextException</classname></link></member>
	    </simplelist></para></section>
    </section>
</section>
<section id="IceSSL.ContextInitializationException">
    <title><literal>IceSSL::ContextInitializationException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>ContextInitializationException</classname>
    extends 
	<link linkend="IceSSL.ContextException"><classname>ContextException</classname></link></synopsis>
	<para>
Indicates that a problem occurred while initializing the context structure
of the underlying SSL implementation.</para>
    </section>
</section>
<section id="IceSSL.ContextNotConfiguredException">
    <title><literal>IceSSL::ContextNotConfiguredException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>ContextNotConfiguredException</classname>
    extends 
	<link linkend="IceSSL.ContextException"><classname>ContextException</classname></link></synopsis>
	<para>
This exception is raised when an attempt is made to make use of a
<literal>Context</literal> that has not been configured yet.</para>
    </section>
</section>
<section id="IceSSL.ContextType">
    <title><literal>IceSSL::ContextType</literal></title>
    <section>
	<title>Overview</title>
<synopsis>enum <type>ContextType</type></synopsis>
	<para>
A <link linkend="IceSSL.Plugin"><classname>Plugin</classname></link> may serve as a Client, Server or both (ClientServer).  A
<literal>Context</literal> is set up inside the <link linkend="IceSSL.Plugin"><classname>Plugin</classname></link> in order to handle
either Client or Server roles.  The <literal>Context</literal> represents a
role-specific configuration.
Some <link linkend="IceSSL.Plugin"><classname>Plugin</classname></link> operations require a <literal>ContextType</literal> argument to
identify the <literal>Context</literal>.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IceSSL.CertificateVerifier.setContext"><function>CertificateVerifier::setContext</function></link></member>
		<member><link linkend="IceSSL.Plugin.addTrustedCertificate"><function>Plugin::addTrustedCertificate</function></link></member>
		<member><link linkend="IceSSL.Plugin.addTrustedCertificateBase64"><function>Plugin::addTrustedCertificateBase64</function></link></member>
		<member><link linkend="IceSSL.Plugin.configure"><function>Plugin::configure</function></link></member>
		<member><link linkend="IceSSL.Plugin.loadConfig"><function>Plugin::loadConfig</function></link></member>
		<member><link linkend="IceSSL.Plugin.setCertificateVerifier"><function>Plugin::setCertificateVerifier</function></link></member>
		<member><link linkend="IceSSL.Plugin.setRSAKeys"><function>Plugin::setRSAKeys</function></link></member>
		<member><link linkend="IceSSL.Plugin.setRSAKeysBase64"><function>Plugin::setRSAKeysBase64</function></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Enumerator Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IceSSL.Client"><constant>Client</constant></link></term>
		    <listitem>
			<para>
Select only the Client <literal>Context</literal>, no modifications to the Server.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceSSL.Server"><constant>Server</constant></link></term>
		    <listitem>
			<para>
Select only the Server <literal>Context</literal>, no modifications to the Client.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceSSL.ClientServer"><constant>ClientServer</constant></link></term>
		    <listitem>
			<para>
Select and affect changes on both the Client and Server <literal>Context</literal>s.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IceSSL.Client">
	<title><literal>Client</literal></title>
<synopsis><constant>Client</constant></synopsis>
	<para>
Select only the Client <literal>Context</literal>, no modifications to the Server.</para>
    </section>
    <section id="IceSSL.Server">
	<title><literal>Server</literal></title>
<synopsis><constant>Server</constant></synopsis>
	<para>
Select only the Server <literal>Context</literal>, no modifications to the Client.</para>
    </section>
    <section id="IceSSL.ClientServer">
	<title><literal>ClientServer</literal></title>
<synopsis><constant>ClientServer</constant></synopsis>
	<para>
Select and affect changes on both the Client and Server <literal>Context</literal>s.</para>
    </section>
</section>
<section id="IceSSL.Plugin">
    <title><literal>IceSSL::Plugin</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local interface <classname>Plugin</classname>
    extends 
	<link linkend="Ice.Plugin"><type>::Ice::Plugin</type></link></synopsis>
	<para>
The interface for the SSL plug-in. This interface is typically
used to perform programmatic configuration of the plug-in.</para>
	<section>
	    <title>Operation Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IceSSL.Plugin.addTrustedCertificate"><function>addTrustedCertificate</function></link></term>
		    <listitem>
			<para>
Add a trusted certificate to the plug-in's default certificate
store.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceSSL.Plugin.addTrustedCertificateBase64"><function>addTrustedCertificateBase64</function></link></term>
		    <listitem>
			<para>
Add a trusted certificate to the plug-in's default certificate
store.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceSSL.Plugin.configure"><function>configure</function></link></term>
		    <listitem>
			<para>
Configure the plug-in.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceSSL.Plugin.getDefaultCertVerifier"><function>getDefaultCertVerifier</function></link></term>
		    <listitem>
			<para>
Retrieves an instance of the <link linkend="IceSSL.CertificateVerifier"><classname>CertificateVerifier</classname></link> that is
installed by default in all plug-in instances.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceSSL.Plugin.getSingleCertVerifier"><function>getSingleCertVerifier</function></link></term>
		    <listitem>
			<para>
Returns an instance of a <link linkend="IceSSL.CertificateVerifier"><classname>CertificateVerifier</classname></link> that only accepts
a single certificate, that being the RSA certificate represented by
the binary DER encoding contained in the provided byte sequence.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceSSL.Plugin.loadConfig"><function>loadConfig</function></link></term>
		    <listitem>
			<para>
Configure the plug-in for the given <literal>Context</literal>
using the settings in the given configuration file.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceSSL.Plugin.setCertificateVerifier"><function>setCertificateVerifier</function></link></term>
		    <listitem>
			<para>
Set the <link linkend="IceSSL.CertificateVerifier"><classname>CertificateVerifier</classname></link> used for the indicated <link linkend="IceSSL.ContextType"><type>ContextType</type></link>
role.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceSSL.Plugin.setRSAKeys"><function>setRSAKeys</function></link></term>
		    <listitem>
			<para>
Set the RSA keys to be used by the plug-in when operating in
the context mode specified by <link linkend="IceSSL.ContextType"><type>ContextType</type></link>.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceSSL.Plugin.setRSAKeysBase64"><function>setRSAKeysBase64</function></link></term>
		    <listitem>
			<para>
Set the RSA keys to be used by the plug-in when operating in
the context mode specified by <link linkend="IceSSL.ContextType"><type>ContextType</type></link>.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IceSSL.Plugin.addTrustedCertificate">
	<title><literal>addTrustedCertificate</literal></title>
<synopsis><type>void</type> <function>addTrustedCertificate</function>(<link linkend="IceSSL.ContextType"><type>ContextType</type></link> <parameter>cType</parameter>,
    <link linkend="Ice.ByteSeq"><type>::Ice::ByteSeq</type></link> <parameter>certificate</parameter>);</synopsis>
	<para>
Add a trusted certificate to the plug-in's default certificate
store.  The provided certificate (passed in binary DER format)
is added to the trust list so that the certificate, and
all certificates signed by its private key, are trusted.
This method only affects new connections -- existing
connections are left unchanged.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>contextType</parameter></term>
		    <listitem>
			<para>
			    The <literal>Context</literal>(s) in which to add
the trusted certificate.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>certificate</parameter></term>
		    <listitem>
			<para>
			    The certificate, in binary DER format, to be trusted.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IceSSL.Plugin.addTrustedCertificateBase64">
	<title><literal>addTrustedCertificateBase64</literal></title>
<synopsis><type>void</type> <function>addTrustedCertificateBase64</function>(<link linkend="IceSSL.ContextType"><type>ContextType</type></link> <parameter>cType</parameter>,
    <type>string</type> <parameter>certificate</parameter>);</synopsis>
	<para>
Add a trusted certificate to the plug-in's default certificate
store. The provided certificate (passed in Base64-encoded
binary DER format, as per the PEM format) is added to the
trust list so that the certificate, and all certificates signed
by its private key, are trusted.
This method only affects new connections -- existing
connections are left unchanged.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>contextType</parameter></term>
		    <listitem>
			<para>
			    The <literal>Context</literal>(s) in which to add
the trusted certificate.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>certificate</parameter></term>
		    <listitem>
			<para>
			    The certificate to be trusted, in Base64-encoded
binary DER format.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IceSSL.Plugin.configure">
	<title><literal>configure</literal></title>
<synopsis><type>void</type> <function>configure</function>(<link linkend="IceSSL.ContextType"><type>ContextType</type></link> <parameter>cType</parameter>);</synopsis>
	<para>
Configure the plug-in. If the plug-in is left in an
unconfigured state, it will load its configuration from
the properties <literal>IceSSL.Server.Config</literal> or
<literal>IceSSL.Client.Config</literal>, depending on the context
type.
Configuration property settings will also be loaded during
this operation, with the property values overriding those of the
configuration file.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>contextType</parameter></term>
		    <listitem>
			<para>
			    The <literal>Context</literal>(s) to configure.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IceSSL.Plugin.getDefaultCertVerifier">
	<title><literal>getDefaultCertVerifier</literal></title>
<synopsis><link linkend="IceSSL.CertificateVerifier"><classname>CertificateVerifier</classname></link> <function>getDefaultCertVerifier</function>();</synopsis>
	<para>
Retrieves an instance of the <link linkend="IceSSL.CertificateVerifier"><classname>CertificateVerifier</classname></link> that is
installed by default in all plug-in instances.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		CertificateVerifier</para>
	</section>
    </section>
    <section id="IceSSL.Plugin.getSingleCertVerifier">
	<title><literal>getSingleCertVerifier</literal></title>
<synopsis><link linkend="IceSSL.CertificateVerifier"><classname>CertificateVerifier</classname></link> <function>getSingleCertVerifier</function>(<link linkend="Ice.ByteSeq"><type>::Ice::ByteSeq</type></link> <parameter>certificate</parameter>);</synopsis>
	<para>
Returns an instance of a <link linkend="IceSSL.CertificateVerifier"><classname>CertificateVerifier</classname></link> that only accepts
a single certificate, that being the RSA certificate represented by
the binary DER encoding contained in the provided byte sequence.  This
is useful if you wish your application to accept connections from one
party.
<note><para>Be sure to use the <literal>peer</literal>
<literal>verifymode</literal> in your SSL configuration file.</para>
</note></para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>certificate</parameter></term>
		    <listitem>
			<para>
			    A DER encoded RSA certificate.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		CertificateVerifier</para>
	</section>
    </section>
    <section id="IceSSL.Plugin.loadConfig">
	<title><literal>loadConfig</literal></title>
<synopsis><type>void</type> <function>loadConfig</function>(<link linkend="IceSSL.ContextType"><type>ContextType</type></link> <parameter>cType</parameter>,
    <type>string</type> <parameter>configFile</parameter>,
    <type>string</type> <parameter>certPath</parameter>);</synopsis>
	<para>
Configure the plug-in for the given <literal>Context</literal>
using the settings in the given configuration file.
If the plug-in is left in an unconfigured state, it
will load its configuration from the property
<literal>IceSSL.Server.Config</literal> or
<literal>IceSSL.Client.Config</literal>, depending on
the context type.
Configuration property settings will also be loaded as part of
this operation, with the property values overriding those of the
configuration file.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>contextType</parameter></term>
		    <listitem>
			<para>
			    The <literal>Context</literal> to configure.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>configFile</parameter></term>
		    <listitem>
			<para>
			    The file containing the SSL configuration
information.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>certPath</parameter></term>
		    <listitem>
			<para>
			    The path where certificates referenced in
<link linkend="IceSSL.Plugin.loadConfig"><function>loadConfig</function></link> may be found.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IceSSL.Plugin.setCertificateVerifier">
	<title><literal>setCertificateVerifier</literal></title>
<synopsis><type>void</type> <function>setCertificateVerifier</function>(<link linkend="IceSSL.ContextType"><type>ContextType</type></link> <parameter>cType</parameter>,
    <link linkend="IceSSL.CertificateVerifier"><classname>CertificateVerifier</classname></link> <parameter>certVerifier</parameter>);</synopsis>
	<para>
Set the <link linkend="IceSSL.CertificateVerifier"><classname>CertificateVerifier</classname></link> used for the indicated <link linkend="IceSSL.ContextType"><type>ContextType</type></link>
role. All plug-in <literal>Context</literal>s are created with default
<link linkend="IceSSL.CertificateVerifier"><classname>CertificateVerifier</classname></link> objects installed. Replacement
<link linkend="IceSSL.CertificateVerifier"><classname>CertificateVerifier</classname></link>s can be specified using this operation.
This operation only affects new connections -- existing
connections are left unchanged.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>contextType</parameter></term>
		    <listitem>
			<para>
			    The <literal>Context</literal>(s) in which to install the
Certificate Verifier.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>certVerifier</parameter></term>
		    <listitem>
			<para>
			    The <link linkend="IceSSL.CertificateVerifier"><classname>CertificateVerifier</classname></link> to install.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IceSSL.CertificateVerifier"><classname>CertificateVerifier</classname></link></member>
	    </simplelist></para></section>
    </section>
    <section id="IceSSL.Plugin.setRSAKeys">
	<title><literal>setRSAKeys</literal></title>
<synopsis><type>void</type> <function>setRSAKeys</function>(<link linkend="IceSSL.ContextType"><type>ContextType</type></link> <parameter>cType</parameter>,
    <link linkend="Ice.ByteSeq"><type>::Ice::ByteSeq</type></link> <parameter>privateKey</parameter>,
    <link linkend="Ice.ByteSeq"><type>::Ice::ByteSeq</type></link> <parameter>publicKey</parameter>);</synopsis>
	<para>
Set the RSA keys to be used by the plug-in when operating in
the context mode specified by <link linkend="IceSSL.ContextType"><type>ContextType</type></link>.
This method only affects new connections -- existing
connections are left unchanged.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>contextType</parameter></term>
		    <listitem>
			<para>
			    The <literal>Context</literal>(s) in which to
set/replace the RSA keys.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>privateKey</parameter></term>
		    <listitem>
			<para>
			    The RSA private key, in binary DER format.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>publicKey</parameter></term>
		    <listitem>
			<para>
			    The RSA public key, in binary DER format.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IceSSL.Plugin.setRSAKeysBase64">
	<title><literal>setRSAKeysBase64</literal></title>
<synopsis><type>void</type> <function>setRSAKeysBase64</function>(<link linkend="IceSSL.ContextType"><type>ContextType</type></link> <parameter>cType</parameter>,
    <type>string</type> <parameter>privateKey</parameter>,
    <type>string</type> <parameter>publicKey</parameter>);</synopsis>
	<para>
Set the RSA keys to be used by the plug-in when operating in
the context mode specified by <link linkend="IceSSL.ContextType"><type>ContextType</type></link>.
This method only affects new connections -- existing
connections are left unchanged.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>contextType</parameter></term>
		    <listitem>
			<para>
			    The <literal>Context</literal>(s) in which to
set/replace the RSA keys.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>privateKey</parameter></term>
		    <listitem>
			<para>
			    The RSA private key, in Base64-encoded binary
DER format.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>publicKey</parameter></term>
		    <listitem>
			<para>
			    The RSA public key, in Base64-encoded binary
DER format.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
</section>
<section id="IceSSL.PrivateKeyException">
    <title><literal>IceSSL::PrivateKeyException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>PrivateKeyException</classname>
    extends 
	<link linkend="IceSSL.SslException"><classname>SslException</classname></link></synopsis>
	<para>
A root exception class for all exceptions related to private keys.</para>
	<section>
	    <title>Derived Exceptions</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IceSSL.PrivateKeyParseException"><classname>PrivateKeyParseException</classname></link></member>
	    </simplelist></para></section>
    </section>
</section>
<section id="IceSSL.PrivateKeyLoadException">
    <title><literal>IceSSL::PrivateKeyLoadException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>PrivateKeyLoadException</classname>
    extends 
	<link linkend="IceSSL.ContextException"><classname>ContextException</classname></link></synopsis>
	<para>
Indicates that a problem occurred while loading a private key
into a <literal>Context</literal> from either a memory buffer
or from a file.</para>
    </section>
</section>
<section id="IceSSL.PrivateKeyParseException">
    <title><literal>IceSSL::PrivateKeyParseException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>PrivateKeyParseException</classname>
    extends 
	<link linkend="IceSSL.PrivateKeyException"><classname>PrivateKeyException</classname></link></synopsis>
	<para>
Indicates that IceSSL was unable to parse the provided private key
into a form usable by the underlying SSL implementation.</para>
    </section>
</section>
<section id="IceSSL.ProtocolException">
    <title><literal>IceSSL::ProtocolException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>ProtocolException</classname>
    extends 
	<link linkend="IceSSL.ShutdownException"><classname>ShutdownException</classname></link></synopsis>
	<para>
Indicates that a problem occurred that violates the SSL
protocol, causing the connection to be shutdown.</para>
    </section>
</section>
<section id="IceSSL.ShutdownException">
    <title><literal>IceSSL::ShutdownException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>ShutdownException</classname>
    extends 
	<link linkend="IceSSL.SslException"><classname>SslException</classname></link></synopsis>
	<para>
This exception generally indicates that a problem occurred
that caused the shutdown of an SSL connection.</para>
	<section>
	    <title>Derived Exceptions</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IceSSL.CertificateVerificationException"><classname>CertificateVerificationException</classname></link></member>
		<member><link linkend="IceSSL.ProtocolException"><classname>ProtocolException</classname></link></member>
	    </simplelist></para></section>
    </section>
</section>
<section id="IceSSL.SslException">
    <title><literal>IceSSL::SslException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>SslException</classname></synopsis>
	<para>
This exception represents the base of all security related exceptions
in &Ice;. It is a local exception because, usually, a problem with security
precludes a proper secure connection over which to transmit exceptions.
In addition, many exceptions would contain information that is of no use
to external clients/servers.</para>
	<section>
	    <title>Derived Exceptions</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IceSSL.CertificateException"><classname>CertificateException</classname></link></member>
		<member><link linkend="IceSSL.CertificateVerifierTypeException"><classname>CertificateVerifierTypeException</classname></link></member>
		<member><link linkend="IceSSL.ConfigParseException"><classname>ConfigParseException</classname></link></member>
		<member><link linkend="IceSSL.ConfigurationLoadingException"><classname>ConfigurationLoadingException</classname></link></member>
		<member><link linkend="IceSSL.ContextException"><classname>ContextException</classname></link></member>
		<member><link linkend="IceSSL.PrivateKeyException"><classname>PrivateKeyException</classname></link></member>
		<member><link linkend="IceSSL.ShutdownException"><classname>ShutdownException</classname></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IceSSL.SslException.message"><type>message</type></link></term>
		    <listitem>
			<para>
Contains pertinent information from the security system to help
explain the nature of the exception in greater detail.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IceSSL.SslException.message">
	<title><literal>message</literal></title>
<synopsis><type>string</type> <structfield>message</structfield>;</synopsis>
	<para>
Contains pertinent information from the security system to help
explain the nature of the exception in greater detail. In some
instances, it contains information from the underlying security
implementation and/or debugging trace.</para>
    </section>
</section>
<section id="IceSSL.TrustedCertificateAddException">
    <title><literal>IceSSL::TrustedCertificateAddException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>TrustedCertificateAddException</classname>
    extends 
	<link linkend="IceSSL.ContextException"><classname>ContextException</classname></link></synopsis>
	<para>
An attempt to add a certificate to the <literal>Context</literal>'s
trusted certifificate store has failed.</para>
    </section>
</section>
<section id="IceSSL.UnsupportedContextException">
    <title><literal>IceSSL::UnsupportedContextException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>local exception <classname>UnsupportedContextException</classname>
    extends 
	<link linkend="IceSSL.ContextException"><classname>ContextException</classname></link></synopsis>
	<para>
An attempt was made to call a method that references a
<link linkend="IceSSL.ContextType"><type>ContextType</type></link> that is not supported for that operation.</para>
    </section>
</section>
<section id="Glacier2">
    <title><literal>Glacier2</literal></title>
    <section>
	<title>Overview</title>
<synopsis>module <classname>Glacier2</classname></synopsis>
	<para>
&Glacier2; is a firewall solution for Ice. &Glacier2; authenticates
and filters client requests and allows callbacks to the client in a
secure fashion. In combination with &IceSSL;, &Glacier2; provides a
security solution that is both non-intrusive and easy to configure.</para>
	<section>
	    <title>Interface Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Glacier2.Admin"><type>Admin</type></link></term>
		    <listitem>
			<para>
The &Glacier2; administrative interface.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Glacier2.PermissionsVerifier"><type>PermissionsVerifier</type></link></term>
		    <listitem>
			<para>
The &Glacier2; permissions verifier.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Glacier2.Router"><type>Router</type></link></term>
		    <listitem>
			<para>
The &Glacier2; specialization of the standard &Ice; router
interface.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Glacier2.Session"><type>Session</type></link></term>
		    <listitem>
			<para>
A client-visible session object, which is tied to the lifecycle of
a <link linkend="Glacier2.Router"><classname>Router</classname></link>.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Glacier2.SessionManager"><type>SessionManager</type></link></term>
		    <listitem>
			<para>
The session manager, which is responsible for managing <link linkend="Glacier2.Session"><classname>Session</classname></link>
objects.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Exception Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Glacier2.CannotCreateSessionException"><classname>CannotCreateSessionException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if an attempt to create a new session
failed.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Glacier2.PermissionDeniedException"><classname>PermissionDeniedException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if a client is denied the ability to create
a session with the router.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Glacier2.SessionNotExistException"><classname>SessionNotExistException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if a client tries to destroy a session
with a router, but no session exists for the client.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
</section>
<section id="Glacier2.Admin">
    <title><literal>Glacier2::Admin</literal></title>
    <section>
	<title>Overview</title>
<synopsis>interface <classname>Admin</classname></synopsis>
	<para>
The &Glacier2; administrative interface. This must only be
accessible from inside the firewall.</para>
	<section>
	    <title>Operation Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Glacier2.Admin.shutdown"><function>shutdown</function></link></term>
		    <listitem>
			<para>
Shut down the &Glacier2; router.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Glacier2.Admin.shutdown">
	<title><literal>shutdown</literal></title>
<synopsis><type>void</type> <function>shutdown</function>();</synopsis>
	<para>
Shut down the &Glacier2; router.</para>
    </section>
</section>
<section id="Glacier2.CannotCreateSessionException">
    <title><literal>Glacier2::CannotCreateSessionException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>exception <classname>CannotCreateSessionException</classname></synopsis>
	<para>
This exception is raised if an attempt to create a new session
failed.</para>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Glacier2.Router.createSession"><function>Router::createSession</function></link></member>
		<member><literal>SessionManager::createSession</literal></member>
	    </simplelist></para></section>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Glacier2.CannotCreateSessionException.reason"><type>reason</type></link></term>
		    <listitem>
			<para>
The reason why session creation has failed.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Glacier2.CannotCreateSessionException.reason">
	<title><literal>reason</literal></title>
<synopsis><type>string</type> <structfield>reason</structfield>;</synopsis>
	<para>
The reason why session creation has failed.</para>
    </section>
</section>
<section id="Glacier2.PermissionDeniedException">
    <title><literal>Glacier2::PermissionDeniedException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>exception <classname>PermissionDeniedException</classname></synopsis>
	<para>
This exception is raised if a client is denied the ability to create
a session with the router.</para>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Glacier2.Router.createSession"><function>Router::createSession</function></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Glacier2.PermissionDeniedException.reason"><type>reason</type></link></term>
		    <listitem>
			<para>
The reason why permission was denied.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Glacier2.PermissionDeniedException.reason">
	<title><literal>reason</literal></title>
<synopsis><type>string</type> <structfield>reason</structfield>;</synopsis>
	<para>
The reason why permission was denied.</para>
    </section>
</section>
<section id="Glacier2.PermissionsVerifier">
    <title><literal>Glacier2::PermissionsVerifier</literal></title>
    <section>
	<title>Overview</title>
<synopsis>interface <classname>PermissionsVerifier</classname></synopsis>
	<para>
The &Glacier2; permissions verifier.</para>
	<section>
	    <title>Operation Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="lacier2.PermissionsVerifier.checkPermissions"><function>checkPermissions</function></link></term>
		    <listitem>
			<para>
Check whether a user has permission to access the router.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="lacier2.PermissionsVerifier.checkPermissions">
	<title><literal>checkPermissions</literal></title>
<synopsis><type>bool</type> <function>checkPermissions</function>(<type>string</type> <parameter>userId</parameter>,
    <type>string</type> <parameter>password</parameter>,
    out <type>string</type> <parameter>reason</parameter>);</synopsis>
	<para>
Check whether a user has permission to access the router.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>userId</parameter></term>
		    <listitem>
			<para>
			    The user id for which to check permission.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>password</parameter></term>
		    <listitem>
			<para>
			    The user's password.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>reason</parameter></term>
		    <listitem>
			<para>
			    The reason why access was denied.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		True if access is granted, or false otherwise.</para>
	</section>
    </section>
</section>
<section id="Glacier2.Router">
    <title><literal>Glacier2::Router</literal></title>
    <section>
	<title>Overview</title>
<synopsis>interface <classname>Router</classname>
    extends 
	<link linkend="Ice.Router"><type>::Ice::Router</type></link></synopsis>
	<para>
The &Glacier2; specialization of the standard &Ice; router
interface.</para>
	<section>
	    <title>Operation Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Glacier2.Router.createSession"><function>createSession</function></link></term>
		    <listitem>
			<para>
Create a per-client session with the router.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Glacier2.Router.destroySession"><function>destroySession</function></link></term>
		    <listitem>
			<para>
Destroy the calling client's session with this router.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Glacier2.Router.createSession">
	<title><literal>createSession</literal></title>
<synopsis><classname>Session*</classname> <function>createSession</function>(<type>string</type> <parameter>userId</parameter>,
    <type>string</type> <parameter>password</parameter>)
    throws
	<link linkend="Glacier2.PermissionDeniedException"><classname>PermissionDeniedException</classname></link>,
	<link linkend="Glacier2.CannotCreateSessionException"><classname>CannotCreateSessionException</classname></link>;</synopsis>
	<para>
Create a per-client session with the router. If a
<link linkend="Glacier2.SessionManager"><classname>SessionManager</classname></link> has been installed, a proxy to a <link linkend="Glacier2.Session"><classname>Session</classname></link>
object is returned to the client. Otherwise, null is returned
and only an internal session (i.e., not visible to the client)
is created.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>userId</parameter></term>
		    <listitem>
			<para>
			    The user id for which to check the password.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>password</parameter></term>
		    <listitem>
			<para>
			    The password for the given user id.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		A proxy for the newly created session, or null if no
<link linkend="Glacier2.SessionManager"><classname>SessionManager</classname></link> has been installed.</para>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Glacier2.PermissionDeniedException"><classname>PermissionDeniedException</classname></link></term>
		    <listitem>
			<para>
			    Raised if the password for
the given user id is not correct, or if the user is not allowed
access.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="Glacier2.CannotCreateSessionException"><classname>CannotCreateSessionException</classname></link></term>
		    <listitem>
			<para>
			    Raised if the session
cannot be created.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Glacier2.Session"><classname>Session</classname></link></member>
		<member><link linkend="Glacier2.SessionManager"><classname>SessionManager</classname></link></member>
		<member><link linkend="Glacier2.PermissionsVerifier"><classname>PermissionsVerifier</classname></link></member>
	    </simplelist></para></section>
    </section>
    <section id="Glacier2.Router.destroySession">
	<title><literal>destroySession</literal></title>
<synopsis>[ "amd" ]
<type>void</type> <function>destroySession</function>()
    throws
	<link linkend="Glacier2.SessionNotExistException"><classname>SessionNotExistException</classname></link>;</synopsis>
	<para>
Destroy the calling client's session with this router.</para>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Glacier2.SessionNotExistException"><classname>SessionNotExistException</classname></link></term>
		    <listitem>
			<para>
			    Raised if no session exists
for the calling client.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
</section>
<section id="Glacier2.Session">
    <title><literal>Glacier2::Session</literal></title>
    <section>
	<title>Overview</title>
<synopsis>interface <classname>Session</classname></synopsis>
	<para>
A client-visible session object, which is tied to the lifecycle of
a <link linkend="Glacier2.Router"><classname>Router</classname></link>.</para>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Glacier2.Router"><classname>Router</classname></link></member>
		<member><link linkend="Glacier2.SessionManager"><classname>SessionManager</classname></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Operation Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Glacier2.Session.destroy"><function>destroy</function></link></term>
		    <listitem>
			<para>
Destroy the session.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Glacier2.Session.destroy">
	<title><literal>destroy</literal></title>
<synopsis><type>void</type> <function>destroy</function>();</synopsis>
	<para>
Destroy the session. This is called automatically when the
<link linkend="Glacier2.Router"><classname>Router</classname></link> is destroyed.</para>
    </section>
</section>
<section id="Glacier2.SessionManager">
    <title><literal>Glacier2::SessionManager</literal></title>
    <section>
	<title>Overview</title>
<synopsis>interface <classname>SessionManager</classname></synopsis>
	<para>
The session manager, which is responsible for managing <link linkend="Glacier2.Session"><classname>Session</classname></link>
objects. New session objects are created by the <link linkend="Glacier2.Router"><classname>Router</classname></link> object
calling on an application-provided session manager. If no session
manager is provided by the application, no client-visible sessions
are passed to the client.</para>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Glacier2.Router"><classname>Router</classname></link></member>
		<member><link linkend="Glacier2.Session"><classname>Session</classname></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Operation Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Glacier2.SessionManager.create"><function>create</function></link></term>
		    <listitem>
			<para>
Create a new session.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="Glacier2.SessionManager.create">
	<title><literal>create</literal></title>
<synopsis><classname>Session*</classname> <function>create</function>(<type>string</type> <parameter>userId</parameter>)
    throws
	<link linkend="Glacier2.CannotCreateSessionException"><classname>CannotCreateSessionException</classname></link>;</synopsis>
	<para>
Create a new session.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>userId</parameter></term>
		    <listitem>
			<para>
			    The user id for the session.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		A proxy to the newly created session.</para>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="Glacier2.CannotCreateSessionException"><classname>CannotCreateSessionException</classname></link></term>
		    <listitem>
			<para>
			    Raised if the session
cannot be created.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
</section>
<section id="Glacier2.SessionNotExistException">
    <title><literal>Glacier2::SessionNotExistException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>exception <classname>SessionNotExistException</classname></synopsis>
	<para>
This exception is raised if a client tries to destroy a session
with a router, but no session exists for the client.</para>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="Glacier2.Router.destroySession"><function>Router::destroySession</function></link></member>
	    </simplelist></para></section>
    </section>
</section>
<section id="IceStorm">
    <title><literal>IceStorm</literal></title>
    <section>
	<title>Overview</title>
<synopsis>module <classname>IceStorm</classname></synopsis>
	<para>
A messaging service with support for federation. In contrast to
most other messaging or event services, &IceStorm; supports typed
events, meaning that broadcasting a message over a federation is as
easy as invoking a method on an interface.</para>
	<section>
	    <title>Interface Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IceStorm.Topic"><type>Topic</type></link></term>
		    <listitem>
			<para>
Publishers publish information on a particular topic.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceStorm.TopicManager"><type>TopicManager</type></link></term>
		    <listitem>
			<para>
A topic manager manages topics, and subscribers to topics.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Exception Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IceStorm.LinkExists"><classname>LinkExists</classname></link></term>
		    <listitem>
			<para>
This exception indicates that an attempt was made to create a link
that already exists.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceStorm.NoSuchLink"><classname>NoSuchLink</classname></link></term>
		    <listitem>
			<para>
This exception indicates that an attempt was made to remove a
link that does not exist.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceStorm.NoSuchTopic"><classname>NoSuchTopic</classname></link></term>
		    <listitem>
			<para>
This exception indicates that an attempt was made to retrieve a
topic that does not exist.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceStorm.TopicExists"><classname>TopicExists</classname></link></term>
		    <listitem>
			<para>
This exception indicates that an attempt was made to create a topic
that already exists.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Struct Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IceStorm.LinkInfo"><structname>LinkInfo</structname></link></term>
		    <listitem>
			<para>
Information on the topic links.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Sequence Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IceStorm.LinkInfoSeq"><type>LinkInfoSeq</type></link></term>
		    <listitem>
			<para>
A sequence of <link linkend="IceStorm.LinkInfo"><structname>LinkInfo</structname></link> objects.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Dictionary Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IceStorm.QoS"><type>QoS</type></link></term>
		    <listitem>
			<para>
This dictionary represents Quality of service parameters.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceStorm.TopicDict"><type>TopicDict</type></link></term>
		    <listitem>
			<para>
Mapping of topic name to topic proxy.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IceStorm.LinkInfoSeq">
	<title><literal>LinkInfoSeq</literal></title>
<synopsis>sequence&lt;<link linkend="IceStorm.LinkInfo"><structname>LinkInfo</structname></link>&gt; <type>LinkInfoSeq</type>;</synopsis>
	<para>
A sequence of <link linkend="IceStorm.LinkInfo"><structname>LinkInfo</structname></link> objects.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IceStorm.Topic.getLinkInfoSeq"><function>Topic::getLinkInfoSeq</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="IceStorm.QoS">
	<title><literal>QoS</literal></title>
<synopsis>dictionary&lt;<type>string</type>, <type>string</type>&gt; <type>QoS</type>;</synopsis>
	<para>
This dictionary represents Quality of service parameters.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IceStorm.Topic.subscribe"><function>Topic::subscribe</function></link></member>
	    </simplelist></para></section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IceStorm.Topic.subscribe"><function>Topic::subscribe</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="IceStorm.TopicDict">
	<title><literal>TopicDict</literal></title>
<synopsis>dictionary&lt;<type>string</type>, <link linkend="IceStorm.Topic"><classname>Topic*</classname></link>&gt; <type>TopicDict</type>;</synopsis>
	<para>
Mapping of topic name to topic proxy.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IceStorm.TopicManager.retrieveAll"><function>TopicManager::retrieveAll</function></link></member>
	    </simplelist></para></section>
    </section>
</section>
<section id="IceStorm.LinkExists">
    <title><literal>IceStorm::LinkExists</literal></title>
    <section>
	<title>Overview</title>
<synopsis>exception <classname>LinkExists</classname></synopsis>
	<para>
This exception indicates that an attempt was made to create a link
that already exists.</para>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IceStorm.LinkExists.name"><type>name</type></link></term>
		    <listitem>
			<para>
The name of the linked topic.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IceStorm.LinkExists.name">
	<title><literal>name</literal></title>
<synopsis><type>string</type> <structfield>name</structfield>;</synopsis>
	<para>
The name of the linked topic.</para>
    </section>
</section>
<section id="IceStorm.LinkInfo">
    <title><literal>IceStorm::LinkInfo</literal></title>
    <section>
	<title>Overview</title>
<synopsis>struct <structname>LinkInfo</structname></synopsis>
	<para>
Information on the topic links.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IceStorm.LinkInfoSeq"><type>LinkInfoSeq</type></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IceStorm.LinkInfo.cost"><type>cost</type></link></term>
		    <listitem>
			<para>
The cost of traversing this link.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceStorm.LinkInfo.name"><type>name</type></link></term>
		    <listitem>
			<para>
The name of the linked topic.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceStorm.LinkInfo.theTopic"><type>theTopic</type></link></term>
		    <listitem>
			<para>
The linked topic.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IceStorm.LinkInfo.cost">
	<title><literal>cost</literal></title>
<synopsis><type>int</type> <structfield>cost</structfield>;</synopsis>
	<para>
The cost of traversing this link.</para>
    </section>
    <section id="IceStorm.LinkInfo.name">
	<title><literal>name</literal></title>
<synopsis><type>string</type> <structfield>name</structfield>;</synopsis>
	<para>
The name of the linked topic.</para>
    </section>
    <section id="IceStorm.LinkInfo.theTopic">
	<title><literal>theTopic</literal></title>
<synopsis><link linkend="IceStorm.Topic"><classname>Topic*</classname></link> <structfield>theTopic</structfield>;</synopsis>
	<para>
The linked topic.</para>
    </section>
</section>
<section id="IceStorm.NoSuchLink">
    <title><literal>IceStorm::NoSuchLink</literal></title>
    <section>
	<title>Overview</title>
<synopsis>exception <classname>NoSuchLink</classname></synopsis>
	<para>
This exception indicates that an attempt was made to remove a
link that does not exist.</para>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IceStorm.NoSuchLink.name"><type>name</type></link></term>
		    <listitem>
			<para>
The name of the link that does not exist.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IceStorm.NoSuchLink.name">
	<title><literal>name</literal></title>
<synopsis><type>string</type> <structfield>name</structfield>;</synopsis>
	<para>
The name of the link that does not exist.</para>
    </section>
</section>
<section id="IceStorm.NoSuchTopic">
    <title><literal>IceStorm::NoSuchTopic</literal></title>
    <section>
	<title>Overview</title>
<synopsis>exception <classname>NoSuchTopic</classname></synopsis>
	<para>
This exception indicates that an attempt was made to retrieve a
topic that does not exist.</para>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IceStorm.NoSuchTopic.name"><type>name</type></link></term>
		    <listitem>
			<para>
The name of the topic that does not exist.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IceStorm.NoSuchTopic.name">
	<title><literal>name</literal></title>
<synopsis><type>string</type> <structfield>name</structfield>;</synopsis>
	<para>
The name of the topic that does not exist.</para>
    </section>
</section>
<section id="IceStorm.Topic">
    <title><literal>IceStorm::Topic</literal></title>
    <section>
	<title>Overview</title>
<synopsis>interface <classname>Topic</classname></synopsis>
	<para>
Publishers publish information on a particular topic. A topic
logically represents a type.</para>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IceStorm.TopicManager"><classname>TopicManager</classname></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Operation Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IceStorm.Topic.destroy"><function>destroy</function></link></term>
		    <listitem>
			<para>
Destroy the topic.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceStorm.Topic.getLinkInfoSeq"><function>getLinkInfoSeq</function></link></term>
		    <listitem>
			<para>
Retrieve information on the current links.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceStorm.Topic.getName"><function>getName</function></link></term>
		    <listitem>
			<para>
Get the name of this topic.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceStorm.Topic.getPublisher"><function>getPublisher</function></link></term>
		    <listitem>
			<para>
Get a proxy to a publisher object for this topic.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceStorm.Topic.link"><function>link</function></link></term>
		    <listitem>
			<para>
Create a link to the given topic.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceStorm.Topic.subscribe"><function>subscribe</function></link></term>
		    <listitem>
			<para>
Subscribe with the given <link linkend="IceStorm.QoS"><type>QoS</type></link> to this topic.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceStorm.Topic.unlink"><function>unlink</function></link></term>
		    <listitem>
			<para>
Destroy the link from this topic to the given topic <link linkend="IceStorm.Topic.unlink"><function>unlink</function></link>.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceStorm.Topic.unsubscribe"><function>unsubscribe</function></link></term>
		    <listitem>
			<para>
Unsubscribe the given <link linkend="IceStorm.Topic.unsubscribe"><function>unsubscribe</function></link>.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IceStorm.Topic.destroy">
	<title><literal>destroy</literal></title>
<synopsis><type>void</type> <function>destroy</function>();</synopsis>
	<para>
Destroy the topic.</para>
    </section>
    <section id="IceStorm.Topic.getLinkInfoSeq">
	<title><literal>getLinkInfoSeq</literal></title>
<synopsis><link linkend="IceStorm.LinkInfoSeq"><type>LinkInfoSeq</type></link> <function>getLinkInfoSeq</function>();</synopsis>
	<para>
Retrieve information on the current links.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		A sequence of LinkInfo objects.</para>
	</section>
    </section>
    <section id="IceStorm.Topic.getName">
	<title><literal>getName</literal></title>
<synopsis><type>string</type> <function>getName</function>();</synopsis>
	<para>
Get the name of this topic.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		The name of the topic.</para>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IceStorm.TopicManager.create"><function>TopicManager::create</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="IceStorm.Topic.getPublisher">
	<title><literal>getPublisher</literal></title>
<synopsis><type>Object*</type> <function>getPublisher</function>();</synopsis>
	<para>
Get a proxy to a publisher object for this topic. To publish
data to a topic, the publisher calls <link linkend="IceStorm.Topic.getPublisher"><function>getPublisher</function></link> and then
casts to the topic type. An unchecked cast must be used on
this proxy.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		A proxy to publish data on this topic.</para>
	</section>
    </section>
    <section id="IceStorm.Topic.link">
	<title><literal>link</literal></title>
<synopsis><type>void</type> <function>link</function>(<link linkend="IceStorm.Topic"><classname>Topic*</classname></link> <parameter>linkTo</parameter>,
    <type>int</type> <parameter>cost</parameter>)
    throws
	<link linkend="IceStorm.LinkExists"><classname>LinkExists</classname></link>;</synopsis>
	<para>
Create a link to the given topic. All events originating
on this topic will also be sent to <link linkend="IceStorm.Topic.link"><function>link</function></link>.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>linkTo</parameter></term>
		    <listitem>
			<para>
			    The topic to link to.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>cost</parameter></term>
		    <listitem>
			<para>
			    The cost to the linked topic.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IceStorm.LinkExists"><classname>LinkExists</classname></link></term>
		    <listitem>
			<para>
			    Raised if a link to the same topic already
exists.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IceStorm.Topic.subscribe">
	<title><literal>subscribe</literal></title>
<synopsis><type>void</type> <function>subscribe</function>(<link linkend="IceStorm.QoS"><type>QoS</type></link> <parameter>theQoS</parameter>,
    <type>Object*</type> <parameter>subscriber</parameter>);</synopsis>
	<para>
Subscribe with the given <link linkend="IceStorm.QoS"><type>QoS</type></link> to this topic. If the given
<link linkend="IceStorm.Topic.subscribe"><function>subscribe</function></link> proxy has already been registered, it will be
replaced.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>qos</parameter></term>
		    <listitem>
			<para>
			    The quality of service parameters for this
subscription.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>subscriber</parameter></term>
		    <listitem>
			<para>
			    The subscriber's proxy.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IceStorm.Topic.unsubscribe"><function>unsubscribe</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="IceStorm.Topic.unlink">
	<title><literal>unlink</literal></title>
<synopsis><type>void</type> <function>unlink</function>(<link linkend="IceStorm.Topic"><classname>Topic*</classname></link> <parameter>linkTo</parameter>)
    throws
	<link linkend="IceStorm.NoSuchLink"><classname>NoSuchLink</classname></link>;</synopsis>
	<para>
Destroy the link from this topic to the given topic <link linkend="IceStorm.Topic.unlink"><function>unlink</function></link>.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>link</parameter></term>
		    <listitem>
			<para>
			    The topic to destroy the link to.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IceStorm.NoSuchLink"><classname>NoSuchLink</classname></link></term>
		    <listitem>
			<para>
			    Raised if a link to the topic does not exist.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IceStorm.Topic.unsubscribe">
	<title><literal>unsubscribe</literal></title>
<synopsis><type>void</type> <function>unsubscribe</function>(<type>Object*</type> <parameter>subscriber</parameter>);</synopsis>
	<para>
Unsubscribe the given <link linkend="IceStorm.Topic.unsubscribe"><function>unsubscribe</function></link>.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>subscriber</parameter></term>
		    <listitem>
			<para>
			    The proxy of an existing subscriber.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IceStorm.Topic.subscribe"><function>subscribe</function></link></member>
	    </simplelist></para></section>
    </section>
</section>
<section id="IceStorm.TopicExists">
    <title><literal>IceStorm::TopicExists</literal></title>
    <section>
	<title>Overview</title>
<synopsis>exception <classname>TopicExists</classname></synopsis>
	<para>
This exception indicates that an attempt was made to create a topic
that already exists.</para>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IceStorm.TopicExists.name"><type>name</type></link></term>
		    <listitem>
			<para>
The name of the topic that already exists.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IceStorm.TopicExists.name">
	<title><literal>name</literal></title>
<synopsis><type>string</type> <structfield>name</structfield>;</synopsis>
	<para>
The name of the topic that already exists.</para>
    </section>
</section>
<section id="IceStorm.TopicManager">
    <title><literal>IceStorm::TopicManager</literal></title>
    <section>
	<title>Overview</title>
<synopsis>interface <classname>TopicManager</classname></synopsis>
	<para>
A topic manager manages topics, and subscribers to topics.</para>
	<section>
	    <title>See Also</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IceStorm.Topic"><classname>Topic</classname></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Operation Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IceStorm.TopicManager.create"><function>create</function></link></term>
		    <listitem>
			<para>
Create a new topic.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceStorm.TopicManager.getSliceChecksums"><function>getSliceChecksums</function></link></term>
		    <listitem>
			<para>
Returns the checksums for the IceStorm Slice definitions.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceStorm.TopicManager.retrieve"><function>retrieve</function></link></term>
		    <listitem>
			<para>
Retrieve a topic by name.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IceStorm.TopicManager.retrieveAll"><function>retrieveAll</function></link></term>
		    <listitem>
			<para>
Retrieve all topics managed by this topic manager.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IceStorm.TopicManager.create">
	<title><literal>create</literal></title>
<synopsis><link linkend="IceStorm.Topic"><classname>Topic*</classname></link> <function>create</function>(<type>string</type> <parameter>name</parameter>)
    throws
	<link linkend="IceStorm.TopicExists"><classname>TopicExists</classname></link>;</synopsis>
	<para>
Create a new topic. The topic name must be unique, otherwise
<link linkend="IceStorm.TopicExists"><classname>TopicExists</classname></link> is raised.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>name</parameter></term>
		    <listitem>
			<para>
			    The name of the topic.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		A proxy to the topic instance.</para>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IceStorm.TopicExists"><classname>TopicExists</classname></link></term>
		    <listitem>
			<para>
			    Raised if a topic with the same name already
exists.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IceStorm.TopicManager.getSliceChecksums">
	<title><literal>getSliceChecksums</literal></title>
<synopsis><link linkend="Ice.SliceChecksumDict"><type>::Ice::SliceChecksumDict</type></link> <function>getSliceChecksums</function>();</synopsis>
	<para>
Returns the checksums for the IceStorm Slice definitions.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		A dictionary mapping Slice type ids to their checksums.</para>
	</section>
    </section>
    <section id="IceStorm.TopicManager.retrieve">
	<title><literal>retrieve</literal></title>
<synopsis><link linkend="IceStorm.Topic"><classname>Topic*</classname></link> <function>retrieve</function>(<type>string</type> <parameter>name</parameter>)
    throws
	<link linkend="IceStorm.NoSuchTopic"><classname>NoSuchTopic</classname></link>;</synopsis>
	<para>
Retrieve a topic by name.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>name</parameter></term>
		    <listitem>
			<para>
			    The name of the topic.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		A proxy to the topic instance.</para>
	</section>
	<section>
	    <title>Exceptions</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IceStorm.NoSuchTopic"><classname>NoSuchTopic</classname></link></term>
		    <listitem>
			<para>
			    Raised if the topic does not exist.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IceStorm.TopicManager.retrieveAll">
	<title><literal>retrieveAll</literal></title>
<synopsis><link linkend="IceStorm.TopicDict"><type>TopicDict</type></link> <function>retrieveAll</function>();</synopsis>
	<para>
Retrieve all topics managed by this topic manager.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		A dictionary of string, topic proxy pairs.</para>
	</section>
    </section>
</section>
<section id="IcePatch2">
    <title><literal>IcePatch2</literal></title>
    <section>
	<title>Overview</title>
<synopsis>module <classname>IcePatch2</classname></synopsis>
	<para>
&IcePatch2; can be used to update file hiearchies in a simple and
efficient manner. Checksums ensure file integrity, and data is
compressed before download.</para>
	<section>
	    <title>Interface Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePatch2.Admin"><type>Admin</type></link></term>
		    <listitem>
			<para>
The &IcePatch2; administrative interface.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePatch2.FileServer"><type>FileServer</type></link></term>
		    <listitem>
			<para>
</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Exception Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePatch2.FileAccessException"><classname>FileAccessException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if <literal>getFileCompressed</literal> cannot read the
contents of a file.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePatch2.PartitionOutOfRangeException"><classname>PartitionOutOfRangeException</classname></link></term>
		    <listitem>
			<para>
This exception is raised if the <literal>partition</literal> argument for
<literal>getFileInfoSeq</literal> is not in the range 0-255.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Struct Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePatch2.FileInfo"><structname>FileInfo</structname></link></term>
		    <listitem>
			<para>
Basic information about a single file.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Sequence Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePatch2.ByteSeqSeq"><type>ByteSeqSeq</type></link></term>
		    <listitem>
			<para>
A sequence of byte sequences.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePatch2.FileInfoSeq"><type>FileInfoSeq</type></link></term>
		    <listitem>
			<para>
A sequence with information about many files.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IcePatch2.ByteSeqSeq">
	<title><literal>ByteSeqSeq</literal></title>
<synopsis>sequence&lt;<link linkend="Ice.ByteSeq"><type>::Ice::ByteSeq</type></link>&gt; <type>ByteSeqSeq</type>;</synopsis>
	<para>
A sequence of byte sequences. Each element is the checksum for a
partition.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IcePatch2.FileServer.getChecksumSeq"><function>FileServer::getChecksumSeq</function></link></member>
	    </simplelist></para></section>
    </section>
    <section id="IcePatch2.FileInfoSeq">
	<title><literal>FileInfoSeq</literal></title>
<synopsis>sequence&lt;<link linkend="IcePatch2.FileInfo"><structname>FileInfo</structname></link>&gt; <type>FileInfoSeq</type>;</synopsis>
	<para>
A sequence with information about many files.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IcePatch2.FileServer.getFileInfoSeq"><function>FileServer::getFileInfoSeq</function></link></member>
	    </simplelist></para></section>
    </section>
</section>
<section id="IcePatch2.Admin">
    <title><literal>IcePatch2::Admin</literal></title>
    <section>
	<title>Overview</title>
<synopsis>interface <classname>Admin</classname></synopsis>
	<para>
The &IcePatch2; administrative interface. This must only be
accessible from inside the firewall.</para>
	<section>
	    <title>Operation Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePatch2.Admin.shutdown"><function>shutdown</function></link></term>
		    <listitem>
			<para>
Shut down the &IcePatch2; server.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IcePatch2.Admin.shutdown">
	<title><literal>shutdown</literal></title>
<synopsis><type>void</type> <function>shutdown</function>();</synopsis>
	<para>
Shut down the &IcePatch2; server.</para>
    </section>
</section>
<section id="IcePatch2.FileAccessException">
    <title><literal>IcePatch2::FileAccessException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>exception <classname>FileAccessException</classname></synopsis>
	<para>
This exception is raised if <literal>getFileCompressed</literal> cannot read the
contents of a file.</para>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePatch2.FileAccessException.reason"><type>reason</type></link></term>
		    <listitem>
			<para>
An explanation of the reason for the failure.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IcePatch2.FileAccessException.reason">
	<title><literal>reason</literal></title>
<synopsis><type>string</type> <structfield>reason</structfield>;</synopsis>
	<para>
An explanation of the reason for the failure.</para>
    </section>
</section>
<section id="IcePatch2.FileInfo">
    <title><literal>IcePatch2::FileInfo</literal></title>
    <section>
	<title>Overview</title>
<synopsis>struct <structname>FileInfo</structname></synopsis>
	<para>
Basic information about a single file.</para>
	<section>
	    <title>Used By</title>
	    <para>
	    <simplelist type="inline">
		<member><link linkend="IcePatch2.FileInfoSeq"><type>FileInfoSeq</type></link></member>
	    </simplelist></para></section>
	<section>
	    <title>Data Member Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePatch2.FileInfo.checksum"><type>checksum</type></link></term>
		    <listitem>
			<para>
The SHA-1 checksum of the file.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePatch2.FileInfo.path"><type>path</type></link></term>
		    <listitem>
			<para>
The pathname.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePatch2.FileInfo.size"><type>size</type></link></term>
		    <listitem>
			<para>
The size of the compressed file in number of bytes.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IcePatch2.FileInfo.checksum">
	<title><literal>checksum</literal></title>
<synopsis><link linkend="Ice.ByteSeq"><type>::Ice::ByteSeq</type></link> <structfield>checksum</structfield>;</synopsis>
	<para>
The SHA-1 checksum of the file.</para>
    </section>
    <section id="IcePatch2.FileInfo.path">
	<title><literal>path</literal></title>
<synopsis><type>string</type> <structfield>path</structfield>;</synopsis>
	<para>
The pathname.</para>
    </section>
    <section id="IcePatch2.FileInfo.size">
	<title><literal>size</literal></title>
<synopsis><type>int</type> <structfield>size</structfield>;</synopsis>
	<para>
The size of the compressed file in number of bytes.</para>
    </section>
</section>
<section id="IcePatch2.FileServer">
    <title><literal>IcePatch2::FileServer</literal></title>
    <section>
	<title>Overview</title>
<synopsis>interface <classname>FileServer</classname></synopsis>
	<para></para>
	<section>
	    <title>Operation Index</title>
	    <variablelist>
		<varlistentry>
		    <term><link linkend="IcePatch2.FileServer.getChecksum"><function>getChecksum</function></link></term>
		    <listitem>
			<para>
Return the master checksum for all partitions.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePatch2.FileServer.getChecksumSeq"><function>getChecksumSeq</function></link></term>
		    <listitem>
			<para>
Return the checksums for all partitions.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePatch2.FileServer.getFileCompressed"><function>getFileCompressed</function></link></term>
		    <listitem>
			<para>
Read the specified file.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><link linkend="IcePatch2.FileServer.getFileInfoSeq"><function>getFileInfoSeq</function></link></term>
		    <listitem>
			<para>
Return the <link linkend="IcePatch2.FileInfoSeq"><type>FileInfoSeq</type></link> for the specified partition.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
    </section>
    <section id="IcePatch2.FileServer.getChecksum">
	<title><literal>getChecksum</literal></title>
<synopsis><link linkend="Ice.ByteSeq"><type>::Ice::ByteSeq</type></link> <function>getChecksum</function>();</synopsis>
	<para>
Return the master checksum for all partitions. If this checksum is the same
as for a previous run, the entire file set is up-to-date.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		The master checksum for the file set.</para>
	</section>
    </section>
    <section id="IcePatch2.FileServer.getChecksumSeq">
	<title><literal>getChecksumSeq</literal></title>
<synopsis><link linkend="IcePatch2.ByteSeqSeq"><type>ByteSeqSeq</type></link> <function>getChecksumSeq</function>();</synopsis>
	<para>
Return the checksums for all partitions.</para>
	<section>
	    <title>Return Value</title>
	    <para>
		A sequence containing 256 checksums. Partitions with a
checksum that differs from the previous checksum for the same
partition contain updated files. Partitions with a checksum
that is identical to the previous checksum do not contain
updated files.</para>
	</section>
    </section>
    <section id="IcePatch2.FileServer.getFileCompressed">
	<title><literal>getFileCompressed</literal></title>
<synopsis>[ "ami" ]
<link linkend="Ice.ByteSeq"><type>::Ice::ByteSeq</type></link> <function>getFileCompressed</function>(<type>string</type> <parameter>path</parameter>,
    <type>int</type> <parameter>pos</parameter>,
    <type>int</type> <parameter>num</parameter>)
    throws
	<link linkend="IcePatch2.FileAccessException"><classname>FileAccessException</classname></link>;</synopsis>
	<para>
Read the specified file. If the read operation fails, the
operation throws <link linkend="IcePatch2.FileAccessException"><classname>FileAccessException</classname></link>. This operation may only
return fewer bytes than requested in case there was an
end-of-file condition.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>path</parameter></term>
		    <listitem>
			<para>
			    The pathname (relative to the data directory) for
the file to be read.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>pos</parameter></term>
		    <listitem>
			<para>
			    The file offset at which to begin reading.</para>
		    </listitem>
		</varlistentry>
		<varlistentry>
		    <term><parameter>num</parameter></term>
		    <listitem>
			<para>
			    The number of bytes to be read.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		A sequence containing the compressed file contents.</para>
	</section>
    </section>
    <section id="IcePatch2.FileServer.getFileInfoSeq">
	<title><literal>getFileInfoSeq</literal></title>
<synopsis>[ "ami" ]
<link linkend="IcePatch2.FileInfoSeq"><type>FileInfoSeq</type></link> <function>getFileInfoSeq</function>(<type>int</type> <parameter>partition</parameter>)
    throws
	<link linkend="IcePatch2.PartitionOutOfRangeException"><classname>PartitionOutOfRangeException</classname></link>;</synopsis>
	<para>
Return the <link linkend="IcePatch2.FileInfoSeq"><type>FileInfoSeq</type></link> for the specified partition. If the
partion number is out of range, the operation throws
<literal>PartitionOutOfRangException</literal>.</para>
	<section>
	    <title>Parameters</title>
	    <variablelist>
		<varlistentry>
		    <term><parameter>partition</parameter></term>
		    <listitem>
			<para>
			    The partition number in the range 0-255.</para>
		    </listitem>
		</varlistentry>
	    </variablelist>
	</section>
	<section>
	    <title>Return Value</title>
	    <para>
		A sequence containing the <link linkend="IcePatch2.FileInfo"><structname>FileInfo</structname></link> structures for
files in the specified partition.</para>
	</section>
    </section>
</section>
<section id="IcePatch2.PartitionOutOfRangeException">
    <title><literal>IcePatch2::PartitionOutOfRangeException</literal></title>
    <section>
	<title>Overview</title>
<synopsis>exception <classname>PartitionOutOfRangeException</classname></synopsis>
	<para>
This exception is raised if the <literal>partition</literal> argument for
<literal>getFileInfoSeq</literal> is not in the range 0-255.</para>
    </section>
</section>