Package ghidra.trace.util

# Interface TraceEvent<T,U>

Type Parameters:
  `T` - the type of the object changed
  `U` - the type of the value

All Superinterfaces:
  `EventType`

All Known Implementing Classes:
  `TraceEvent.TraceBookmarkEvent`, `TraceEvent.TraceBookmarkLifespanEvent`, `TraceEvent.TraceBookmarkTypeEvent`, `TraceEvent.TraceBreakpointEvent`, `TraceEvent.TraceBreakpointLifespanEvent`, `TraceEvent.TraceBytesEvent`, `TraceEvent.TraceCodeDataSettingsEvent`, `TraceEvent.TraceCodeDataTypeEvent`, `TraceEvent.TraceCodeEvent`, `TraceEvent.TraceCodeFragmentEvent`, `TraceEvent.TraceCodeLifespanEvent`, `TraceEvent.TraceCommentEvent`, `TraceEvent.TraceCompositeDataEvent`, `TraceEvent.TraceCompositeDataLifespanEvent`, `TraceEvent.TraceDataTypeEvent`, `TraceEvent.TraceDataTypePathEvent`, `TraceEvent.TraceDataTypeStringEvent`, `TraceEvent.TraceInstructionBoolEvent`, `TraceEvent.TraceInstructionFlowEvent`, `TraceEvent.TraceInstructionIntEvent`, `TraceEvent.TraceMappingEvent`, `TraceEvent.TraceMemoryRegionEvent`, `TraceEvent.TraceMemoryRegionLifespanEvent`, `TraceEvent.TraceMemoryStateEvent`, `TraceEvent.TraceModuleEvent`, `TraceEvent.TraceModuleLifespanEvent`, `TraceEvent.TraceObjectEvent`, `TraceEvent.TraceObjectValueEvent`, `TraceEvent.TraceObjectValueLifespanEvent`, `TraceEvent.TraceOverlaySpaceEvent`, `TraceEvent.TracePlatformEvent`, `TraceEvent.TracePlatformMappingEvent`, `TraceEvent.TraceReferenceBoolEvent`, `TraceEvent.TraceReferenceEvent`, `TraceEvent.TraceReferenceLifespanEvent`, `TraceEvent.TraceSectionEvent`, `TraceEvent.TraceSnapshotEvent`, `TraceEvent.TraceStackEvent`, `TraceEvent.TraceStackLongEvent`, `TraceEvent.TraceSymbolAddressEvent`, `TraceEvent.TraceSymbolEvent`, `TraceEvent.TraceSymbolLifespanEvent`, `TraceEvent.TraceSymbolNamespaceEvent`, `TraceEvent.TraceSymbolRefEvent`, `TraceEvent.TraceSymbolSourceEvent`, `TraceEvent.TraceSymbolStringEvent`, `TraceEvent.TraceSymbolSymEvent`, `TraceEvent.TraceThreadEvent`, `TraceEvent.TraceThreadLifespanEvent`, `TraceEvent.TraceTypeArchiveEvent`, `TraceEvent.TraceTypeCategoryEvent`, `TraceEvent.TraceTypeCategoryPathEvent`, `TraceEvent.TraceTypeCategoryStringEvent`

public interface TraceEvent<T,U> extends EventType
A sub-type for event specific to traces.

For the various defined events, see `TraceEvents`.

