Package ghidra.util.graph
Class DeterministicDependencyGraph<T>
- java.lang.Object
-
- ghidra.util.graph.AbstractDependencyGraph<T>
-
- ghidra.util.graph.DeterministicDependencyGraph<T>
-
- Type Parameters:
T- the type of value.
public class DeterministicDependencyGraph<T> extends AbstractDependencyGraph<T>
Dependency Graph that usesTreeMaps andListOrderedSets to provide determinism in pulling (AbstractDependencyGraph.pop()) from the graph. This class seems to consume more memory thanDependencyGraph, and if memory is not an issue, it also seems to be slightly faster as well.This class was implemented to provide determinism while doing developmental debugging.
- See Also:
AbstractDependencyGraph,DependencyGraph
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class ghidra.util.graph.AbstractDependencyGraph
AbstractDependencyGraph.DependencyNode
-
-
Field Summary
-
Fields inherited from class ghidra.util.graph.AbstractDependencyGraph
nodeMap, unvisitedIndependentSet
-
-
Constructor Summary
Constructors Constructor Description DeterministicDependencyGraph()DeterministicDependencyGraph(DeterministicDependencyGraph<T> other)Copy constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description DeterministicDependencyGraph<T>copy()Returns a copy of this graph.protected java.util.Set<AbstractDependencyGraph.DependencyNode>createDependencyNodeSet()Creates the Set ofAbstractDependencyGraph.DependencyNodes appropriate for the implementer.protected java.util.Map<T,AbstractDependencyGraph.DependencyNode>createNodeMap()Creates the Map of Nodes toAbstractDependencyGraph.DependencyNodes appropriate for the implementer.protected java.util.Set<T>createNodeSet()Creates the Set of Nodes appropriate for the implementer.java.util.Set<T>getNodeMapValues()Returns the set of values in this graph.-
Methods inherited from class ghidra.util.graph.AbstractDependencyGraph
addDependency, addValue, contains, getAllIndependentValues, getDependentValues, getNodeMap, getUnvisitedIndependentValues, getValues, hasCycles, hasUnVisitedIndependentValues, isEmpty, pop, remove, size
-
-
-
-
Constructor Detail
-
DeterministicDependencyGraph
public DeterministicDependencyGraph()
-
DeterministicDependencyGraph
public DeterministicDependencyGraph(DeterministicDependencyGraph<T> other)
Copy constructor- Parameters:
other- the other DependencyGraph to copy
-
-
Method Detail
-
copy
public DeterministicDependencyGraph<T> copy()
Description copied from class:AbstractDependencyGraphReturns a copy of this graph.- Specified by:
copyin classAbstractDependencyGraph<T>- Returns:
- a copy of this graph.
-
createNodeMap
protected java.util.Map<T,AbstractDependencyGraph.DependencyNode> createNodeMap()
Description copied from class:AbstractDependencyGraphCreates the Map of Nodes toAbstractDependencyGraph.DependencyNodes appropriate for the implementer.- Specified by:
createNodeMapin classAbstractDependencyGraph<T>- Returns:
- a new Map of Nodes to
AbstractDependencyGraph.DependencyNodes.
-
createNodeSet
protected java.util.Set<T> createNodeSet()
Description copied from class:AbstractDependencyGraphCreates the Set of Nodes appropriate for the implementer.- Specified by:
createNodeSetin classAbstractDependencyGraph<T>- Returns:
- a new Set of Nodes.
-
createDependencyNodeSet
protected java.util.Set<AbstractDependencyGraph.DependencyNode> createDependencyNodeSet()
Description copied from class:AbstractDependencyGraphCreates the Set ofAbstractDependencyGraph.DependencyNodes appropriate for the implementer.- Specified by:
createDependencyNodeSetin classAbstractDependencyGraph<T>- Returns:
- a new Set of
AbstractDependencyGraph.DependencyNodes.
-
getNodeMapValues
public java.util.Set<T> getNodeMapValues()
Description copied from class:AbstractDependencyGraphReturns the set of values in this graph.- Specified by:
getNodeMapValuesin classAbstractDependencyGraph<T>- Returns:
- the set of values in this graph.
-
-