Class: VirtDisk::Disk

Inherits:
ClientHead show all
Defined in:
lib/virt_disk/disk.rb

Constant Summary collapse

DEFAULT_BLOCK_SIZE =
512
DISK_SIG_OFFSET =
0x1B8
DISK_SIG_SIZE =
4

Instance Attribute Summary

Attributes inherited from ClientHead

#end_byte_addr, #seek_pos, #size, #start_byte_addr

Instance Method Summary collapse

Methods inherited from ClientHead

#close, #mod_read, #mod_write, #read, #seek, #write

Methods included from ExportMethods

#delegate, #delegate=, #exported?, included, #method_missing, #respond_to_missing?

Constructor Details

#initialize(up_stream_module) ⇒ Disk

Returns a new instance of Disk.



7
8
9
# File 'lib/virt_disk/disk.rb', line 7

def initialize(up_stream_module)
  super
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class VirtDisk::ExportMethods

Instance Method Details

#block_sizeObject



11
12
13
14
# File 'lib/virt_disk/disk.rb', line 11

def block_size
  return @up_stream_module.block_size if @up_stream_module.respond_to?(:block_size)
  DEFAULT_BLOCK_SIZE
end

#disk_sigObject



17
18
19
# File 'lib/virt_disk/disk.rb', line 17

def disk_sig
  @disk_sig ||= @up_stream_module.mod_read(DISK_SIG_OFFSET, DISK_SIG_SIZE).unpack('L')[0]
end