Class: Omnizip::Formats::Rar::Rar5::MainHeader

Inherits:
Header
  • Object
show all
Defined in:
lib/omnizip/formats/rar/rar5/header.rb

Overview

Main archive header

Constant Summary collapse

ARCHIVE_FLAG_VOLUME =

Archive flags: 0x0001 volume, 0x0002 volume number present, 0x0004 solid, 0x0008 recovery, 0x0010 locked

0x0001
ARCHIVE_FLAG_VOLUME_NUMBER =
0x0002

Instance Attribute Summary

Attributes inherited from Header

#data_area_size, #extra_area, #flags, #header_data, #type

Instance Method Summary collapse

Methods inherited from Header

#encode

Constructor Details

#initialize(archive_flags: 0, volume_number: nil) ⇒ MainHeader

Returns a new instance of MainHeader.



97
98
99
100
101
102
103
104
# File 'lib/omnizip/formats/rar/rar5/header.rb', line 97

def initialize(archive_flags: 0, volume_number: nil)
  data = VINT.encode(archive_flags)
  if archive_flags.anybits?(ARCHIVE_FLAG_VOLUME_NUMBER)
    data.concat(VINT.encode(volume_number.to_i))
  end

  super(HEADER_TYPE_MAIN, header_data: data.pack("C*"))
end