/// <summary> /// To get accumulated data from the buffer and delete them. /// </summary> /// <returns>Gotten data.</returns> public IDictionary <TKey, IEnumerable <TMarketData> > Get() { return(_data.SyncGet(d => { var retVal = d.ToDictionary(p => p.Key, p => (IEnumerable <TMarketData>)p.Value); d.Clear(); return retVal; })); }
private void PulseWaiting() { foreach (var pair in _candleInfo.SyncGet(c => c.CopyAndClear())) { var candleInfo = pair.Value; this.AddWarningLog(LocalizedStrings.Str2150Params, candleInfo.Fourth); lock (candleInfo.Second) { candleInfo.Third = true; candleInfo.Second.Pulse(); } } foreach (var pair in _ticksInfo.SyncGet(c => c.CopyAndClear())) { var l1Info = pair.Value; this.AddWarningLog(LocalizedStrings.Str2151Params, l1Info.Fourth); lock (l1Info.Second) { l1Info.Third = true; l1Info.Second.Pulse(); } } }
public void RecycleCandles() { if (_container.CandlesKeepTime == TimeSpan.Zero) { return; } var diff = _lastCandleTime - _firstCandleTime; if (diff <= _container._maxCandlesKeepTime) { return; } _firstCandleTime = _lastCandleTime - _container.CandlesKeepTime.Ticks; _allCandles.SyncDo(list => { while (list.Count > 0) { if (list.First.Value.OpenTime.UtcTicks >= _firstCandleTime) { break; } _candleStat.Remove(list.First.Value); list.RemoveFirst(); } }); _byTime.SyncGet(d => d.RemoveWhere(p => p.Key < _firstCandleTime)); }
/// <summary> /// Create a copy of <see cref="OrderCondition"/>. /// </summary> /// <returns>Copy.</returns> public override OrderCondition Clone() { var clone = GetType().CreateInstance <OrderCondition>(); clone.Parameters.Clear(); // удаляем параметры по умолчанию clone.Parameters.AddRange(_parameters.SyncGet(d => d.ToArray())); return(clone); }
public override void Save(SettingsStorage storage) { if (storage == null) { throw new ArgumentNullException(nameof(storage)); } storage.SetValue("Controls", _dockingControlSettings.SyncGet(c => c.Select(p => p.Value).ToArray())); storage.SetValue("Layout", _layout); }
/// <inheritdoc /> public IEnumerable <Security> Lookup(SecurityLookupMessage criteria) { return(_inner.SyncGet(d => d.Values.Filter(criteria).ToArray()).Concat(_underlying.Lookup(criteria)).Distinct()); }
object ISecurityProvider.GetNativeId(Security security) { var finamId = _cacheByFinamId.SyncGet(d => d.FirstOrDefault(p => p.Value == security).Key); return(finamId.IsDefault() ? null : (object)finamId); }
object ISecurityProvider.GetNativeId(Security security) { return(_cacheByNativeId.SyncGet(d => d.FirstOrDefault(p => p.Value == security).Key)); }