public void Cleanup() { if (Size < 0 && Timeout < 0) { return; //no nead for cleanup } while (Size >= 0 && Buffer.Count > Size) { if (Buffer.Remove(Buffer.Keys.First())) { _TickerCleanup.SetNow(); } } var keys = Keys; if (keys.IsNullOrEmpty()) { return; } foreach (var v in keys) { if (v.Timeout(Timeout, TimeoutUnit)) { if (Buffer.Remove(v)) { _TickerCleanup.SetNow(); } } } }
public T[] ReadAllValues() { this.Cleanup(); T[] result = Buffer.ValuesArray; _TickerRead.SetNow(); return(result); }
public void Write(T data, TickTime time) { Cleanup(); Buffer.Add(time.Copy(), data, true); _TickerWrite.SetNow(); }
public void Write(T data, TickTime time) { if (Size > 0 && Buffer.Count > Size) { this.Cleanup(); } Buffer.Add(time.Copy(), data); _TickerWrite.SetNow(); }
public void Cleanup() { var keys = Buffer.KeysArray; if (keys.IsNullOrEmpty()) { return; } foreach (var v in keys) { if (v.Timeout(Timeout, TimeoutUnit)) { Buffer.Remove(v); } } _TickerCleanup.SetNow(); }
public T ReadNext(out TickTime time, TickTime previous) { T result = default(T); time = previous.Copy(); var keys = Buffer.KeysArray; foreach (var key in keys) { if (key > time) { time = key; result = Buffer[key]; } } _TickerRead.SetNow(); return(result); }
public void Clear() { Buffer.Clear(); _TickerClear.SetNow(); }