Package ghidra.trace.model.time.schedule

# Enum Class TraceSchedule.ScheduleForm

java.lang.Object
java.lang.Enum<TraceSchedule.ScheduleForm>
ghidra.trace.model.time.schedule.TraceSchedule.ScheduleForm

All Implemented Interfaces:
  `Serializable`, `Comparable<TraceSchedule.ScheduleForm>`, `Constable`

Enclosing class:
  `TraceSchedule`

public static enum TraceSchedule.ScheduleForm extends Enum<TraceSchedule.ScheduleForm>
Specifies forms of a stepping schedule.

Each form defines a set of stepping schedules. It happens that each is a subset of the next. A `SNAP_ONLY` schedule is also a `SNAP_ANY_STEPS_OPS` schedule, but not necessarily vice versa.

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class java.lang.Enum

  `Enum.EnumDesc<E extends Enum<E>>`

- ## Enum Constant Summary

  Enum Constants
  Enum Constant
  Description
  `SNAP_ANY_STEPS`
  The schedule consists of a snapshot and a sequence of instruction steps on any threads(s).
  `SNAP_ANY_STEPS_OPS`
  The schedule consists of a snapshot and a sequence of instruction steps then p-code op steps on any thread(s).
  `SNAP_EVT_STEPS`
  The schedule consists of a snapshot and some number of instruction steps on the event thread only.
  `SNAP_ONLY`
  The schedule consists only of a snapshot.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final List<TraceSchedule.ScheduleForm>`
  `VALUES`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `abstract boolean`
  `contains(Trace trace, TraceSchedule schedule)`
  Check if the given schedule conforms
  `TraceSchedule.ScheduleForm`
  `intersect(TraceSchedule.ScheduleForm that)`
  Get the more restrictive of this and the given form
  `TraceSchedule`
  `validate(Trace trace, TraceSchedule schedule)`
  If the given schedule conforms, normalize the schedule to prove it does.
  `static TraceSchedule.ScheduleForm`
  `valueOf(String name)`
  Returns the enum constant of this class with the specified name.
  `static TraceSchedule.ScheduleForm[]`
  `values()`
  Returns an array containing the constants of this enum class, in the order they are declared.

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

  `clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`

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

  `getClass, notify, notifyAll, wait, wait, wait`

- ## Enum Constant Details

  - ### SNAP_ONLY

    public static final TraceSchedule.ScheduleForm SNAP_ONLY
    The schedule consists only of a snapshot. No stepping after.

  - ### SNAP_EVT_STEPS

    public static final TraceSchedule.ScheduleForm SNAP_EVT_STEPS
    The schedule consists of a snapshot and some number of instruction steps on the event thread only.

  - ### SNAP_ANY_STEPS

    public static final TraceSchedule.ScheduleForm SNAP_ANY_STEPS
    The schedule consists of a snapshot and a sequence of instruction steps on any threads(s).

  - ### SNAP_ANY_STEPS_OPS

    public static final TraceSchedule.ScheduleForm SNAP_ANY_STEPS_OPS
    The schedule consists of a snapshot and a sequence of instruction steps then p-code op steps on any thread(s).

    This is the most capable form supported by `TraceSchedule`.

- ## Field Details

  - ### VALUES

    public static final List<TraceSchedule.ScheduleForm> VALUES

- ## Method Details

  - ### values

    public static TraceSchedule.ScheduleForm[] values()
    Returns an array containing the constants of this enum class, in the order they are declared.
    Returns:
      an array containing the constants of this enum class, in the order they are declared

  - ### valueOf

    public static TraceSchedule.ScheduleForm valueOf(String name)
    Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
    Parameters:
      `name` - the name of the enum constant to be returned.
    Returns:
      the enum constant with the specified name
    Throws:
      `IllegalArgumentException` - if this enum class has no constant with the specified name
      `NullPointerException` - if the argument is null

  - ### contains

    public abstract boolean contains(Trace trace, TraceSchedule schedule)
    Check if the given schedule conforms
    Parameters:
      `trace` - if available, a trace for determining the event thread
      `schedule` - the schedule to test
    Returns:
      true if the schedule adheres to this form

  - ### validate

    public TraceSchedule validate(Trace trace, TraceSchedule schedule)
    If the given schedule conforms, normalize the schedule to prove it does.
    Parameters:
      `trace` - if available, a trace for determining the event thread
      `schedule` - the schedule to test
    Returns:
      the non-null normalized schedule, or null if the given schedule does not conform

  - ### intersect

    public TraceSchedule.ScheduleForm intersect(TraceSchedule.ScheduleForm that)
    Get the more restrictive of this and the given form
    Parameters:
      `that` - the other form
    Returns:
      the more restrictive form