Пример #1
0
 /// <summary>
 /// Dispatches an invocation to a servant. This method is used by dispatch interceptors to forward an invocation
 /// to a servant (or to another interceptor).
 /// </summary>
 /// <param name="request">The details of the invocation.</param>
 /// <param name="cb">The callback object for asynchchronous dispatch. For synchronous dispatch, the
 /// callback object must be null.</param>
 /// <returns>The dispatch status for the operation.</returns>
 public virtual DispatchStatus ice_dispatch(Request request, DispatchInterceptorAsyncCallback cb)
 {
     if (request.isCollocated())
     {
         return(collocDispatch__((IceInternal.Direct)request));
     }
     else
     {
         IceInternal.Incoming inc = (IceInternal.Incoming)request;
         if (cb != null)
         {
             inc.push(cb);
         }
         try
         {
             inc.startOver(); // may raise ResponseSentException
             return(dispatch__(inc, inc.getCurrent()));
         }
         finally
         {
             if (cb != null)
             {
                 inc.pop();
             }
         }
     }
 }
Пример #2
0
 /// <summary>
 /// Dispatches an invocation to a servant. This method is used by dispatch interceptors to forward an invocation
 /// to a servant (or to another interceptor).
 /// </summary>
 /// <param name="request">The details of the invocation.</param>
 /// <param name="cb">The callback object for asynchchronous dispatch. For synchronous dispatch, the
 /// callback object must be null.</param>
 /// <returns>The dispatch status for the operation.</returns>
 public virtual DispatchStatus ice_dispatch(Request request, DispatchInterceptorAsyncCallback cb)
 {
     if(request.isCollocated())
     {
         return collocDispatch__((IceInternal.Direct)request);
     }
     else
     {
         IceInternal.Incoming inc = (IceInternal.Incoming)request;
         if(cb != null)
         {
             inc.push(cb);
         }
         try
         {
             inc.startOver(); // may raise ResponseSentException
             return dispatch__(inc, inc.getCurrent());
         }
         finally
         {
             if(cb != null)
             {
                 inc.pop();
             }
         }
     }
 }