Class RefdByteProvider

java.lang.Object
ghidra.formats.gfilesystem.RefdByteProvider
All Implemented Interfaces:
ByteProvider, Closeable, AutoCloseable

public class RefdByteProvider extends Object implements ByteProvider
A ByteProvider along with a FileSystemRef to keep the filesystem pinned in memory.

The caller is responsible for closing this object, which releases the FilesystemRef.

  • Constructor Details

    • RefdByteProvider

      public RefdByteProvider(FileSystemRef fsRef, ByteProvider provider, FSRL fsrl)
      Creates a RefdByteProvider instance, taking ownership of the supplied FileSystemRef.
      Parameters:
      fsRef - FileSystemRef that contains the specified ByteProvider
      provider - ByteProvider inside the filesystem held open by the ref
      fsrl - FSRL identity of this new ByteProvider
  • Method Details

    • close

      public void close() throws IOException
      Description copied from interface: ByteProvider
      Releases any resources the ByteProvider may have occupied
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface ByteProvider
      Specified by:
      close in interface Closeable
      Throws:
      IOException - if an I/O error occurs
    • getFSRL

      public FSRL getFSRL()
      Description copied from interface: ByteProvider
      Returns the FSRL of the underlying file for this byte provider, or null if this byte provider is not associated with a file.
      Specified by:
      getFSRL in interface ByteProvider
      Returns:
      The FSRL of the underlying File, or null if no associated File.
    • getFile

      public File getFile()
      Description copied from interface: ByteProvider
      Returns the underlying File for this ByteProvider, or null if this ByteProvider is not associated with a File.
      Specified by:
      getFile in interface ByteProvider
      Returns:
      the underlying file for this byte provider
    • getName

      public String getName()
      Description copied from interface: ByteProvider
      Returns the name of the ByteProvider. For example, the underlying file name.
      Specified by:
      getName in interface ByteProvider
      Returns:
      the name of the ByteProvider or null if there is no name
    • getAbsolutePath

      public String getAbsolutePath()
      Description copied from interface: ByteProvider
      Returns the absolute path (similar to, but not a, URI) to the ByteProvider. For example, the complete path to the file.
      Specified by:
      getAbsolutePath in interface ByteProvider
      Returns:
      the absolute path to the ByteProvider or null if not associated with a File.
    • length

      public long length() throws IOException
      Description copied from interface: ByteProvider
      Returns the length of the ByteProvider
      Specified by:
      length in interface ByteProvider
      Returns:
      the length of the ByteProvider
      Throws:
      IOException - if an I/O error occurs
    • isValidIndex

      public boolean isValidIndex(long index)
      Description copied from interface: ByteProvider
      Returns true if the specified index is valid.
      Specified by:
      isValidIndex in interface ByteProvider
      Parameters:
      index - the index in the byte provider to check
      Returns:
      true if the specified index is valid
    • readByte

      public byte readByte(long index) throws IOException
      Description copied from interface: ByteProvider
      Reads a byte at the specified index
      Specified by:
      readByte in interface ByteProvider
      Parameters:
      index - the index of the byte to read
      Returns:
      the byte read from the specified index
      Throws:
      IOException - if an I/O error occurs
    • readBytes

      public byte[] readBytes(long index, long length) throws IOException
      Description copied from interface: ByteProvider
      Reads a byte array at the specified index
      Specified by:
      readBytes in interface ByteProvider
      Parameters:
      index - the index of the byte to read
      length - the number of bytes to read
      Returns:
      the byte array read from the specified index
      Throws:
      IOException - if an I/O error occurs
    • toString

      public String toString()
      Overrides:
      toString in class Object