FastQuant.FileDataServer.GetBarDataSeriesInCache C# (CSharp) Méthode

GetBarDataSeriesInCache() private méthode

private GetBarDataSeriesInCache ( Instrument instrument, BarType barType, long barSize, bool createNotExist ) : DataSeries
instrument Instrument
barType BarType
barSize long
createNotExist bool
Résultat DataSeries
        private DataSeries GetBarDataSeriesInCache(Instrument instrument, BarType barType, long barSize, bool createNotExist)
        {
            var iId = instrument.Id;
            DataSeries dataSeries;
            if (barType == BarType.Time && barSize <= TimeSpan.TicksPerDay / TimeSpan.TicksPerSecond)
            {
                this.byIId_BSize[iId] = this.byIId_BSize[iId] ?? new IdArray<DataSeries>();
                dataSeries = this.byIId_BSize[iId][(int)barSize];
            }
            else
            {
                this.byType_IId_BSize[(int)barType] = this.byType_IId_BSize[(int)barType] ?? new IdArray<Dictionary<long, DataSeries>>();
                this.byType_IId_BSize[(int)barType][iId] = this.byType_IId_BSize[(int)barType][iId] ?? new Dictionary<long, DataSeries>();
                this.byType_IId_BSize[(int)barType][iId].TryGetValue(barSize, out dataSeries);
            }
            if (dataSeries != null)
                return dataSeries;

            string name = DataSeriesNameHelper.GetName(instrument, barType, barSize);
            dataSeries = GetDataSeries(name);
            if (dataSeries == null && createNotExist)
            {
                dataSeries = CreateDataSeries(name);
                this.dataFile.Write(name, dataSeries);
                this.dataFile.Flush();
            }

            // Save to cache
            if (barType == BarType.Time && barSize <= TimeSpan.TicksPerDay / TimeSpan.TicksPerSecond)
                this.byIId_BSize[iId][(int)barSize] = dataSeries;
            else
                this.byType_IId_BSize[(int)barType][iId][barSize] = dataSeries;

            return dataSeries;
        }