Package ghidra.trace.model.property

# Interface TracePropertyMap<T>

Type Parameters:
  `T` - the type of values

All Superinterfaces:
  `TracePropertyMapOperations<T>`

All Known Implementing Classes:
  `AbstractDBTracePropertyMap`, `AbstractDBTracePropertyMap.DBTraceIntPropertyMap`, `AbstractDBTracePropertyMap.DBTraceLongPropertyMap`, `AbstractDBTracePropertyMap.DBTraceSaveablePropertyMap`, `AbstractDBTracePropertyMap.DBTraceStringPropertyMap`, `AbstractDBTracePropertyMap.DBTraceVoidPropertyMap`

public interface TracePropertyMap<T> extends TracePropertyMapOperations<T>
A range map for storing properties in a trace

Technically, each range is actually a "box" in two dimensions: time and space. Time is represented by the span of snapshots covered, and space is represented by the range of addresses covered. Currently, no effort is made to optimize coverage for entries having the same value. For operations on entries, see `TracePropertyMapOperations`.

This interface is the root of a multi-space property map. For memory spaces, clients can generally use the operations inherited on this interface. For register spaces, clients must use `getPropertyMapRegisterSpace(TraceThread, int, boolean)` or similar.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `delete()`
  Delete this property and remove all of its maps
  `default TracePropertyMapSpace<T>`
  `getPropertyMapRegisterSpace(TraceStackFrame frame, boolean createIfAbsent)`
  Get the map space for the registers of a given frame (which knows its thread)
  `TracePropertyMapSpace<T>`
  `getPropertyMapRegisterSpace(TraceThread thread, int frameLevel, boolean createIfAbsent)`
  Get the map space for the registers of a given thread and frame
  `TracePropertyMapSpace<T>`
  `getPropertyMapSpace(AddressSpace space, boolean createIfAbsent)`
  Get the map space for the given address space

  ### Methods inherited from interface ghidra.trace.model.property.TracePropertyMapOperations

  `clear, get, getAddressSetView, getEntries, getEntry, getValueClass, set, set`

- ## Method Details

  - ### getPropertyMapSpace

    TracePropertyMapSpace<T> getPropertyMapSpace(AddressSpace space, boolean createIfAbsent)
    Get the map space for the given address space
    Parameters:
      `space` - the address space
      `createIfAbsent` - true to create the map space if it doesn't already exist
    Returns:
      the space, or null

  - ### getPropertyMapRegisterSpace

    TracePropertyMapSpace<T> getPropertyMapRegisterSpace(TraceThread thread, int frameLevel, boolean createIfAbsent)
    Get the map space for the registers of a given thread and frame
    Parameters:
      `thread` - the thread
      `frameLevel` - the frame level, 0 being the innermost
      `createIfAbsent` - true to create the map space if it doesn't already exist
    Returns:
      the space, or null

  - ### getPropertyMapRegisterSpace

    default TracePropertyMapSpace<T> getPropertyMapRegisterSpace(TraceStackFrame frame, boolean createIfAbsent)
    Get the map space for the registers of a given frame (which knows its thread)
    Parameters:
      `frame` - the frame
      `createIfAbsent` - true to create the map space if it doesn't already exist
    Returns:
      the space, or null

  - ### delete

    void delete()
    Delete this property and remove all of its maps

    The property can be re-created with the same or different value type.