/// <summary> /// Parse the specified SymbolTableEntry frome aStreamProvider and aLocation. /// </summary> /// <returns>The parsed SymbolTableEntry</returns> /// <param name="aStreamProvider">A stream provider.</param> /// <param name="aLocation">The location in the stream of the SymbolTableEntry</param> public static SymbolTableEntry Parse( IHdfStreamProvider aStreamProvider, long aLocation) { using (Hdf5Reader aReader = aStreamProvider.GetReader()) { return(Read(aReader)); } }
/// <summary> /// Initializes a new instance of the <see cref="T:ndf5.Infrastructure.BTrees.V1.Node"/> class. /// </summary> /// <param name="aStreamProvider">A stream provider.</param> /// <param name="aLocation">A location in the stream of this Node</param> public static Node Parse( IHdfStreamProvider aStreamProvider, Offset aLocation) { using (Hdf5Reader fReader = aStreamProvider.GetReader()) { return(new Node(fReader, aLocation)); } }
public IObjectHeader ReadHeaderAt(long aHeaderLocation) { using (Hdf5Reader fReader = mrStreamProvider.GetReader()) { const int fcHeadBytes = 4; byte[] fHead = new byte[fcHeadBytes]; if (fcHeadBytes != fReader.Read(fHead, 0, fcHeadBytes)) { throw new System.IO.EndOfStreamException( $"Could not read header at 0x{aHeaderLocation:x16}"); } if (fHead[0] == 1 && fHead[1] == 0) { return(V1ObjectHeader.Read(fHead, fReader)); } if (fHead.Zip(msrV2Header, (arg1, arg2) => arg1 == arg2).All(a => a)) { return(V2ObjectHeader.Read(fReader)); } } throw new Exceptions.CorruptObjectHeader("Could not determine Header version"); }