Package ghidra.trace.model.listing

# Interface TraceDefinedDataView

All Superinterfaces:
  `TraceBaseCodeUnitsView<TraceData>`, `TraceBaseDefinedUnitsView<TraceData>`

All Known Subinterfaces:
  `InternalTraceDefinedDataView`

All Known Implementing Classes:
  `DBTraceDefinedDataMemoryView`, `DBTraceDefinedDataView`

public interface TraceDefinedDataView extends TraceBaseDefinedUnitsView<TraceData>
A view of defined data units

This view excludes instructions and default / undefined data units.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `TraceData`
  `create(TracePlatform platform, Lifespan lifespan, Register register, DataType dataType)`
  Create a data unit on the given platform register
  `TraceData`
  `create(Lifespan lifespan, Address address, DataType dataType)`
  Create a data unit of unspecified length starting at the given address
  `TraceData`
  `create(Lifespan lifespan, Address address, DataType dataType, int length)`
  Create a data unit starting at the given address
  `TraceData`
  `create(Lifespan lifespan, Address address, TracePlatform platform, DataType dataType)`
  Create a data unit of unspecified length starting at the given address
  `TraceData`
  `create(Lifespan lifespan, Address address, TracePlatform platform, DataType dataType, int length)`
  Create a data unit starting at the given address
  `default TraceData`
  `create(Lifespan lifespan, Register register, DataType dataType)`
  Create a data unit on the given register

  ### Methods inherited from interface ghidra.trace.model.listing.TraceBaseCodeUnitsView

  `containsAddress, coversRange, coversRange, get, get, get, get, get, get, get, getAddressSetView, getAddressSetView, getAfter, getAt, getBefore, getCeiling, getContaining, getContaining, getContaining, getFloor, getForRegister, getForRegister, getIntersecting, getTrace, intersectsRange, intersectsRange, size`

  ### Methods inherited from interface ghidra.trace.model.listing.TraceBaseDefinedUnitsView

  `clear, clear, clear`

- ## Method Details

  - ### create

    TraceData create(Lifespan lifespan, Address address, DataType dataType, int length) throws CodeUnitInsertionException
    Create a data unit starting at the given address

    If the given type is already part of this trace, its platform is used as is. If not, then it is resolved to the host platform.

    Parameters:
      `lifespan` - the span for which the unit is effective
      `address` - the starting address
      `dataType` - the data type for the unit
      `length` - the length of the unit, -1 for unspecified
    Returns:
      the new data unit
    Throws:
      `CodeUnitInsertionException` - if there's a conflict

  - ### create

    TraceData create(Lifespan lifespan, Address address, TracePlatform platform, DataType dataType, int length) throws CodeUnitInsertionException
    Create a data unit starting at the given address

    The given type is resolved to the given platform, even if the type already exists in the trace by another platform.

    Parameters:
      `lifespan` - the span for which the unit is effective
      `address` - the starting address
      `platform` - the platform for the type's `DataOrganization`
      `dataType` - the data type for the unit
      `length` - the length of the unit, -1 for unspecified
    Returns:
      the new data unit
    Throws:
      `CodeUnitInsertionException` - if there's a conflict

  - ### create

    TraceData create(Lifespan lifespan, Address address, DataType dataType) throws CodeUnitInsertionException
    Create a data unit of unspecified length starting at the given address

    The length will be determined by the data type, possibly by examining the bytes, e.g., a null-terminated UTF-8 string. If the given type is already part of this trace, its platform is used as is. If not, then it is resolved to the host platform.

    Parameters:
      `lifespan` - the span for which the unit is effective
      `address` - the starting address
      `dataType` - the data type for the unit
    Returns:
      the new data unit
    Throws:
      `CodeUnitInsertionException` - if there's a conflict

  - ### create

    TraceData create(Lifespan lifespan, Address address, TracePlatform platform, DataType dataType) throws CodeUnitInsertionException
    Create a data unit of unspecified length starting at the given address

    The length will be determined by the data type, possibly by examining the bytes, e.g., a null-terminated UTF-8 string. The given type is resolved to the given platform, even if the type already exists in the trace by another platform.

    Parameters:
      `lifespan` - the span for which the unit is effective
      `address` - the starting address
      `platform` - the platform for the type's `DataOrganization`
      `dataType` - the data type for the unit
    Returns:
      the new data unit
    Throws:
      `CodeUnitInsertionException` - if there's a conflict

  - ### create

    default TraceData create(Lifespan lifespan, Register register, DataType dataType) throws CodeUnitInsertionException
    Create a data unit on the given register

    If the register is memory mapped, this will delegate to the appropriate space. In those cases, the assignment affects all threads. The type is resolved to the host platform, even if it already exists in the trace by another platform.

    Parameters:
      `lifespan` - the span for which the unit is effective
      `register` - the register to assign a data type
      `dataType` - the data type for the register
    Returns:
      the new data unit
    Throws:
      `CodeUnitInsertionException` - if there's a conflict

  - ### create

    TraceData create(TracePlatform platform, Lifespan lifespan, Register register, DataType dataType) throws CodeUnitInsertionException
    Create a data unit on the given platform register

    If the register is memory mapped, this will delegate to the appropriate space. In those cases, the assignment affects all threads. The type is resolved to the given platform, even if it already exists in the trace by another platform.

    Parameters:
      `platform` - the platform whose language defines the register
      `lifespan` - the span for which the unit is effective
      `register` - the register to assign a data type
      `dataType` - the data type for the register
    Returns:
      the new data unit
    Throws:
      `CodeUnitInsertionException` - if there's a conflict