private void Check(bool isHistory, MapsFolder mapsFolder) { TicksFileData ticksFileData = isHistory ? _history : _cache; if (ticksFileData == null) { return; } TicksFileMapData[] mapsFiles = mapsFolder.Pop(_symbolName); List <TicksFileMapData> listDelete = new List <TicksFileMapData>(); foreach (TicksFileMapData mapFile in mapsFiles) { if (ticksFileData.Count == mapFile.CountTicks) { if (isHistory) { _map.History = mapFile; } else { _map.Cache = mapFile; } } else { listDelete.Add(mapFile); } } foreach (TicksFileMapData barsFile in listDelete) { barsFile.CloseStream(); barsFile.File.Delete(); } }
public void InitializeMapsFiles(MapsFolder mapsFolderHistory, MapsFolder mapsFolderCache) { _dirMapsHistory = mapsFolderHistory.Directory; _dirMapsCache = mapsFolderCache.Directory; this.Check(true, mapsFolderHistory); this.Check(false, mapsFolderCache); }
public ISymbol Create(string symbolName, int digits) { Symbol symbol = this[symbolName] as Symbol; if (symbol != null) { return(symbol); } TicksManager tm = new TicksManager(); tm.History = new TicksFileData(_dirHistory, symbolName, digits); tm.Cache = new TicksFileData(_dirCache, symbolName, digits); BarsFolder barsFolderHistory = new BarsFolder(_dirHistory); BarsFolder barsFolderCache = new BarsFolder(_dirCache); MapsFolder mapsFolderHistory = new MapsFolder(_dirHistory); MapsFolder mapsFolderCache = new MapsFolder(_dirCache); tm.InitializeBarsFiles(barsFolderHistory, barsFolderCache); tm.InitializeMapsFiles(mapsFolderHistory, mapsFolderCache); symbol = new Symbol(tm); return(symbol); }
public void Load() { List <FileInfo> filesHistory = new List <FileInfo>(); List <FileInfo> filesCache = new List <FileInfo>(); Dictionary <string, TicksManager> symbols = new Dictionary <string, TicksManager>(); FileInfo[] files = _dirHistory.GetFiles("*." + TICKS_FILE_EXT); foreach (FileInfo file in files) { try { TicksManager ticksManager = new TicksManager(); ticksManager.History = new TicksFileData(file); symbols.Add(ticksManager.Name, ticksManager); } catch (Exception e) { Trace.TraceError("Load {0} - {1}", file.FullName, e.Message); } } files = _dirCache.GetFiles("*." + TICKS_FILE_EXT); foreach (FileInfo file in files) { try { TicksManager ticksManager = null; TicksFileData fileData = new TicksFileData(file); symbols.TryGetValue(fileData.SymbolName, out ticksManager); if (ticksManager == null) { ticksManager = new TicksManager(); symbols.Add(fileData.SymbolName, ticksManager); } ticksManager.Cache = fileData; } catch (Exception e) { Trace.TraceError("Load {0} - {1}", file.FullName, e.Message); } } BarsFolder barsFolderHistory = new BarsFolder(_dirHistory); BarsFolder barsFolderCache = new BarsFolder(_dirCache); MapsFolder mapsFolderHistory = new MapsFolder(_dirHistory); MapsFolder mapsFolderCache = new MapsFolder(_dirCache); this.Clear(); foreach (TicksManager ticks in symbols.Values) { if (ticks.History == null) { ticks.History = new TicksFileData(_dirHistory, ticks.Name, ticks.Digits); } if (ticks.Cache == null) { ticks.Cache = new TicksFileData(_dirCache, ticks.Name, ticks.Digits); } ticks.InitializeBarsFiles(barsFolderHistory, barsFolderCache); ticks.InitializeMapsFiles(mapsFolderHistory, mapsFolderCache); Symbol symbol = new Symbol(ticks); this.Add(symbol); } barsFolderHistory.DeleteEmpty(); barsFolderCache.DeleteEmpty(); }