internal LightPacket(LightPageReader reader, LightPacketProvider packetProvider, int index, IList <Tuple <long, int> > data) : base(data.Sum(p => p.Item2)) { _reader = reader; _packetProvider = packetProvider; Index = index; _dataSrc = data; }
/// <summary> /// Creates a new instance of <see cref="LightContainerReader"/>. /// </summary> /// <param name="stream">The <see cref="Stream"/> to read.</param> /// <param name="closeOnDispose"><c>True</c> to close the stream when disposed, otherwise <c>false</c>.</param> /// <exception cref="ArgumentException"><paramref name="stream"/>'s <see cref="Stream.CanSeek"/> is <c>False</c>.</exception> public LightContainerReader(Stream stream, bool closeOnDispose) { if (!(stream ?? throw new ArgumentNullException(nameof(stream))).CanSeek) { throw new ArgumentException("Stream must be seek-able!", nameof(stream)); } _reader = new LightPageReader(stream, closeOnDispose, NewStreamCallback); }
internal LightPacketProvider(LightPageReader reader) { _reader = reader ?? throw new ArgumentNullException(nameof(reader)); StreamSerial = _reader.StreamSerial; AddPage(); }
public void Dispose() { _pageOffsets.Clear(); _pageGranules.Clear(); _pagePacketCounts.Clear(); _pageContinuations.Clear(); _packetGranuleCounts.Clear(); _cachedPageIndex = null; _cachedSegments = null; _lastPacket = null; _isEndOfStream = true; _packetCount = 0; _reader = null; }
/// <summary> /// Cleans up /// </summary> public void Dispose() { _reader?.Dispose(); _reader = null; }