Class StringIngest

java.lang.Object
ghidra.program.model.pcode.StringIngest
All Implemented Interfaces:
ByteIngest

public class StringIngest extends Object implements ByteIngest
  • Constructor Details

    • StringIngest

      public StringIngest()
  • Method Details

    • open

      public void open(int max, String desc)
      Description copied from interface: ByteIngest
      Open the ingester for receiving bytes. This establishes the description of the source of the bytes and maximum number of bytes that can be read
      Specified by:
      open in interface ByteIngest
      Parameters:
      max - is the maximum number of bytes that can be read
      desc - is the description of the byte source
    • ingestStreamToNextTerminator

      public void ingestStreamToNextTerminator(InputStream inStream) throws IOException
      Description copied from interface: ByteIngest
      Ingest bytes from the stream up to (and including) the first 0 byte. This can be called multiple times to read in bytes in different chunks. An absolute limit is set on the number of bytes that can be ingested via the max parameter to a previous call to open(). If this limit is exceeded, an exception is thrown.
      Specified by:
      ingestStreamToNextTerminator in interface ByteIngest
      Parameters:
      inStream - is the input stream to read from
      Throws:
      IOException - for errors reading from the stream
    • ingestStream

      public void ingestStream(InputStream inStream) throws IOException
      Description copied from interface: ByteIngest
      Ingest bytes from the stream until the end of stream is encountered. An absolute limit is set on the number of bytes that can be ingested via the max parameter to a previous call to open(). If this limit is exceeded, an exception is thrown.
      Specified by:
      ingestStream in interface ByteIngest
      Parameters:
      inStream - is the input stream to read from
      Throws:
      IOException - for errors reading from the stream
    • ingestBytes

      public void ingestBytes(byte[] byteArray, int off, int sz) throws IOException
      Description copied from interface: ByteIngest
      Ingest bytes directly from a byte array. If these bytes would cause the total number of bytes ingested to exceed the maximum (as set by the call to open()), an exception is thrown. This can be called multiple times to read in different chunks.
      Specified by:
      ingestBytes in interface ByteIngest
      Parameters:
      byteArray - is the array of bytes
      off - is the index of the first byte to ingest
      sz - is the number of bytes to ingest
      Throws:
      IOException - if the max number of bytes to ingest is exceeded
    • endIngest

      public void endIngest()
      Description copied from interface: ByteIngest
      Formal indicator that ingesting of bytes is complete and processing can begin
      Specified by:
      endIngest in interface ByteIngest
    • clear

      public void clear()
      Description copied from interface: ByteIngest
      Clear any previous cached bytes.
      Specified by:
      clear in interface ByteIngest
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • isEmpty

      public boolean isEmpty()
      Specified by:
      isEmpty in interface ByteIngest
      Returns:
      true if no bytes have yet been ingested via ingestStream()