Beispiel #1
0
 /// <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));
     }
 }
Beispiel #2
0
 /// <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");
 }