Interface EmuUnixFileSystem<T>

Type Parameters:
T - the type of values stored in the files
All Known Implementing Classes:
AbstractEmuUnixFileSystem, BytesEmuUnixFileSystem

public interface EmuUnixFileSystem<T>
A simulated UNIX file system
  • Method Details

    • newFile

      EmuUnixFile<T> newFile(String pathname, int mode) throws EmuIOException
      A factory for constructing a new file (without adding it to the file system)
      Parameters:
      pathname - the path of the file
      mode - the mode of the new file
      Returns:
      the new file
      Throws:
      EmuIOException - if the file cannot be constructed
    • createOrGetFile

      EmuUnixFile<T> createOrGetFile(String pathname, int mode) throws EmuIOException
      Get the named file, creating it if it doesn't already exist

      This is accessed by the emulator user, not the target program.

      Parameters:
      pathname - the pathname of the requested file
      mode - the mode of a created file. Ignored if the file exists
      Returns:
      the file
      Throws:
      EmuIOException - if an error occurred
    • getFile

      EmuUnixFile<T> getFile(String pathname) throws EmuIOException
      Get the named file

      This is accessed by the emulator user, not the target program.

      Parameters:
      pathname - the pathname of the requested file
      Returns:
      the file, or null if it doesn't exist
      Throws:
      EmuIOException - if an error occurred
    • putFile

      void putFile(String pathname, EmuUnixFile<T> file) throws EmuIOException
      Place the given file at the given location

      This is accessed by the emulator user, not the target program. If the file already exists, it is replaced silently.

      Parameters:
      pathname - the pathname of the file
      file - the file, presumably having the same pathname
      Throws:
      EmuIOException - if an error occurred
    • unlink

      void unlink(String pathname, EmuUnixUser user) throws EmuIOException
      Remove the file at the given location

      TODO: Separate the user-facing routine from the target-facing routine.

      If the file does not exist, this has no effect.

      Parameters:
      pathname - the pathname of the file to unlink
      user - the user requesting the unlink
      Throws:
      EmuIOException - if an error occurred
    • open

      EmuUnixFile<T> open(String pathname, Set<EmuUnixFileSystem.OpenFlag> flags, EmuUnixUser user, int mode) throws EmuIOException
      Open the requested file according to the given flags and user

      This is generally accessed by the target program via a DefaultEmuUnixFileHandle.

      Parameters:
      pathname - the pathname of the requested file
      flags - the requested open flags
      user - the user making the request
      mode - the mode to assign the file, if created. Otherwise ignored
      Returns:
      the file
      Throws:
      EmuIOException - if an error occurred, e.g., file not found, or access denied