示例#1
0
 protected Ice.AsyncCallback finished(Ice.Exception ex)
 {
     lock (this)
     {
         state_              |= StateDone;
         _exception           = ex;
         _cancellationHandler = null;
         if (observer_ != null)
         {
             observer_.failed(ex.ice_name());
         }
         if (_completedCallback == null)
         {
             if (observer_ != null)
             {
                 observer_.detach();
                 observer_ = null;
             }
         }
         if (_waitHandle != null)
         {
             _waitHandle.Set();
         }
         System.Threading.Monitor.PulseAll(this);
         return(_completedCallback);
     }
 }
示例#2
0
        public override Ice.AsyncCallback completed(Ice.Exception exc)
        {
            if (childObserver_ != null)
            {
                childObserver_.failed(exc.ice_name());
                childObserver_.detach();
                childObserver_ = null;
            }

            cachedConnection_ = null;
            if (proxy_.reference__().getInvocationTimeout() == -2)
            {
                instance_.timer().cancel(this);
            }

            //
            // NOTE: at this point, synchronization isn't needed, no other threads should be
            // calling on the callback.
            //
            try
            {
                //
                // It's important to let the retry queue do the retry even if
                // the retry interval is 0. This method can be called with the
                // connection locked so we can't just retry here.
                //
                instance_.retryQueue().add(this, handleException(exc));
                return(null);
            }
            catch (Ice.Exception ex)
            {
                return(finished(ex)); // No retries, we're done
            }
        }
示例#3
0
 protected new Ice.AsyncCallback finished(Ice.Exception ex)
 {
     if (childObserver_ != null)
     {
         childObserver_.failed(ex.ice_name());
         childObserver_.detach();
         childObserver_ = null;
     }
     return(base.finished(ex));
 }
示例#4
0
 public override Ice.AsyncCallback completed(Ice.Exception ex)
 {
     if (childObserver_ != null)
     {
         childObserver_.failed(ex.ice_name());
         childObserver_.detach();
         childObserver_ = null;
     }
     _outAsync.doCheck(false);
     return(null);
 }
示例#5
0
 private void exception(ref bool haveResponse, Ice.Exception ex)
 {
     haveResponse   = true;
     lblStatus.Text = "Exception: " + ex.ice_name();
 }