private void ReadHeader() { using (var reader = new TeraDataReader(_stream)) { _stream.Position = 0x0C; Revision = reader.ReadInt32(); } }
public static IEnumerable <T> ReadAll <T>(Stream stream, Func <TeraDataReader, T> readOne) { using (var reader = new TeraDataReader(stream)) { while (reader.BaseStream.Position < reader.BaseStream.Length) { yield return(readOne(reader)); } if (reader.BaseStream.Position > reader.BaseStream.Length) { throw new Exception("Read beyond the end"); } } }
private List <KeyValuePair <SegmentAddress, T> > ReadSegmented <T>(IEnumerable <DataCenterRegion> regions, Func <TeraDataReader, T> readOne) { return(Flatten(regions.Select(region => ReadAll(region, TeraDataReader.WithOffset(readOne, region.ElementSize))))); }
private List <T> ReadAll <T>(DataCenterRegion region, Func <TeraDataReader, T> readOne) { return(TeraDataReader.ReadAll(GetStreamForRegion(region), readOne).ToList()); }