This document describes Ice version 3.4.2.

Skip to end of metadata
Go to start of metadata

Although the core proxy functionality is supplied by a language-specific base class, we can describe the proxy methods in terms of Slice operations as shown below:

Slice
bool ice_isA(string id);
void ice_ping();
StringSeq ice_ids();
string ice_id();
int ice_getHash();
Communicator ice_getCommunicator();
string ice_toString();
Object* ice_identity(Identity id);
Identity ice_getIdentity();
Object* ice_adapterId(string id);
string ice_getAdapterId();
Object* ice_endpoints(EndpointSeq endpoints);
EndpointSeq ice_getEndpoints();
Object* ice_endpointSelection(EndpointSelectionType t);
EndpointSelectionType ice_getEndpointSelection();
Object* ice_context(Context ctx);
Context ice_getContext();
Object* ice_defaultContext();
Object* ice_facet(string facet);
string ice_getFacet();
Object* ice_twoway();
bool ice_isTwoway();
Object* ice_oneway();
bool ice_isOneway();
Object* ice_batchOneway();
bool ice_isBatchOneway();
Object* ice_datagram();
bool ice_isDatagram();
Object* ice_batchDatagram();
bool ice_isBatchDatagram();
Object* ice_secure(bool b);
bool ice_isSecure();
Object* ice_preferSecure(bool b);
bool ice_isPreferSecure();
Object* ice_compress(bool b);
Object* ice_timeout(int timeout);
Object* ice_router(Router* rtr);
Router* ice_getRouter();
Object* ice_locator(Locator* loc);
Locator* ice_getLocator();
Object* ice_locatorCacheTimeout(int seconds);
int ice_getLocatorCacheTimeout();
Object* ice_collocationOptimized(bool b);
bool ice_isCollocationOptimized();
Object* ice_connectionId(string id);
string ice_getConnectionId();
Connection ice_getConnection();
Connection ice_getCachedConnection();
Object* ice_connectionCached(bool b);
bool ice_isConnectionCached();
void ice_flushBatchRequests();
bool ice_invoke(string operation, OperationMode mode,
                ByteSeq inParams, out ByteSeq outParams);

These methods can be categorized as follows:

  • Remote inspection: methods that return information about the remote object. These methods make remote invocations and therefore accept an optional trailing argument of type Ice::Context.
  • Local inspection: methods that return information about the proxy's local configuration.
  • Factory: methods that return new proxy instances configured with different features.
  • Request processing: methods that flush batch requests and send "dynamic" Ice invocations.

Proxies are immutable, so factory methods allow an application to obtain a new proxy with the desired configuration. Factory methods essentially clone the original proxy and modify one or more features of the new proxy.

Many of the factory methods are not supported by fixed proxies, which are used in conjunction with bidirectional connections. Attempting to invoke one of these methods causes the Ice run time to raise FixedProxyException.

The core proxy methods are explained in greater detail in the following table:

