public IObserveOperationResult ExecuteObserveOperation(IObserveOperation op) { var readResult = new ObserveOperationResult(); var result = this.Acquire(); if (result.Success && result.HasValue) { try { var socket = result.Value; var b = op.GetBuffer(); socket.Write(b); readResult = op.ReadResponse(socket) as ObserveOperationResult; if (readResult.Success) { readResult.Pass(); } else { readResult.InnerResult = result; readResult.Fail("Failed to read response, see inner result for details"); } return(readResult); } catch (IOException e) { log.Error(e); readResult.Fail("Exception reading response", e); return(readResult); } finally { ((IDisposable)result.Value).Dispose(); } } else { readResult.Fail("Failed to obtain socket from pool"); return(readResult); } }
public IObserveOperationResult ExecuteObserveOperation(IObserveOperation op) { var readResult = new ObserveOperationResult(); var result = this.Acquire(); if (result.Success && result.HasValue) { try { var socket = result.Value; var b = op.GetBuffer(); socket.Write(b); readResult = op.ReadResponse(socket) as ObserveOperationResult; if (readResult.Success) { readResult.Pass(); } else { readResult.InnerResult = result; readResult.Fail("Failed to read response, see inner result for details"); } return readResult; } catch (IOException e) { log.Error(e); readResult.StatusCode = StatusCode.UnspecifiedError; readResult.Fail("Exception reading response", e); return readResult; } finally { ((IDisposable)result.Value).Dispose(); } } else { result.Combine(readResult); return readResult; } }