ProtectHeader.cs 978 B

12345678910111213141516171819202122232425262728
  1. using SharpCompress.IO;
  2. namespace SharpCompress.Common.Rar.Headers
  3. {
  4. // ProtectHeader is part of the Recovery Record feature
  5. internal class ProtectHeader : RarHeader
  6. {
  7. public ProtectHeader(RarHeader header, RarCrcBinaryReader reader)
  8. : base(header, reader, HeaderType.Protect)
  9. {
  10. if (IsRar5) throw new InvalidFormatException("unexpected rar5 record");
  11. }
  12. protected override void ReadFinish(MarkingBinaryReader reader)
  13. {
  14. Version = reader.ReadByte();
  15. RecSectors = reader.ReadUInt16();
  16. TotalBlocks = reader.ReadUInt32();
  17. Mark = reader.ReadBytes(8);
  18. }
  19. internal uint DataSize => checked((uint)AdditionalDataSize);
  20. internal byte Version { get; private set; }
  21. internal ushort RecSectors { get; private set; }
  22. internal uint TotalBlocks { get; private set; }
  23. internal byte[] Mark { get; private set; }
  24. }
  25. }