All Downloads are FREE. Search and download functionalities are using the official Maven repository.

Ice.Object Maven / Gradle / Ivy

Go to download

Ice is a comprehensive RPC framework that helps you build distributed applications with minimal effort using familiar object-oriented idioms

There is a newer version: 3.7.10
Show 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"; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy