Package ghidra.trace.database.listing
Class AbstractWithUndefinedDBTraceCodeUnitsMemoryView<T extends DBTraceCodeUnitAdapter,M extends AbstractBaseDBTraceCodeUnitsView<T>>
java.lang.Object
ghidra.trace.database.listing.AbstractBaseDBTraceCodeUnitsMemoryView<T,M>
ghidra.trace.database.listing.AbstractWithUndefinedDBTraceCodeUnitsMemoryView<T,M>
- Type Parameters:
T- the implementation type of the units contained in the view. Must be a super-type ofUndefinedDBTraceData.M- the implementation type of the views being composed
- All Implemented Interfaces:
DBTraceDelegatingManager<M>
- Direct Known Subclasses:
DBTraceCodeUnitsMemoryView,DBTraceDataMemoryView,DBTraceUndefinedDataMemoryView
public abstract class AbstractWithUndefinedDBTraceCodeUnitsMemoryView<T extends DBTraceCodeUnitAdapter,M extends AbstractBaseDBTraceCodeUnitsView<T>>
extends AbstractBaseDBTraceCodeUnitsMemoryView<T,M>
An abstract implementation of
TraceBaseCodeUnitsView for composing views of many address
spaces, where the views include undefined units-
Nested Class Summary
Nested classes/interfaces inherited from interface ghidra.trace.database.space.DBTraceDelegatingManager
DBTraceDelegatingManager.ExcConsumer<T,E extends Throwable>, DBTraceDelegatingManager.ExcFunction<T, R, E extends Throwable>, DBTraceDelegatingManager.ExcPredicate<T, E extends Throwable>, DBTraceDelegatingManager.ExcSupplier<T, E extends Throwable> -
Field Summary
Fields inherited from class ghidra.trace.database.listing.AbstractBaseDBTraceCodeUnitsMemoryView
manager -
Constructor Summary
ConstructorsConstructorDescriptionConstruct a composite view -
Method Summary
Modifier and TypeMethodDescriptionprotected AddressSetViewThe address set when there is no view or space for the given range's spaceemptyOrFullIterableUndefined(long snap, AddressRange range, boolean forward) The result of iteration when there is no view or space for the given range's spaceprotected booleanThe result of contains, covers, or intersects when there is no view or space for an address spaceprotected TnullOrUndefined(long snap, Address address) Create the appropriate unit (possibly caching) when there is no view or space for the given address's spaceMethods inherited from class ghidra.trace.database.listing.AbstractBaseDBTraceCodeUnitsMemoryView
containsAddress, coversRange, coversRange, get, get, get, get, get, getAddressSetView, getAddressSetView, getAfter, getAt, getBefore, getCeiling, getContaining, getFloor, getForSpace, getIntersecting, getSpace, getTrace, getView, intersectsRange, intersectsRange, nextAddress, prevAddress, readLock, size, writeLockMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ghidra.trace.database.space.DBTraceDelegatingManager
checkIsInMemory, delegateAddressSet, delegateAny, delegateCollection, delegateDeleteB, delegateDeleteV, delegateFirst, delegateHashSet, delegateRead, delegateRead, delegateReadB, delegateReadI, delegateReadI, delegateReadOr, delegateWrite, delegateWriteAll, delegateWriteI, delegateWriteV
-
Constructor Details
-
AbstractWithUndefinedDBTraceCodeUnitsMemoryView
Construct a composite view- Parameters:
manager- the code manager, from which individual views are retrieved
-
-
Method Details
-
nullOrUndefined
Description copied from class:AbstractBaseDBTraceCodeUnitsMemoryViewCreate the appropriate unit (possibly caching) when there is no view or space for the given address's spaceViews composing undefined units should generate (possibly delegating to a view) an undefined unit. Others should leave this null.
- Overrides:
nullOrUndefinedin classAbstractBaseDBTraceCodeUnitsMemoryView<T extends DBTraceCodeUnitAdapter,M extends AbstractBaseDBTraceCodeUnitsView<T>> - Parameters:
snap- the snap the client requestedaddress- the address the client requested- Returns:
- the unit or null
-
emptyOrFullAddressSetUndefined
Description copied from class:AbstractBaseDBTraceCodeUnitsMemoryViewThe address set when there is no view or space for the given range's spaceViews composing undefined units should return the whole range. Others should leave this empty.
- Overrides:
emptyOrFullAddressSetUndefinedin classAbstractBaseDBTraceCodeUnitsMemoryView<T extends DBTraceCodeUnitAdapter,M extends AbstractBaseDBTraceCodeUnitsView<T>> - Parameters:
within- the range the client requested- Returns:
- the full range or empty
-
falseOrTrueUndefined
protected boolean falseOrTrueUndefined()Description copied from class:AbstractBaseDBTraceCodeUnitsMemoryViewThe result of contains, covers, or intersects when there is no view or space for an address spaceViews composing undefined units should return true, since the address is known to be in an unpopulated space. Others should leave this false.
- Overrides:
falseOrTrueUndefinedin classAbstractBaseDBTraceCodeUnitsMemoryView<T extends DBTraceCodeUnitAdapter,M extends AbstractBaseDBTraceCodeUnitsView<T>> - Returns:
- true if an undefined unit implicitly contains the address, false otherwise.
-
emptyOrFullIterableUndefined
public Iterable<? extends T> emptyOrFullIterableUndefined(long snap, AddressRange range, boolean forward) Description copied from class:AbstractBaseDBTraceCodeUnitsMemoryViewThe result of iteration when there is no view or space for the given range's spaceViews composing undefiend units should return an iterable that generates (possibly caching) undefined units. Others should leave this empty.
- Overrides:
emptyOrFullIterableUndefinedin classAbstractBaseDBTraceCodeUnitsMemoryView<T extends DBTraceCodeUnitAdapter,M extends AbstractBaseDBTraceCodeUnitsView<T>> - Parameters:
snap- the snap the client requestedrange- the range of iterationforward- true to iterate forward (min to max), false for backward (max to min)- Returns:
- an iterable of units
-
emptyOrFullIterableUndefined
- Overrides:
emptyOrFullIterableUndefinedin classAbstractBaseDBTraceCodeUnitsMemoryView<T extends DBTraceCodeUnitAdapter,M extends AbstractBaseDBTraceCodeUnitsView<T>> - Parameters:
tasr- the range of space and time to cover- Returns:
- the iterable
- See Also:
-