private void ConfigurationStreamRequestEndGetResponse(IAsyncResult ar) { try { var request = (WebRequest)ar.AsyncState; var response = request.EndGetResponse(ar); // Allocate new string reader and start reading _linesStreamReader = new AsyncLinesStreamReader(response.GetResponseStream()); _linesStreamReader.OnError += HandleLinesStreamError; _linesStreamReader.OnChunk += HandleConfigurationUpdate; _linesStreamReader.StartReading(); } catch (Exception e) { if (OnError != null) { OnError(e); } // Handle HTTP query errors by trying another host RetryConnectingToConfigurationStream(1); } }
public void SetUp() { _errors = _chunks = 0; _stream = Stream.Synchronized(new MemoryStream()); _reader = new AsyncLinesStreamReader(_stream); _reader.OnError += _ => { _errors++; }; _reader.OnChunk += _ => { _chunks++; }; _reader.StartReading(); }
public void SetUp() { var localCounters = new TestCounters(); _counters = localCounters; _pipe = new Aqueduct(); _reader = new AsyncLinesStreamReader(_pipe.Out); _reader.OnError += e => { localCounters.IncrementErrors(); Console.Error.WriteLine(e.Message); Console.Error.WriteLine(e.StackTrace); }; _reader.OnChunk += _ => { localCounters.IncrementChunks(); }; _reader.StartReading(); }
private void ConfigurationStreamRequestEndGetResponse(IAsyncResult ar) { if (_linesStreamReader != null) { OnError(new MemcacheException("Sanity check: The previous AsyncLinesStreamReader was not disposed")); return; } if (_webResponse != null) { OnError(new MemcacheException("Sanity check: The previous WebResponse was not disposed")); return; } WebResponse response = null; AsyncLinesStreamReader linesStreamReader = null; try { var request = (WebRequest)ar.AsyncState; response = request.EndGetResponse(ar); // Allocate new string reader and start reading linesStreamReader = new AsyncLinesStreamReader(response.GetResponseStream()); linesStreamReader.OnError += HandleLinesStreamError; linesStreamReader.OnChunk += HandleConfigurationUpdate; lock (this) if (!_isDisposed) { _webResponse = response; _linesStreamReader = linesStreamReader; } else { response.Dispose(); linesStreamReader.Dispose(); return; } _linesStreamReader.StartReading(); } catch (Exception e) { if (OnError != null) { OnError(e); } if (response != null) { response.Dispose(); } _webResponse = null; if (linesStreamReader != null) { linesStreamReader.Dispose(); } _linesStreamReader = null; // Handle HTTP query errors by trying another host RetryConnectingToConfigurationStream(delaySeconds: 1.0); } }