private Maybe <int> GetBlockLevel(LBBTEntry blockEntry) { var dataBlock = dataReader.Read(blockEntry.BlockReference.ByteIndex.Value, blockEntry.GetBlockSize()); if (dataBlock.Value[0] == 0x01) { return(dataBlock.Value[1]); } return(Maybe <int> .NoValue()); }
public BID[] Read(LBBTEntry dataTreeEntry) { var dataTreeRootBlockLevel = GetBlockLevel(dataTreeEntry); if (dataTreeRootBlockLevel.HasNoValue) { return(new[] { dataTreeEntry.BlockReference.BlockId }); } return(EnumerateAndAdd(dataTreeEntry.BlockReference.BlockId, dataTreeRootBlockLevel.Value)); }
public static int GetBlockSize(this LBBTEntry entry) { return(Utilities.GetTotalExternalDataBlockSize(entry.ByteCountOfRawDataInReferencedBlockExcludingTrailerAndAlignmentPadding)); }