Ice Reference Documentation
<<< Previous | Slice Documentation | Next >>>

# `Ice`

## Overview

    module Ice

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.

### Interface Index

Communicator

  The central object in Ice.

Connection

  The user-level interface to a connection.

Endpoint

  The user-level interface to an endpoint.

Locator

  The Ice locator interface.

LocatorRegistry

  The Ice locator registry interface.

Logger

  The Ice message logger.

ObjectAdapter

  The object adapter, which is responsible for receiving requests from endpoints, and for mapping between servants, identities, and proxies.

ObjectFactory

  A factory for objects.

Plugin

  A communicator plugin.

PluginManager

  Each communicator has a plugin manager to administer the set of plugins.

Process

  An administrative interface for process management.

Properties

  A property set used to configure Ice and Ice applications.

Router

  The Ice router interface.

ServantLocator

  The servant locator, which is called by the object adapter to locate a servant that is not found in its active servant map.

Stats

  An interface Ice uses to report statistics, such as how much data is sent or received.

### Exception Index

`AdapterAlreadyActiveException`

  This exception is raised if a server tries to set endpoints for an adapter that is already active.

`AdapterNotFoundException`

  This exception is raised if an adapter cannot be found.

`AlreadyRegisteredException`

  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.

`BadMagicException`

  This exception is a specialization of `ProtocolException`, indicating that a message did not start with the expected magic number ('I', 'c', 'e', 'P').

`CloneNotImplementedException`

  This exception is raised if `ice_clone` is called on a class that is derived from an abstract Slice class (that is, a class containing operations), and the derived class does not provide an implementation of the `ice_clone` operation (C++ only).

`CloseConnectionException`

  This exception is a specialization of `ProtocolException`, indicating that the connection has been gracefully shut down by the server.

`CloseTimeoutException`

  This exception is a specialization of `TimeoutException` for connection closure timeout conditions.

`CollocationOptimizationException`

  This exception is raised if a feature is requested that is not supported with collocation optimization.

`CommunicatorDestroyedException`

  This exception is raised if the `Communicator` has been destroyed.

`CompressionException`

  This exception is a specialization of `ProtocolException` that is raised if there is a problem with compressing or uncompressing data.

`ConnectFailedException`

  This exception is a specialization of `SocketException` for connection failures.

`ConnectTimeoutException`

  This exception is a specialization of `TimeoutException` for connection establishment timeout conditions.

`ConnectionLostException`

  This exception is a specialization of `SocketException`, indicating a lost connection.

`ConnectionNotValidatedException`

  This exception is a specialization of `ProtocolException`, that is raised if a message is received over a connection that is not yet validated.

`ConnectionRefusedException`

  This exception is a specialization of `ConnectFailedException` for connection failures, where the server host actively refuses a connection.

`ConnectionTimeoutException`

  This exception is a specialization of `TimeoutException`, and indicates that a connection has been shut down because it has been idle for some time.

`DNSException`

  This exception indicates a DNS problem.

`DatagramLimitException`

  This exception is a specialization of `ProtocolException` 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).

`EncapsulationException`

  This exception is a specialization of `MarshalException`, indicating a malformed data encapsulation.

`EndpointParseException`

  This exception is raised if there was an error while parsing an endpoint.

`FacetNotExistException`

  This exception is raised if no facet with the given name exists, but at least one facet with the given identity exists.

`FeatureNotSupportedException`

  This exception is raised if an unsupported feature is used.

`FileException`

  This exception is a specialization of `SyscallException` for file errors.

`ForcedCloseConnectionException`

  This exception is raised by an operation call if the application forcefully closes the connection used by this call with `Connection::close`.

`IdentityParseException`

  This exception is raised if there was an error while parsing a stringified identity.

`IllegalIdentityException`

  This exception is raised if an illegal identity is encountered.

`IllegalIndirectionException`

  This exception is a specialization of `MarshalException`, indicating an illegal indirection during unmarshaling.

`IllegalMessageSizeException`

  This exception is a specialization of `ProtocolException`, indicating that the message size is illegal, i.e., it is less than the minimum required size.

`InitializationException`

  This exception is raised when a failure occurs during initialization.

`InvalidReplicaGroupIdException`

  This exception is raised if the replica group provided by the server is invalid.

`MarshalException`

  This exception is a specialization of `ProtocolException` that is raised upon an error during marshaling or unmarshaling data.

`MemoryLimitException`

  This exception is a specialization of `MarshalException` that is raised if the system-specific memory limit is exceeded during marshaling or unmarshaling.

