Class DBTraceObjectValue
- All Implemented Interfaces:
TraceObjectValue
-
Constructor Summary
ConstructorsConstructorDescriptionDBTraceObjectValue(DBTraceObjectManager manager, ghidra.trace.database.target.TraceObjectValueStorage wrapped) -
Method Summary
Modifier and TypeMethodDescriptionvoiddelete()Delete this entryprotected KeyPathprotected booleanprotected Stream<? extends TraceObjectValPath> doStreamVisitor(Lifespan span, TreeTraversal.Visitor visitor) Get the "canonical path" of this valuegetChild()Get the value as an objectGet the key identifying this child to its parentGet the lifespan of this entrylongGet the maximum snap of this entrylongGet the minimum snap of this entryGet the parent object of this entrygetTrace()Get the trace containing this value entrygetValue()Get the valueghidra.trace.database.target.TraceObjectValueStoragebooleanCheck if this value represents its child's canonical locationbooleanCheck if this value entry has been deletedbooleanisObject()Check if the value is an object (i.e.,TraceObject)voidsetLifespan(Lifespan lifespan) Set the lifespan of this entry, truncating duplicatesvoidsetLifespan(Lifespan lifespan, TraceObject.ConflictResolution resolution) Set the lifespan of this entryvoidsetMaxSnap(long maxSnap) Set the maximum snap of this entryvoidsetMinSnap(long minSnap) Set the minimum snap of this entrytoString()truncateOrDelete(Lifespan span) Modify the lifespan or delete this entry, such that it no longer intersects the given span.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface ghidra.trace.model.target.TraceObjectValue
castValue, getTargetSchema, hasEntryKey, isHidden
-
Constructor Details
-
DBTraceObjectValue
public DBTraceObjectValue(DBTraceObjectManager manager, ghidra.trace.database.target.TraceObjectValueStorage wrapped)
-
-
Method Details
-
toString
-
getTrace
Description copied from interface:TraceObjectValueGet the trace containing this value entry- Specified by:
getTracein interfaceTraceObjectValue- Returns:
- the trace
-
getEntryKey
Description copied from interface:TraceObjectValueGet the key identifying this child to its parent- Specified by:
getEntryKeyin interfaceTraceObjectValue- Returns:
- the key
-
doGetCanonicalPath
-
getCanonicalPath
Description copied from interface:TraceObjectValueGet the "canonical path" of this valueThis is the parent's canonical path extended by this value's entry key. Note, in the case this value has a child object, this is not necessarily its canonical path.
- Specified by:
getCanonicalPathin interfaceTraceObjectValue- Returns:
- the canonical path
-
getValue
Description copied from interface:TraceObjectValueGet the value- Specified by:
getValuein interfaceTraceObjectValue- Returns:
- the value
-
isObject
public boolean isObject()Description copied from interface:TraceObjectValueCheck if the value is an object (i.e.,TraceObject)- Specified by:
isObjectin interfaceTraceObjectValue- Returns:
- true if an object, false otherwise
-
doIsCanonical
protected boolean doIsCanonical() -
isCanonical
public boolean isCanonical()Description copied from interface:TraceObjectValueCheck if this value represents its child's canonical locationThe value is canonical if the parent's canonical path extended by this value's key gives the child's canonical path. If the value is not a child object, the value cannot be canonical.
- Specified by:
isCanonicalin interfaceTraceObjectValue- Returns:
- true if canonical
-
getLifespan
Description copied from interface:TraceObjectValueGet the lifespan of this entry- Specified by:
getLifespanin interfaceTraceObjectValue- Returns:
- the lifespan
-
setMinSnap
public void setMinSnap(long minSnap) Description copied from interface:TraceObjectValueSet the minimum snap of this entry- Specified by:
setMinSnapin interfaceTraceObjectValue- Parameters:
minSnap- the minimum snap, orLong.MIN_VALUEfor "since the beginning of time"- See Also:
-
getMinSnap
public long getMinSnap()Description copied from interface:TraceObjectValueGet the minimum snap of this entry- Specified by:
getMinSnapin interfaceTraceObjectValue- Returns:
- the minimum snap, or
Long.MIN_VALUEfor "since the beginning of time"
-
setMaxSnap
public void setMaxSnap(long maxSnap) Description copied from interface:TraceObjectValueSet the maximum snap of this entry- Specified by:
setMaxSnapin interfaceTraceObjectValue- Parameters:
maxSnap- the maximum snap, orLong.MAX_VALUEfor "to the end of time"- See Also:
-
getMaxSnap
public long getMaxSnap()Description copied from interface:TraceObjectValueGet the maximum snap of this entry- Specified by:
getMaxSnapin interfaceTraceObjectValue- Returns:
- the maximum snap, or
Long.MAX_VALUEfor "to the end of time"
-
delete
public void delete()Description copied from interface:TraceObjectValueDelete this entry- Specified by:
deletein interfaceTraceObjectValue
-
isDeleted
public boolean isDeleted()Description copied from interface:TraceObjectValueCheck if this value entry has been deleted- Specified by:
isDeletedin interfaceTraceObjectValue- Returns:
- true if the entry has been deleted
-
truncateOrDelete
Description copied from interface:TraceObjectValueModify the lifespan or delete this entry, such that it no longer intersects the given span.If the given span and the current lifespan are already disjoint, this does nothing. If the given span splits the current lifespan in two, then a new entry is created for the later lifespan.
- Specified by:
truncateOrDeletein interfaceTraceObjectValue- Parameters:
span- the span to clear- Returns:
- this if the one entry remains, null if the entry is deleted, or the generated entry if a second is created.
-
getChild
Description copied from interface:TraceObjectValueGet the value as an object- Specified by:
getChildin interfaceTraceObjectValue- Returns:
- the child
-
setLifespan
Description copied from interface:TraceObjectValueSet the lifespan of this entry, truncating duplicates- Specified by:
setLifespanin interfaceTraceObjectValue- Parameters:
lifespan- the new lifespan
-
setLifespan
Description copied from interface:TraceObjectValueSet the lifespan of this entryNOTE: For storage efficiency, when expanding the lifespan, the manager may coalesce this value with intersecting values having equal keys and values. Thus, the resulting lifespan may be larger than specified.
Values cannot intersect and have the same key, otherwise the value of that key could not be uniquely determined at a given snap. Thus, when lifespans are being adjusted, such conflicts must be resolved.
- Specified by:
setLifespanin interfaceTraceObjectValue- Parameters:
lifespan- the new lifespanresolution- specifies how to resolve duplicate keys with intersecting lifespans
-
getParent
Description copied from interface:TraceObjectValueGet the parent object of this entry- Specified by:
getParentin interfaceTraceObjectValue- Returns:
- the parent
-
doStreamVisitor
protected Stream<? extends TraceObjectValPath> doStreamVisitor(Lifespan span, TreeTraversal.Visitor visitor) -
getWrapped
public ghidra.trace.database.target.TraceObjectValueStorage getWrapped()
-