virtual bool completed(const Exception& ex) { _childObserver.failed(ex.ice_name()); _childObserver.detach(); _outAsync->check(false); return false; }
bool ProxyOutgoingAsyncBase::completed(const Exception& exc) { if(_childObserver) { _childObserver.failed(exc.ice_name()); _childObserver.detach(); } _cachedConnection = 0; 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 false; } catch(const Exception& ex) { return finished(ex); // No retries, we're done } }
bool OutgoingAsyncBase::finished(const Exception& ex) { if(_childObserver) { _childObserver.failed(ex.ice_name()); _childObserver.detach(); } return AsyncResult::finished(ex); }