`NegativeSizeException`

  This exception is a specialization of `MarshalException` that is raised if a negative size (e.g., a negative sequence size) is received.

`NoEndpointException`

  This exception is raised if no suitable endpoint is available.

`NoObjectFactoryException`

  This exception is a specialization of `MarshalException` that is raised if no suitable object factory was found during object unmarshaling.

`NotRegisteredException`

  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.

`ObjectAdapterDeactivatedException`

  This exception is raised if an attempt is made to use a deactivated `ObjectAdapter`.

`ObjectAdapterIdInUseException`

  This exception is raised if an `ObjectAdapter` cannot be activated because the `Locator` detected another active `ObjectAdapter` with the same adapter id.

`ObjectNotExistException`

  This exception is raised if an object does not exist on the server, that is, if no facets with the given identity exist.

`ObjectNotFoundException`

  This exception is raised if an object cannot be found.

`OperationNotExistException`

  This exception is raised if an operation for a given object does not exist on the server.

`PluginInitializationException`

  This exception indicates that a failure occurred while initializing a plug-in.

`ProtocolException`

  A generic exception base for all kinds of protocol error conditions.

`ProxyParseException`

  This exception is raised if there was an error while parsing a stringified proxy.

`ProxyUnmarshalException`

  This exception is a specialization of `MarshalException` that is raised if inconsistent data is received while unmarshaling a proxy.

`RequestFailedException`

  This exception is raised if a request failed.

`SecurityException`

  This exception indicates a failure in a security subsystem, such as the IceSSL plugin.

`ServerNotFoundException`

  This exception is raised if a server cannot be found.

`SocketException`

  This exception is a specialization of `SyscallException` for socket errors.

`StringConversionException`

  This exception is a specialization of `MarshalException` that is raised when a string conversion to or from UTF-8 fails during marshaling or unmarshaling.

`SyscallException`

  This exception is raised if a system error occurred in the server or client process.

`TimeoutException`

  This exception indicates a timeout condition.

`TwowayOnlyException`

  This exception is raised if an attempt is made to invoke an operation with `ice_oneway`, `ice_batchOneway`, `ice_datagram`, or `ice_batchDatagram` and the operation has a return value, out parameters, or an exception specification.

`UnknownException`

  This exception is raised if an operation call on a server raises an unknown exception.

`UnknownLocalException`

  This exception is raised if an operation call on a server raises a local exception.

`UnknownMessageException`

  This exception is a specialization of `ProtocolException`, indicating that an unknown protocol message has been received.

`UnknownReplyStatusException`

  This exception is a specialization of `ProtocolException`, indicating that an unknown reply status has been received.

`UnknownRequestIdException`

  This exception is a specialization of `ProtocolException`, indicating that a response for an unknown request id has been received.

`UnknownUserException`

  This exception is raised if an operation call on a server raises a user exception that is not declared in the exception's `throws` clause.

`UnmarshalOutOfBoundsException`

  This exception is a specialization of `MarshalException` that is raised if an out-of-bounds condition occurs during unmarshaling.

`UnsupportedEncodingException`

  This exception is a specialization of `ProtocolException`, indicating that an unsupported data encoding version has been encountered.

`UnsupportedProtocolException`

  This exception is a specialization of `ProtocolException`, indicating that an unsupported protocol version has been encountered.

`VersionMismatchException`

  This exception is raised if the Ice library version does not match the Ice header files version.

### Struct Index

`Current`

  Information about the current method invocation for servers.

`Identity`

  The identity of an Ice object.

### Sequence Index

BoolSeq

  A sequence of bools.

ByteSeq

  A sequence of bytes.

DoubleSeq

  A sequence of doubles.

EndpointSeq

FloatSeq

  A sequence of floats.

IdentitySeq

  A sequence of identities.

IntSeq

  A sequence of ints.

LongSeq

  A sequence of longs.

ObjectProxySeq

  A sequence of object proxies.

ObjectSeq

  A sequence of objects.

ShortSeq

  A sequence of shorts.

StringSeq

  A sequence of strings.

### Dictionary Index

Context

  A request context.

FacetMap

  A mapping from facet name to servant.

ObjectDict

  A mapping between identities and Ice objects.

PropertyDict

  A simple collection of properties, represented as a dictionary of key/value pairs.

SliceChecksumDict

### Enum Index

EndpointSelectionType

  Determines the order in which the Ice run time uses the endpoints in a proxy when establishing a connection.

