// ********************************************************************** // // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. // // This copy of Ice is licensed to you under the terms described in the // ICE_LICENSE file included in this distribution. // // ********************************************************************** namespace Ice { /// /// Base class that allows a server intercept incoming requests. /// The application must derive a concrete class from DispatchInterceptor /// that implements the DispatchInterceptor.dispatch operation. An instance of this derived /// class can be registered with an object adapter like any other servant. /// A dispatch interceptor is useful particularly to automatically retry requests /// that have failed due to a recoverable error condition. /// public abstract class DispatchInterceptor : ObjectImpl { /// /// Called by the Ice run time to dispatch an incoming request. The implementation /// of dispatch must dispatch the request to the actual servant. /// /// The details of the incoming request. /// The task if dispatched asynchronously, null otherwise. public abstract System.Threading.Tasks.Task dispatch(Request request); public override System.Threading.Tasks.Task iceDispatch(IceInternal.Incoming inc, Current current) { return dispatch(inc); } } }