Module: VixDiskMod

Defined in:
lib/disk/modules/VixDiskMod.rb

Instance Method Summary collapse

Instance Method Details

#d_closeObject



40
41
42
43
44
45
46
47
48
# File 'lib/disk/modules/VixDiskMod.rb', line 40

def d_close
  if @partNum == 0
    $log.debug "VixDiskMod: closing disk #{@dInfo.fileName}" if $log
    $log.debug "VixDiskMod: closing base VdlDisk <#{@diskObj.ssId}>" if $log
    @diskObj.close
  else
    $log.debug "VixDiskMod: not base disk, not closing base VdlDisk" if $log
  end
end

#d_initObject



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/disk/modules/VixDiskMod.rb', line 4

def d_init
  self.diskType = "VixDisk"
  @vdi = dInfo.vixDiskInfo
  @connection = @vdi[:connection]

  if dInfo.mountMode.nil? || dInfo.mountMode == "r"
    dInfo.mountMode = "r"
    fileMode = VixDiskLib::VIXDISKLIB_FLAG_OPEN_READ_ONLY
  elsif dInfo.mountMode == "rw"
    fileMode = 0
  else
    raise "Unrecognized mountMode: #{dInfo.mountMode}"
  end

  dInfo.fileName = @vdi[:fileName]
  unless (@diskObj = dInfo.vixDiskObj)
    @diskObj = @connection.getDisk(@vdi[:fileName], fileMode)
    dInfo.vixDiskObj = @diskObj
  end
  self.blockSize = @diskObj.sectorSize
end

#d_read(pos, len) ⇒ Object



30
31
32
33
# File 'lib/disk/modules/VixDiskMod.rb', line 30

def d_read(pos, len)
  pos += @dInfo.offset if @dInfo.offset
  @diskObj.read(pos, len)
end

#d_sizeObject

Disk size in sectors.



51
52
53
# File 'lib/disk/modules/VixDiskMod.rb', line 51

def d_size
  @diskObj.info[:capacity]
end

#d_write(pos, buf, len) ⇒ Object



35
36
37
38
# File 'lib/disk/modules/VixDiskMod.rb', line 35

def d_write(pos, buf, len)
  pos += @dInfo.offset if @dInfo.offset
  @diskObj.write(pos, buf, len)
end

#getBaseObject



26
27
28
# File 'lib/disk/modules/VixDiskMod.rb', line 26

def getBase
  self
end