Package ghidra.trace.database.listing

# Class AbstractBaseDBTraceCodeUnitsView<T extends DBTraceCodeUnitAdapter>

java.lang.Object
ghidra.trace.database.listing.AbstractBaseDBTraceCodeUnitsView<T>

Type Parameters:
  `T` - the implementation type of the units contained in the view

Direct Known Subclasses:
  `AbstractComposedDBTraceCodeUnitsView`, `AbstractSingleDBTraceCodeUnitsView`

public abstract class AbstractBaseDBTraceCodeUnitsView<T extends DBTraceCodeUnitAdapter> extends Object
An abstract implementation of a `TraceBaseCodeUnitsView` for a specific address space

Note that this class does not declare `TraceBaseCodeUnitsView` as an implemented interface, thought it does implement it structurally. If it were implemented nominally, the realizations would inherit the same interface twice, with different type parameters, which is not allowed.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected final DBTraceCodeSpace`
  `space`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `AbstractBaseDBTraceCodeUnitsView(DBTraceCodeSpace space)`
  Construct a view

- ## Method Summary

  Modifier and Type
  Method
  Description
  `abstract boolean`
  `containsAddress(long snap, Address address)`
  `abstract boolean`
  `coversRange(Lifespan span, AddressRange range)`
  `boolean`
  `coversRange(TraceAddressSnapRange range)`
  `Iterable<? extends T>`
  `get(long snap, boolean forward)`
  `Iterable<? extends T>`
  `get(long snap, Address start, boolean forward)`
  `Iterable<? extends T>`
  `get(long snap, AddressRange range, boolean forward)`
  `abstract Iterable<? extends T>`
  `get(long snap, Address min, Address max, boolean forward)`
  `Iterable<? extends T>`
  `get(long snap, AddressSetView set, boolean forward)`
  `AddressSetView`
  `getAddressSetView(long snap)`
  `abstract AddressSetView`
  `getAddressSetView(long snap, AddressRange within)`
  `protected AddressSpace`
  `getAddressSpace()`
  Get the address space for this view
  `T`
  `getAfter(long snap, Address address)`
  `abstract T`
  `getAt(long snap, Address address)`
  `T`
  `getBefore(long snap, Address address)`
  `abstract T`
  `getCeiling(long snap, Address address)`
  `abstract T`
  `getContaining(long snap, Address address)`
  `abstract T`
  `getFloor(long snap, Address address)`
  `abstract Iterable<? extends T>`
  `getIntersecting(TraceAddressSnapRange tasr)`
  `AddressSpace`
  `getSpace()`
  `Trace`
  `getTrace()`
  `abstract boolean`
  `intersectsRange(Lifespan span, AddressRange range)`
  `boolean`
  `intersectsRange(TraceAddressSnapRange range)`
  `abstract int`
  `size()`

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

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

- ## Field Details

  - ### space

    protected final DBTraceCodeSpace space

- ## Constructor Details

  - ### AbstractBaseDBTraceCodeUnitsView

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

- ## Method Details

  - ### getSpace

    public AddressSpace getSpace()

  - ### getAddressSpace

    protected AddressSpace getAddressSpace()
    Get the address space for this view
    Returns:
      the address space

  - ### getTrace

    public Trace getTrace()
    See Also:
      - `TraceBaseCodeUnitsView.getTrace()`

  - ### size

    public abstract int size()
    See Also:
      - `TraceBaseCodeUnitsView.size()`

  - ### getBefore

    public T getBefore(long snap, Address address)
    See Also:
      - `TraceBaseCodeUnitsView.getBefore(long, Address)`

  - ### getFloor

    public abstract T getFloor(long snap, Address address)
    See Also:
      - `TraceBaseCodeUnitsView.getFloor(long, Address)`

  - ### getContaining

    public abstract T getContaining(long snap, Address address)
    See Also:
      - `TraceBaseCodeUnitsView.getContaining(long, Address)`

  - ### getAt

    public abstract T getAt(long snap, Address address)
    See Also:
      - `TraceBaseCodeUnitsView.getAt(long, Address)`

  - ### getCeiling

    public abstract T getCeiling(long snap, Address address)
    See Also:
      - `TraceBaseCodeUnitsView.getCeiling(long, Address)`

  - ### getAfter

    public T getAfter(long snap, Address address)
    See Also:
      - `TraceBaseCodeUnitsView.getAfter(long, Address)`

  - ### get

    public abstract Iterable<? extends T> get(long snap, Address min, Address max, boolean forward)
    See Also:
      - `TraceBaseCodeUnitsView.get(long, Address, Address, boolean)`

  - ### getIntersecting

    public abstract Iterable<? extends T> getIntersecting(TraceAddressSnapRange tasr)
    See Also:
      - `TraceBaseCodeUnitsView.getIntersecting(TraceAddressSnapRange)`

  - ### get

    public Iterable<? extends T> get(long snap, AddressSetView set, boolean forward)
    See Also:
      - `TraceBaseCodeUnitsView.get(long, AddressSetView, boolean)`

  - ### get

    public Iterable<? extends T> get(long snap, AddressRange range, boolean forward)
    See Also:
      - `TraceBaseCodeUnitsView.get(long, AddressRange, boolean)`

  - ### get

    public Iterable<? extends T> get(long snap, Address start, boolean forward)
    See Also:
      - `TraceBaseCodeUnitsView.get(long, Address, boolean)`

  - ### get

    public Iterable<? extends T> get(long snap, boolean forward)
    See Also:
      - `TraceBaseCodeUnitsView.get(long, boolean)`

  - ### getAddressSetView

    public abstract AddressSetView getAddressSetView(long snap, AddressRange within)
    See Also:
      - `TraceBaseCodeUnitsView.getAddressSetView(long, AddressRange)`

  - ### getAddressSetView

    public AddressSetView getAddressSetView(long snap)
    See Also:
      - `TraceBaseCodeUnitsView.getAddressSetView(long)`

  - ### containsAddress

    public abstract boolean containsAddress(long snap, Address address)
    See Also:
      - `TraceBaseCodeUnitsView.containsAddress(long, Address)`

  - ### coversRange

    public abstract boolean coversRange(Lifespan span, AddressRange range)
    See Also:
      - `TraceBaseCodeUnitsView.coversRange(Lifespan, AddressRange)`

  - ### coversRange

    public boolean coversRange(TraceAddressSnapRange range)
    See Also:
      - `TraceBaseCodeUnitsView.coversRange(TraceAddressSnapRange)`

  - ### intersectsRange

    public abstract boolean intersectsRange(Lifespan span, AddressRange range)
    See Also:
      - `TraceBaseCodeUnitsView.intersectsRange(Lifespan, AddressRange)`

  - ### intersectsRange

    public boolean intersectsRange(TraceAddressSnapRange range)
    See Also:
      - `TraceBaseCodeUnitsView.intersectsRange(TraceAddressSnapRange)`