public bool Read(out T item) { if (buffer.IsEmpty() && readyToClose) { Close(); } item = default(T); return(!IsClosed && buffer.TryTake(out item)); }
private static void ProcessBuffer(IBuffer <double> buffer) { var sum = 0.0; Console.WriteLine("Buffer: "); while (!buffer.IsEmpty()) { sum += buffer.Read(); } Console.WriteLine(sum); }
private bool Step() { _next = NONE; while (_next == NONE) { if (_buffer.IsEmpty()) { if (_completed) { return(false); } else if (_sourceEnum.MoveNext()) { object iter; if (_multi) { iter = _xf.applyTo(RT.cons(null, _sourceEnum.Current)); } else { iter = _xf.invoke(null, _sourceEnum.Current); } if (RT.isReduced(iter)) { _xf.invoke(null); _completed = true; } } else { _xf.invoke(null); _completed = true; } } else { _next = _buffer.Remove(); } } return(true); }
private bool TryStoreBufferedValues() { if (dataBuffer.IsEmpty()) { return(true); } var packages = dataBuffer.GetValues(); try { logger.Info("Отправка данных из буфера в ИТС. Данных для сохранения: " + packages.Length); if (itsConnector.TryWritePackages(packages)) { logger.Info("Очистка буфера."); dataBuffer.Clear(); } return(true); } catch (Exception ex) { logger.Error("Ошибка при сохранении беферизированных данных."); return(false); } }