public bool TryReadTick(TickIO tickIO) { if (!isInitialized) { return(false); } if (isLegacy) { return(legacy.TryReadTick(tickIO)); } if (tickCount > MaxCount || endOfData) { return(false); } try { do { tickIO.SetSymbol(lSymbol); if (!fileBlock.TryReadTick(tickIO)) { ReadNextTickBlock(); if (!fileBlock.TryReadTick(tickIO)) { throw new InvalidOperationException("Unable to write the first tick in a new block."); } } dataVersion = fileBlock.DataVersion; if (tickIO.lUtcTime > EndTime.Internal) { ReportEndOfData(); return(false); } tickCount++; } while (tickIO.UtcTime < StartTime); return(true); } catch (EndOfStreamException ex) { ReportEndOfData(); return(false); } }