This interface introduces two type parameters, which are provided by each trace event enum. They describe the type of the effected object, e.g., a thread, as well as the type of the changed value, e.g., its lifespan. These are can be enforced by using `TraceChangeRecord`. Its constructors will ensure that the affected object and values actually match the types for the given trace event. Conversely, by using `TraceDomainObjectListener` and registering handlers for each event type, it will ensure each handler method accepts arguments of the correct types. See, e.g., `TypedEventDispatcher.listenFor(TraceEvent, FullEventRecordHandler)`.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Interface
  Description
  `static enum`
  `TraceEvent.TraceBookmarkEvent`
  `static enum`
  `TraceEvent.TraceBookmarkLifespanEvent`
  `static enum`
  `TraceEvent.TraceBookmarkTypeEvent`
  `static enum`
  `TraceEvent.TraceBreakpointEvent`
  `static enum`
  `TraceEvent.TraceBreakpointLifespanEvent`
  `static enum`
  `TraceEvent.TraceBytesEvent`
  `static enum`
  `TraceEvent.TraceCodeDataSettingsEvent`
  `static enum`
  `TraceEvent.TraceCodeDataTypeEvent`
  `static enum`
  `TraceEvent.TraceCodeEvent`
  `static enum`
  `TraceEvent.TraceCodeFragmentEvent`
  `static enum`
  `TraceEvent.TraceCodeLifespanEvent`
  `static enum`
  `TraceEvent.TraceCommentEvent`
  `static enum`
  `TraceEvent.TraceCompositeDataEvent`
  `static enum`
  `TraceEvent.TraceCompositeDataLifespanEvent`
  `static enum`
  `TraceEvent.TraceDataTypeEvent`
  `static enum`
  `TraceEvent.TraceDataTypePathEvent`
  `static enum`
  `TraceEvent.TraceDataTypeStringEvent`
  `static enum`
  `TraceEvent.TraceInstructionBoolEvent`
  `static enum`
  `TraceEvent.TraceInstructionFlowEvent`
  `static enum`
  `TraceEvent.TraceInstructionIntEvent`
  `static enum`
  `TraceEvent.TraceMappingEvent`
  `static enum`
  `TraceEvent.TraceMemoryRegionEvent`
  `static enum`
  `TraceEvent.TraceMemoryRegionLifespanEvent`
  `static enum`
  `TraceEvent.TraceMemoryStateEvent`
  `static enum`
  `TraceEvent.TraceModuleEvent`
  `static enum`
  `TraceEvent.TraceModuleLifespanEvent`
  `static enum`
  `TraceEvent.TraceObjectEvent`
  `static enum`
  `TraceEvent.TraceObjectValueEvent`
  `static enum`
  `TraceEvent.TraceObjectValueLifespanEvent`
  `static enum`
  `TraceEvent.TraceOverlaySpaceEvent`
  `static enum`
  `TraceEvent.TracePlatformEvent`
  `static enum`
  `TraceEvent.TracePlatformMappingEvent`
  `static enum`
  `TraceEvent.TraceReferenceBoolEvent`
  `static enum`
  `TraceEvent.TraceReferenceEvent`
  `static enum`
  `TraceEvent.TraceReferenceLifespanEvent`
  `static enum`
  `TraceEvent.TraceSectionEvent`
  `static enum`
  `TraceEvent.TraceSnapshotEvent`
  `static enum`
  `TraceEvent.TraceStackEvent`
  `static enum`
  `TraceEvent.TraceStackLongEvent`
  `static enum`
  `TraceEvent.TraceSymbolAddressEvent`
  `static enum`
  `TraceEvent.TraceSymbolEvent`
  `static enum`
  `TraceEvent.TraceSymbolLifespanEvent`
  `static enum`
  `TraceEvent.TraceSymbolNamespaceEvent`
  `static enum`
  `TraceEvent.TraceSymbolRefEvent`
  `static enum`
  `TraceEvent.TraceSymbolSourceEvent`
  `static enum`
  `TraceEvent.TraceSymbolStringEvent`
  `static enum`
  `TraceEvent.TraceSymbolSymEvent`
  `static enum`
  `TraceEvent.TraceThreadEvent`
  `static enum`
  `TraceEvent.TraceThreadLifespanEvent`
  `static enum`
  `TraceEvent.TraceTypeArchiveEvent`
  `static enum`
  `TraceEvent.TraceTypeCategoryEvent`
  `static enum`
  `TraceEvent.TraceTypeCategoryPathEvent`
  `static enum`
  `TraceEvent.TraceTypeCategoryStringEvent`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `default TraceChangeRecord<T,U>`
  `cast(DomainObjectChangeRecord rec)`
  Cast a change record to one with object/affected value types for this event

  ### Methods inherited from interface ghidra.framework.model.EventType

  `getId`

- ## Method Details

  - ### cast

    default TraceChangeRecord<T,U> cast(DomainObjectChangeRecord rec)
    Cast a change record to one with object/affected value types for this event
    Parameters:
      `rec` - the untyped record
    Returns:
      the typed record