Пример #1
0
        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());
        }
Пример #2
0
        public BID[] Read(LBBTEntry dataTreeEntry)
        {
            var dataTreeRootBlockLevel = GetBlockLevel(dataTreeEntry);

            if (dataTreeRootBlockLevel.HasNoValue)
            {
                return(new[] { dataTreeEntry.BlockReference.BlockId });
            }

            return(EnumerateAndAdd(dataTreeEntry.BlockReference.BlockId, dataTreeRootBlockLevel.Value));
        }
Пример #3
0
 public static int GetBlockSize(this LBBTEntry entry)
 {
     return(Utilities.GetTotalExternalDataBlockSize(entry.ByteCountOfRawDataInReferencedBlockExcludingTrailerAndAlignmentPadding));
 }