public void SetError(ProtoChannelException exception) { foreach (var message in _pendingMessages.Values) { message.SetAsCompleted(exception, false); } }
public void SetError(ProtoChannelException exception) { foreach (var stream in _streams.Values) { stream.SetAsFailed(exception); } }
private void ProcessErrorPackage(PendingPackage package) { var error = (Messages.Error)ReadMessage( TypeModel, typeof(Messages.Error), (int)package.Length ); var exception = new ProtoChannelException((ProtocolError)error.ErrorNumber); _messageManager.SetError(exception); _receiveStreamManager.SetError(exception); RaiseUnhandledException(exception); Dispose(); }
protected override void Dispose(bool disposing) { lock (SyncRoot) { if (!_disposed && disposing) { // Cancel all outstanding requests. var disconnectException = new ProtoChannelException("Channel disconnected"); _messageManager.SetError(disconnectException); _receiveStreamManager.SetError(disconnectException); if (Client != null) { Client.Dispose(); Client = null; } _disposed = true; } } base.Dispose(disposing); }