Package ghidra.app.util.bin

# Class MemBufferByteProvider

java.lang.Object
ghidra.app.util.bin.MemBufferByteProvider

All Implemented Interfaces:
  `ByteProvider`, `Closeable`, `AutoCloseable`

public class MemBufferByteProvider extends Object implements ByteProvider
`MemBufferByteProvider` provide a `ByteProvider` backed by a `MemBuffer`.

- ## Field Summary

  ### Fields inherited from interface ghidra.app.util.bin.ByteProvider

  `EMPTY_BYTEPROVIDER`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `MemBufferByteProvider(MemBuffer buffer)`
  Constructor

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `close()`
  Releases any resources the `ByteProvider` may have occupied
  `String`
  `getAbsolutePath()`
  Returns the absolute path (similar to, but not a, URI) to the `ByteProvider`.
  `File`
  `getFile()`
  Returns the underlying `File` for this `ByteProvider`, or null if this `ByteProvider` is not associated with a `File`.
  `String`
  `getName()`
  Returns the name of the `ByteProvider`.
  `boolean`
  `isValidIndex(long index)`
  Returns true if the specified index is valid.
  `long`
  `length()`
  Return maximum length since actual length is unknown
  `byte`
  `readByte(long index)`
  Reads a byte at the specified index
  `byte[]`
  `readBytes(long index, long length)`
  Reads a byte array at the specified index

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface ghidra.app.util.bin.ByteProvider

  `getFSRL, getInputStream, isEmpty`

- ## Constructor Details

  - ### MemBufferByteProvider

    public MemBufferByteProvider(MemBuffer buffer)
    Constructor
    Parameters:
      `buffer` - memory buffer

- ## Method Details

  - ### 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()
    Return maximum length since actual length is unknown
    Specified by:
      `length` in interface `ByteProvider`
    Returns:
      maximum possible length

  - ### 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

  - ### 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

  - ### 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