using System.IO;
using System.Text;
namespace SabreTools.FileTypes.Aaru
{
///
/// Checksum block, contains a checksum of all user data sectors
/// (except for optical discs that is 2352 bytes raw sector if available
///
///
public class ChecksumHeader
{
/// Identifier,
public AaruBlockType identifier;
/// Length in bytes of the block
public uint length;
/// How many checksums follow
public byte entries;
///
/// Read a stream as an ChecksumHeader
///
/// ChecksumHeader as a stream
/// Populated ChecksumHeader, null on failure
public static ChecksumHeader Deserialize(Stream stream)
{
ChecksumHeader checksumHeader = new ChecksumHeader();
using (BinaryReader br = new BinaryReader(stream, Encoding.Default, true))
{
checksumHeader.identifier = (AaruBlockType)br.ReadUInt32();
checksumHeader.length = br.ReadUInt32();
checksumHeader.entries = br.ReadByte();
}
return checksumHeader;
}
}
}