Package ghidra.trace.database.listing

# Class DBTraceDefinedUnitsView

java.lang.Object
ghidra.trace.database.listing.AbstractBaseDBTraceCodeUnitsView<AbstractDBTraceCodeUnit<?>>
ghidra.trace.database.listing.AbstractComposedDBTraceCodeUnitsView<AbstractDBTraceCodeUnit<?>,AbstractBaseDBTraceDefinedUnitsView<? extends AbstractDBTraceCodeUnit<?>>>
ghidra.trace.database.listing.DBTraceDefinedUnitsView

All Implemented Interfaces:
  `InternalBaseCodeUnitsView<TraceCodeUnit>`, `InternalTraceBaseDefinedUnitsView<TraceCodeUnit>`, `TraceBaseCodeUnitsView<TraceCodeUnit>`, `TraceBaseDefinedUnitsView<TraceCodeUnit>`, `TraceDefinedUnitsView`

public class DBTraceDefinedUnitsView extends AbstractComposedDBTraceCodeUnitsView<AbstractDBTraceCodeUnit<?>,AbstractBaseDBTraceDefinedUnitsView<? extends AbstractDBTraceCodeUnit<?>>> implements TraceDefinedUnitsView, InternalTraceBaseDefinedUnitsView<TraceCodeUnit>
The implementation of `TraceCodeOperations.data()`

- ## Field Summary

  ### Fields inherited from class ghidra.trace.database.listing.AbstractComposedDBTraceCodeUnitsView

  `parts`

  ### Fields inherited from class ghidra.trace.database.listing.AbstractBaseDBTraceCodeUnitsView

  `space`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DBTraceDefinedUnitsView(DBTraceCodeSpace space)`
  Construct the view

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `clear(Lifespan span, AddressRange range, boolean clearContext, TaskMonitor monitor)`
  Clear the units contained within the given span and address range.
  `boolean`
  `coversRange(Lifespan span, AddressRange range)`
  Check if the given span of snaps and range of addresses is covered by the units
  `boolean`
  `intersectsRange(Lifespan span, AddressRange range)`
  Check if the given span of snaps and range of addresses intersects any unit

  ### Methods inherited from class ghidra.trace.database.listing.AbstractComposedDBTraceCodeUnitsView

  `compareBackward, compareForward, containsAddress, get, getAddressSetView, getAt, getCeiling, getContaining, getFloor, getIntersecting, size`

  ### Methods inherited from class ghidra.trace.database.listing.AbstractBaseDBTraceCodeUnitsView

  `coversRange, get, get, get, get, getAddressSetView, getAddressSpace, getAfter, getBefore, getSpace, getTrace, intersectsRange`

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

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

  ### Methods inherited from interface ghidra.trace.database.listing.InternalBaseCodeUnitsView

  `get, getContaining, getForRegister, getSpace`

  ### Methods inherited from interface ghidra.trace.database.listing.InternalTraceBaseDefinedUnitsView

  `clear`

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

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

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

  `clear`

- ## Constructor Details

  - ### DBTraceDefinedUnitsView

    public DBTraceDefinedUnitsView(DBTraceCodeSpace space)
    Construct the view
    Parameters:
      `space` - the space, bound to an address space

- ## Method Details

  - ### coversRange

    public boolean coversRange(Lifespan span, AddressRange range)
    Description copied from interface: `TraceBaseCodeUnitsView`
    Check if the given span of snaps and range of addresses is covered by the units

    This checks if every (snap, address) point within the given box is contained within some code unit in this view.

    Specified by:
      `coversRange` in interface `TraceBaseCodeUnitsView<TraceCodeUnit>`
    Specified by:
      `coversRange` in class `AbstractBaseDBTraceCodeUnitsView<AbstractDBTraceCodeUnit<?>>`
    Parameters:
      `span` - the span of snaps
      `range` - the address range
    Returns:
      true if covered, false otherwise
    See Also:
      - `TraceBaseCodeUnitsView.coversRange(Lifespan, AddressRange)`

  - ### intersectsRange

    public boolean intersectsRange(Lifespan span, AddressRange range)
    Description copied from interface: `TraceBaseCodeUnitsView`
    Check if the given span of snaps and range of addresses intersects any unit

    This checks if any (snap, address) point within the given box is contained within some code unit in this view.

    Specified by:
      `intersectsRange` in interface `TraceBaseCodeUnitsView<TraceCodeUnit>`
    Specified by:
      `intersectsRange` in class `AbstractBaseDBTraceCodeUnitsView<AbstractDBTraceCodeUnit<?>>`
    Parameters:
      `span` - the span of snaps
      `range` - the address range
    Returns:
      true if intersecting, false otherwise
    See Also:
      - `TraceBaseCodeUnitsView.intersectsRange(Lifespan, AddressRange)`

  - ### clear

    public void clear(Lifespan span, AddressRange range, boolean clearContext, TaskMonitor monitor) throws CancelledException
    Description copied from interface: `TraceBaseDefinedUnitsView`
    Clear the units contained within the given span and address range.

    Any units alive before the given span are truncated instead of deleted. That is, their end snaps are reduced such that they no longer intersect the given span. Note that the same is not true of a unit's start snap. If the start snap is contained in the span, the unit is deleted, even if its end snap is outside the span.

    Specified by:
      `clear` in interface `TraceBaseDefinedUnitsView<TraceCodeUnit>`
    Parameters:
      `span` - the span to clear
      `range` - the range to clear
      `clearContext` - true to clear the register context as well
      `monitor` - a monitor for progress and cancellation
    Throws:
      `CancelledException` - if the clear is cancelled