public abstract class ConcurrentAbstractionPathBuilder extends AbstractAbstractionPathBuilder
IAbstractionPathBuilder.OnPathBuilderResultAvailableIMemoryBoundedSolver.IMemoryBoundedSolverStatusNotification| 限定符和类型 | 字段和说明 |
|---|---|
protected InterruptableExecutor |
executor |
protected InfoflowResults |
results |
logger, manager, pathConfig, resultAvailableHandlers| 构造器和说明 |
|---|
ConcurrentAbstractionPathBuilder(InfoflowManager manager,
InterruptableExecutor executor) |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
addStatusListener(IMemoryBoundedSolver.IMemoryBoundedSolverStatusNotification listener)
Adds a new listener that will be notified of status changes in the solver
|
void |
computeTaintPaths(Set<AbstractionAtSink> res)
Computes the path of tainted data between the source and the sink
|
void |
forceTerminate(ISolverTerminationReason reason)
Forces the solver to terminate its tasks and stop processing new tasks.
|
InfoflowResults |
getResults()
Gets the constructed result paths
|
protected abstract Runnable |
getTaintPathTask(AbstractionAtSink abs)
Gets the task that computes the result paths for a single abstraction.
|
ISolverTerminationReason |
getTerminationReason()
In case this solver was killed before it could complete its task, this
method returns the reason for the abortion.
|
boolean |
isKilled()
Checks whether this solver was killed before it could complete its tasks
|
boolean |
isTerminated()
Checks whether this solver is terminated, either by forced termination,
or because it has finished all of its work.
|
void |
reset()
Resets the solver to its initial state after it has been forcefully
terminated.
|
protected void |
scheduleDependentTask(Runnable task)
Schedules the given task for execution
|
protected abstract boolean |
triggerComputationForNeighbors()
Specifies whether the class shall create separate path reconstruction tasks
for the neighbors of the abstractions that arrive at the sink
|
addResultAvailableHandlerclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitrunIncrementalPathCompuationprotected final InfoflowResults results
protected final InterruptableExecutor executor
public ConcurrentAbstractionPathBuilder(InfoflowManager manager, InterruptableExecutor executor)
protected abstract Runnable getTaintPathTask(AbstractionAtSink abs)
abs - The abstraction for which to compute the result pathspublic void computeTaintPaths(Set<AbstractionAtSink> res)
IAbstractionPathBuilderres - The data flow tracker resultsprotected abstract boolean triggerComputationForNeighbors()
public InfoflowResults getResults()
IAbstractionPathBuilderpublic void forceTerminate(ISolverTerminationReason reason)
IMemoryBoundedSolverreason - The reason why the solver is terminatedprotected void scheduleDependentTask(Runnable task)
task - The task to executepublic boolean isTerminated()
IMemoryBoundedSolverpublic boolean isKilled()
IMemoryBoundedSolverpublic void reset()
IMemoryBoundedSolverpublic ISolverTerminationReason getTerminationReason()
IMemoryBoundedSolverpublic void addStatusListener(IMemoryBoundedSolver.IMemoryBoundedSolverStatusNotification listener)
IMemoryBoundedSolverlistener - The listener that will be notified when the status of the
solver changesCopyright © 2022 Fraunhofer SIT. All rights reserved.