Class: Iso9660::FileObject

Inherits:
Object
  • Object
show all
Includes:
Iso9660
Defined in:
lib/fs/MiqFS/modules/Iso9660.rb

Overview

Top level file object.

Constant Summary

Constants included from Iso9660

DEF_CACHE_SIZE, EXT_JOLIET, EXT_NONE, EXT_ROCKRIDGE, FB_ASSOCIATED, FB_DIRECTORY, FB_HIDDEN, FB_NOT_LAST, FB_PS, FB_RFS, FB_UNUSED1, FB_UNUSED2, JOLIET_SECTOR, PRIMARY_SECTOR, RR_CL_SIGNATURE, RR_EXT_CLCOMPF_RESERVED2, RR_EXT_HEADER, RR_EXT_HEADER_SIZE, RR_EXT_NMF_CONTINUE, RR_EXT_NMF_CURRENT, RR_EXT_NMF_PARENT, RR_EXT_NMF_RESERVED1, RR_EXT_NMF_RESERVED2, RR_EXT_NMF_RESERVED3, RR_EXT_SLCOMPF_CONTINUE, RR_EXT_SLCOMPF_CURRENT, RR_EXT_SLCOMPF_PARENT, RR_EXT_SLCOMPF_RESERVED1, RR_EXT_SLCOMPF_ROOT, RR_EXT_SLF_CONTINUE, RR_EXT_SL_FM_BLOK, RR_EXT_SL_FM_CHAR, RR_EXT_SL_FM_DIR, RR_EXT_SL_FM_FIFO, RR_EXT_SL_FM_FILE, RR_EXT_SL_FM_LINK, RR_EXT_SL_FM_SOCK, RR_HEADER, RR_HEADER_SIZE, RR_NM, RR_NM_SIGNATURE, RR_PL_SIGNATURE, RR_PN_SIGNATURE, RR_PX, RR_PX_SIGNATURE, RR_RE_SIGNATURE, RR_SF, RR_SF_SIGNATURE, RR_SIGNATURE, RR_SL, RR_SL_COMPONENT, RR_SL_SIGNATURE, RR_TF_SIGNATURE, SECTOR_SIZE

Instance Attribute Summary collapse

Attributes included from Iso9660

#boot_sector, #cache_hits, #dir_cache, #drive_root

Instance Method Summary collapse

Methods included from Iso9660

#fs_dirEntries, #fs_dirMkdir, #fs_dirRmdir, #fs_fileAtime, #fs_fileAtime_obj, #fs_fileClose, #fs_fileCtime, #fs_fileCtime_obj, #fs_fileDelete, #fs_fileDirectory?, #fs_fileExists?, #fs_fileFile?, #fs_fileMtime, #fs_fileMtime_obj, #fs_fileOpen, #fs_fileRead, #fs_fileSeek, #fs_fileSize, #fs_fileSize_obj, #fs_fileWrite, #fs_freeBytes, #fs_init, #fs_isSymLink?, #ifs_getDir, #ifs_getFile, #unnormalizePath

Constructor Details

#initialize(path, miqfs) ⇒ FileObject

fs_fileOpen passes ‘self’ into .. er, ‘this’.



27
28
29
30
# File 'lib/fs/MiqFS/modules/Iso9660.rb', line 27

def initialize(path, miqfs)
  @path = path
  @miqfs = miqfs
end

Instance Attribute Details

#dataObject (readonly)

Returns the value of attribute data.



23
24
25
# File 'lib/fs/MiqFS/modules/Iso9660.rb', line 23

def data
  @data
end

#deObject (readonly)

Returns the value of attribute de.



23
24
25
# File 'lib/fs/MiqFS/modules/Iso9660.rb', line 23

def de
  @de
end

#miqfsObject (readonly)

Returns the value of attribute miqfs.



23
24
25
# File 'lib/fs/MiqFS/modules/Iso9660.rb', line 23

def miqfs
  @miqfs
end

#pathObject (readonly)

Returns the value of attribute path.



23
24
25
# File 'lib/fs/MiqFS/modules/Iso9660.rb', line 23

def path
  @path
end

Instance Method Details

#open(mode = "r") ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/fs/MiqFS/modules/Iso9660.rb', line 32

def open(mode = "r")
  # Iso9660 module methods use miqfs instance accessors to touch @boot_sector.
  @mode = mode.downcase
  @de = ifs_getFile(@path, @miqfs)
  unless @de.nil?
    raise "File is directory: '#{@path}'" if @de.isDir?
  end
  if mode.include?("r")
    raise "File not found: '#{@path}'" if @de.nil?
    @data = FileData.new(@de, @miqfs.boot_sector)
  end
end