Method Description Remote
ice_isA Returns true if the remote object supports the type indicated by the id argument, otherwise false. This method can only be invoked on a twoway proxy. Yes
ice_ping Determines whether the remote object is reachable. Does not return a value. Yes
ice_ids Returns the type IDs of the types supported by the remote object. The return value is an array of strings. This method can only be invoked on a twoway proxy. Yes
ice_id Returns the type ID of the most-derived type supported by the remote object. This method can only be invoked on a twoway proxy. Yes
ice_getHash Returns a hash value for the proxy for C++. For other language mappings, use the built-in hash method. No
ice_getCommunicator Returns the communicator that was used to create this proxy. No
ice_toString Returns the string representation of the proxy. No
ice_identity Returns a new proxy having the given identity. No
ice_getIdentity Returns the identity of the Ice object represented by the proxy. No
ice_adapterId Returns a new proxy having the given adapter ID. No
ice_getAdapterId Returns the proxy's adapter ID, or an empty string if no adapter ID is configured. No
ice_endpoints Returns a new proxy having the given endpoints. No
ice_getEndpoints Returns a sequence of Endpoint objects representing the proxy's endpoints. No
ice_endpointSelection Returns a new proxy having the given endpoint selection policy (random or ordered). No
ice_getEndpointSelection Returns the endpoint selection policy for the proxy. No
ice_context Returns a new proxy having the given request context. No
ice_getContext Returns the request context associated with the proxy. No
ice_facet Returns a new proxy having the given facet name. No
ice_getFacet Returns the name of the facet associated with the proxy, or an empty string if no facet has been set. No
ice_twoway Returns a new proxy for making twoway invocations. No
ice_isTwoway Returns true if the proxy uses twoway invocations, otherwise false. No
ice_oneway Returns a new proxy for making oneway invocations. No
ice_isOneway Returns true if the proxy uses oneway invocations, otherwise false. No
ice_batchOneway Returns a new proxy for making batch oneway invocations. No
ice_isBatchOneway Returns true if the proxy uses batch oneway invocations, otherwise false. No
ice_datagram Returns a new proxy for making datagram invocations. No
ice_isDatagram Returns true if the proxy uses datagram invocations, otherwise false. No
ice_batchDatagram Returns a new proxy for making batch datagram invocations. No
ice_isBatchDatagram Returns true if the proxy uses batch datagram invocations, otherwise false. No
ice_secure Returns a new proxy whose endpoints may be filtered depending on the boolean argument. If true, only endpoints using secure transports are allowed, otherwise all endpoints are allowed. No
ice_isSecure Returns true if the proxy uses only secure endpoints, otherwise false. No
ice_preferSecure Returns a new proxy whose endpoints are filtered depending on the boolean argument. If true, endpoints using secure transports are given precedence over endpoints using non-secure transports. If false, the default behavior gives precedence to endpoints using non-secure transports. No
ice_isPreferSecure Returns true if the proxy prefers secure endpoints, otherwise false. No
ice_compress Returns a new proxy whose protocol compression capability is determined by the boolean argument. If true, the proxy uses protocol compression if it is supported by the endpoint. If false, protocol compression is never used. No
ice_timeout Returns a new proxy with the given timeout value in milliseconds. A value of -1 disables timeouts. No
ice_router Returns a new proxy configured with the given router proxy. No
ice_getRouter Returns the router that is configured for the proxy (null if no router is configured). No
ice_locator Returns a new proxy with the specified locator. No
ice_getLocator Returns the locator that is configured for the proxy (null if no locator is configured). No
ice_locatorCacheTimeout Returns a new proxy with the specified locator cache timeout. When binding a proxy to an endpoint, the run time caches the proxy returned by the locator and uses the cached proxy while the cached proxy has been in the cache for less than the timeout. Proxies older than the timeout cause the run time to rebind via the locator. A value of 0 disables caching entirely, and a value of -1 means that cached proxies never expire. The default value is -1. No
ice_getLocatorCacheTimeout Returns the locator cache timeout value in seconds. No
ice_collocationOptimized Returns a new proxy configured for collocation optimization. If true, collocated optimizations are enabled. The default value is true. No
ice_isCollocationOptimized Returns true if the proxy uses collocation optimization, otherwise false. No
ice_connectionId Returns a new proxy having the given connection ID. No
ice_getConnectionId Returns the connection ID, or an empty string if no connection ID has been configured. No
ice_getConnection Returns an object representing the connection used by the proxy. If the proxy is not currently associated with a connection, the Ice run time attempts to establish a connection first. No
ice_getCachedConnection Returns an object representing the connection used by the proxy, or null if the proxy is not currently associated with a connection. No
ice_connectionCached Enables or disables connection caching for the proxy. No
ice_isConnectionCached Returns true if the proxy uses connection caching, otherwise false. No
ice_flushBatchRequests
begin_ice_flushBatchRequests
Sends a batch of operation invocations synchronously or asynchronously. Yes
ice_invoke
begin_ice_invoke
Allows dynamic invocation of an operation without the need for compiled Slice definitions. Requests can be sent synchronously or asynchronously. Yes
See Also
Return to the Ice Manual.
Labels:
None
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.