OperationMode

  The OperationMode 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.

## `BoolSeq`

    sequence<bool> BoolSeq;

A sequence of bools.

## `ByteSeq`

    sequence<byte> ByteSeq;

A sequence of bytes.

### Used By

BadMagicException::badMagic, ::IcePatch2::ByteSeqSeq, ::IcePatch2::FileInfo::checksum, `::IcePatch2::FileServer::getChecksum`, `::IcePatch2::FileServer::getFileCompressed`

## `DoubleSeq`

    sequence<double> DoubleSeq;

A sequence of doubles.

## `EndpointSeq`

    local sequence<Endpoint> EndpointSeq;

## `FloatSeq`

    sequence<float> FloatSeq;

A sequence of floats.

## `IdentitySeq`

    sequence<Identity> IdentitySeq;

A sequence of identities.

### Used By

`::Glacier2::IdentitySet::add`, `::Glacier2::IdentitySet::get`, `::Glacier2::IdentitySet::remove`

## `IntSeq`

    sequence<int> IntSeq;

A sequence of ints.

## `LongSeq`

    sequence<long> LongSeq;

A sequence of longs.

## `ObjectProxySeq`

    sequence<Object*> ObjectProxySeq;

A sequence of object proxies.

### Used By

`Router::addProxies`, `Router::addProxies`, `::IceGrid::Query::findAllObjectsByType`

## `ObjectSeq`

    sequence<Object> ObjectSeq;

A sequence of objects.

## `ShortSeq`

    sequence<short> ShortSeq;

A sequence of shorts.

## `StringSeq`

    sequence<string> StringSeq;

A sequence of strings.

### Used By

::Glacier2::SSLInfo::certs, `::Glacier2::StringSet::add`, `::Glacier2::StringSet::get`, `::Glacier2::StringSet::remove`, `Properties::getCommandLineOptions`, `Properties::parseCommandLineOptions`, `Properties::parseCommandLineOptions`, `Properties::parseIceCommandLineOptions`, `Properties::parseIceCommandLineOptions`, `::IceBox::Service::start`, `::IceGrid::Admin::getAllAdapterIds`, `::IceGrid::Admin::getAllApplicationNames`, `::IceGrid::Admin::getAllNodeNames`, `::IceGrid::Admin::getAllServerIds`, ::IceGrid::ApplicationUpdateDescriptor::removeNodes, ::IceGrid::ApplicationUpdateDescriptor::removePropertySets, ::IceGrid::ApplicationUpdateDescriptor::removeReplicaGroups, ::IceGrid::ApplicationUpdateDescriptor::removeServerTemplates, ::IceGrid::ApplicationUpdateDescriptor::removeServiceTemplates, ::IceGrid::ApplicationUpdateDescriptor::removeVariables, ::IceGrid::DistributionDescriptor::directories, ::IceGrid::NodeUpdateDescriptor::removePropertySets, ::IceGrid::NodeUpdateDescriptor::removeServers, ::IceGrid::NodeUpdateDescriptor::removeVariables, ::IceGrid::PatchException::reasons, ::IceGrid::PropertySetDescriptor::references, ::IceGrid::ServerDescriptor::envs, ::IceGrid::ServerDescriptor::options, ::IceGrid::TemplateDescriptor::parameters

## `Context`

    dictionary<string, string> Context;

A request context. Context 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 Context as its implicit final parameter.

### Used By

`Communicator::getDefaultContext`, Current::ctx

## `FacetMap`

    local dictionary<string, Object> FacetMap;

A mapping from facet name to servant.

### Used By

`ObjectAdapter::findAllFacets`, `ObjectAdapter::removeAllFacets`

## `ObjectDict`

    local dictionary<Identity, Object> ObjectDict;

A mapping between identities and Ice objects.

## `PropertyDict`

    local dictionary<string, string> PropertyDict;

A simple collection of properties, represented as a dictionary of key/value pairs. Both key and value are strings.

### Used By

`Properties::getPropertiesForPrefix`

### See Also

`Properties::getPropertiesForPrefix`

## `SliceChecksumDict`

    dictionary<string, string> SliceChecksumDict;

### Used By

`::IceBox::ServiceManager::getSliceChecksums`, `::IceGrid::Admin::getSliceChecksums`, `::IceStorm::TopicManager::getSliceChecksums`

<<< Previous | Home | Next >>>
Slice Documentation | Up | `Ice::AdapterAlreadyActiveException`