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

com.zeroc.Ice.Blobject 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 com.zeroc.Ice;

import java.util.concurrent.CompletionStage;

/**
 * Base class for dynamic dispatch servants. A server application
 * derives a concrete servant class from Blobject that
 * implements the {@link Blobject#ice_invoke} method.
 **/
public interface Blobject extends com.zeroc.Ice.Object
{
    /**
     * Dispatch an incoming request.
     *
     * @param inEncaps The encoded in-parameters for the operation.
     * @param current The Current object to pass to the operation.
     * @return The method returns an instance of Ice_invokeResult.
     * If the operation completed successfully, set the returnValue
     * member to true and the outParams member to
     * the encoded results. If the operation raises a user exception, you can
     * either throw it directly or set the returnValue member to
     * false and the outParams member to the encoded
     * user exception. If the operation raises an Ice run-time exception, it
     * must throw it directly.
     * @throws UserException A user exception can be raised directly and the
     * run time will marshal it.
     **/
    com.zeroc.Ice.Object.Ice_invokeResult ice_invoke(byte[] inEncaps, Current current)
        throws UserException;

    /** @hidden */
    @Override
    default CompletionStage _iceDispatch(com.zeroc.IceInternal.Incoming in, Current current)
        throws UserException
    {
        byte[] inEncaps = in.readParamEncaps();
        com.zeroc.Ice.Object.Ice_invokeResult r = ice_invoke(inEncaps, current);
        return in.setResult(in.writeParamEncaps(in.getAndClearCachedOutputStream(), r.outParams, r.returnValue));
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy