Package ghidra.pcode.emu.taint

# Class TaintEmulatorFactory

java.lang.Object
ghidra.pcode.emu.taint.TaintEmulatorFactory

All Implemented Interfaces:
  `EmulatorFactory`, `ExtensionPoint`

public class TaintEmulatorFactory extends Object implements EmulatorFactory
An emulator factory for making the `TaintPcodeEmulator` discoverable to the UI

This is the final class to create a full Debugger-integrated emulator. This class is what makes it appear in the menu of possible emulators the user may configure.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `TaintEmulatorFactory()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static void`
  `addHandlers(TraceEmulationIntegration.Writer writer)`
  A common place to factor addition of the required handler.
  `PcodeMachine<?>`
  `create(PcodeDebuggerAccess access, TraceEmulationIntegration.Writer writer)`
  Create the emulator
  `static TraceEmulationIntegration.Writer`
  `delayedWriteTrace(PcodeTraceAccess access)`
  This is conventionally available for testing and for scripts that would like to create a trace-integrated emulator without using the service.
  `String`
  `getTitle()`
  Get the title, to appear in menus and dialogs

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

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

- ## Constructor Details

  - ### TaintEmulatorFactory

    public TaintEmulatorFactory()

- ## Method Details

  - ### delayedWriteTrace

    public static TraceEmulationIntegration.Writer delayedWriteTrace(PcodeTraceAccess access)
    This is conventionally available for testing and for scripts that would like to create a trace-integrated emulator without using the service.
    Parameters:
      `access` - the means of accessing the integrated trace
    Returns:
      a writer with callbacks for trace integration

  - ### addHandlers

    public static void addHandlers(TraceEmulationIntegration.Writer writer)
    A common place to factor addition of the required handler.

    It is presumed something else has or will add the other handlers, e.g., for the bytes.

    Parameters:
      `writer` - the writer to add handlers to

  - ### getTitle

    public String getTitle()
    Description copied from interface: `EmulatorFactory`
    Get the title, to appear in menus and dialogs
    Specified by:
      `getTitle` in interface `EmulatorFactory`
    Returns:
      the title

  - ### create

    public PcodeMachine<?> create(PcodeDebuggerAccess access, TraceEmulationIntegration.Writer writer)
    Description copied from interface: `EmulatorFactory`
    Create the emulator
    Specified by:
      `create` in interface `EmulatorFactory`
    Parameters:
      `access` - the trace-and-debugger access shim
      `writer` - the Debugger's emulation callbacks for UI integration
    Returns:
      the emulator with callbacks installed