protected override sealed void OnBarUpdate() { GOnBarUpdate(); if (BarsInProgress == 0) { if (Historical) { MasterInstrument MI = Bars.Instrument.MasterInstrument; if ((Bars.FirstBarOfSession || (BarsPeriod.Id == PeriodType.Day)) && (MI.InstrumentType == InstrumentType.Future) && (MI.MergePolicy != MergePolicy.DoNotMerge) && !_writeData && !Bars.Instrument.FullName.Contains("##-##")) { _RolloverContract(); } _OnBarUpdateHistorical(); } else { if (_dataManagerNotDisposedOf) { if (!_writeData) { _fm.Dispose(); _fm = null; _dataManagerNotDisposedOf = false; } } _OnBarUpdateRealTime(); } GOnBarUpdateDone(); } }
static GDataManagerList() { var types = from t in Assembly.GetExecutingAssembly().GetTypes() where t.IsClass && !t.IsAbstract && (t.GetInterface(typeof(IGDataManager).Name) != null) select t; foreach (var type in types) { IGDataManager instance = (IGDataManager)Activator.CreateInstance(type); Name.Add((string)(type.GetProperty("Name").GetValue(instance, null))); Writable.Add((bool)(type.GetProperty("IsWritable").GetValue(instance, null))); MillisecCompliant.Add((bool)(type.GetProperty("IsMillisecCompliant").GetValue(instance, null))); Type.Add(type); instance.Dispose(); } }