Class: ReiserFS::FileObject

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

Overview

Top level file object.

Constant Summary

Constants included from ReiserFS

DEF_CACHE_SIZE, SUPERBLOCK, SUPERBLOCK_OFFSET, SUPERBLOCK_SIZE

Instance Attribute Summary collapse

Attributes included from ReiserFS

#cache_hits, #dir_cache, #entry_cache, #rootDir, #superblock

Instance Method Summary collapse

Methods included from ReiserFS

#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_getDirR, #ifs_getFile, #ifs_putFile, #unnormalizePath

Constructor Details

#initialize(path, miqfs) ⇒ FileObject

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



24
25
26
27
# File 'lib/fs/MiqFS/modules/ReiserFS.rb', line 24

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

Instance Attribute Details

#dataObject (readonly)

Returns the value of attribute data.



20
21
22
# File 'lib/fs/MiqFS/modules/ReiserFS.rb', line 20

def data
  @data
end

#deObject (readonly)

Returns the value of attribute de.



20
21
22
# File 'lib/fs/MiqFS/modules/ReiserFS.rb', line 20

def de
  @de
end

#miqfsObject (readonly)

Returns the value of attribute miqfs.



20
21
22
# File 'lib/fs/MiqFS/modules/ReiserFS.rb', line 20

def miqfs
  @miqfs
end

#pathObject (readonly)

Returns the value of attribute path.



20
21
22
# File 'lib/fs/MiqFS/modules/ReiserFS.rb', line 20

def path
  @path
end

Instance Method Details

#aTimeObject



41
42
43
# File 'lib/fs/MiqFS/modules/ReiserFS.rb', line 41

def aTime
  @de.aTime
end

#cTimeObject



45
46
47
# File 'lib/fs/MiqFS/modules/ReiserFS.rb', line 45

def cTime
  @de.cTime
end

#lengthObject



53
54
55
# File 'lib/fs/MiqFS/modules/ReiserFS.rb', line 53

def length
  @de.length
end

#mTimeObject



49
50
51
# File 'lib/fs/MiqFS/modules/ReiserFS.rb', line 49

def mTime
  @de.mTime
end

#open(mode = "r") ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
# File 'lib/fs/MiqFS/modules/ReiserFS.rb', line 29

def open(mode = "r")
  # ReiserFS module methods use miqfs instance accessors to touch @boot_sector.
  @mode = mode.downcase
  @de = ifs_getFile(@path, @miqfs)
  raise "File is directory: '#{@path}'" if @de && @de.isDir?

  if mode.include?("r")
    raise "File not found: '#{@path}'" if @de.nil?
    @data = FileData.new(@de, @miqfs.superblock)
  end
end