Ice.Object Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ice-compat Show documentation
Show all versions of ice-compat Show documentation
Ice is a comprehensive RPC framework that helps you build distributed applications with minimal effort using familiar object-oriented idioms
The newest version!
//
// Copyright (c) ZeroC, Inc. All rights reserved.
//
package Ice;
/**
* The base interface for servants.
**/
public interface Object
{
/**
* Returns a copy of the object. The cloned object contains field-for-field copies
* of the state.
*
* @return The cloned object.
* @throws java.lang.CloneNotSupportedException If cloning is not supported by the implementation.
**/
Object clone() throws java.lang.CloneNotSupportedException;
/**
* Tests whether this object supports a specific Slice interface.
*
* @param s The type ID of the Slice interface to test against.
* @return true
if this object has the interface
* specified by s
or derives from the interface
* specified by s
.
**/
boolean ice_isA(String s);
/**
* Tests whether this object supports a specific Slice interface.
*
* @param s The type ID of the Slice interface to test against.
* @param current The {@link Current} object for the invocation.
* @return true
if this object has the interface
* specified by s
or derives from the interface
* specified by s
.
**/
boolean ice_isA(String s, Current current);
/**
* Tests whether this object can be reached.
**/
void ice_ping();
/**
* Tests whether this object can be reached.
*
* @param current The {@link Current} object for the invocation.
**/
void ice_ping(Current current);
/**
* Returns the Slice type IDs of the interfaces supported by this object.
*
* @return The Slice type IDs of the interfaces supported by this object, in base-to-derived
* order. The first element of the returned array is always ::Ice::Object
.
**/
String[] ice_ids();
/**
* Returns the Slice type IDs of the interfaces supported by this object.
*
* @param current The {@link Current} object for the invocation.
* @return The Slice type IDs of the interfaces supported by this object, in base-to-derived
* order. The first element of the returned array is always ::Ice::Object
.
**/
String[] ice_ids(Current current);
/**
* Returns the Slice type ID of the most-derived interface supported by this object.
*
* @return The Slice type ID of the most-derived interface.
**/
String ice_id();
/**
* Returns the Slice type ID of the most-derived interface supported by this object.
*
* @param current The {@link Current} object for the invocation.
* @return The Slice type ID of the most-derived interface.
**/
String ice_id(Current current);
/**
* Returns the Freeze metadata attributes for an operation.
*
* @param operation The name of the operation.
* @return The least significant bit indicates whether the operation is a read
* or write operation. If the bit is set, the operation is a write operation.
* The expression ice_operationAttributes("op") & 0x1
is true if
* the operation has a ["freeze:write"]
metadata directive.
*
* The second and third least significant bit indicate the transactional mode
* of the operation. The expression ice_operationAttributes("op") & 0x6 >> 1
* indicates the transactional mode as follows:
*
* - 0
* ["freeze:read:supports"]
* - 1
* ["freeze:read:mandatory"]
or ["freeze:write:mandatory"]
* - 2
* ["freeze:read:required"]
or ["freeze:write:required"]
* - 3
* ["freeze:read:never"]
*
*
* Refer to the Freeze manual for more information on the TransactionalEvictor.
**/
int ice_operationAttributes(String operation);
/**
* The Ice run time invokes this method prior to marshaling an object's data members. This allows a subclass
* to override this method in order to validate its data members.
**/
void ice_preMarshal();
/**
* The Ice run time invokes this method vafter unmarshaling an object's data members. This allows a
* subclass to override this method in order to perform additional initialization.
**/
void ice_postUnmarshal();
/**
* Returns the sliced data if the value has a preserved-slice base class and has been sliced during
* un-marshaling of the value, null is returned otherwise.
*
* @return The sliced data or null.
**/
SlicedData ice_getSlicedData();
/**
* Dispatches an invocation to a servant. This method is used by dispatch interceptors to forward an invocation
* to a servant (or to another interceptor).
*
* @param request The details of the invocation.
* @param cb The callback object for asynchronous dispatch. For synchronous dispatch, the callback object
* must be null
.
* @return True for asynchronous dispatch, false otherwise.
* @throws UserException A user exception that propagates out of this method will be marshaled as the result.
*
* @see DispatchInterceptor
* @see DispatchInterceptorAsyncCallback
**/
boolean ice_dispatch(Request request, DispatchInterceptorAsyncCallback cb)
throws Ice.UserException;
/**
* Dispatches an invocation to a servant. This method is used by dispatch interceptors to forward an invocation
* to a servant (or to another interceptor).
*
* @param request The details of the invocation.
* @return True for asynchronous dispatch, false otherwise.
* @throws UserException A user exception that propagates out of this method will be marshaled as the result.
*
* @see DispatchInterceptor
**/
boolean ice_dispatch(Request request)
throws Ice.UserException;
boolean _iceDispatch(IceInternal.Incoming in, Current current)
throws Ice.UserException;
void _iceWrite(OutputStream ostr);
void _iceRead(InputStream istr);
public static final String ice_staticId = "::Ice::Object";
}