ROSE
0.11.102.0
|
Base class for prioritizing work.
This class sorts execution paths by increasing priority and is used in various priority queues. For instance, it is used to prioritize the execution tree search order, and to prioritize the order in which interesting results are returned.
Definition at line 17 of file PathPrioritizer.h.
#include <Rose/BinaryAnalysis/ModelChecker/PathPrioritizer.h>
Public Types | |
using | Ptr = PathPrioritizerPtr |
Public Member Functions | |
virtual bool | operator() (const PathPtr &worse, const PathPtr &better) const |
Priority predicate. More... | |
|
virtual |
Priority predicate.
Given two paths, return true if path better
should be explored before path worse
, and false otherwise. This must be a strict weak ordering.
Note that the ordering predicate for C++ heaps is opposite the predicate for sorting containers with operator<. In other words, the item with the highest priority (not the lowest) is the one that will be taken next from the heap.
Thread safety: This method is thread safe. The base implementation is thread safe and all subclass implementations must also be thread safe.
Reimplemented in Rose::BinaryAnalysis::ModelChecker::RandomPathFirst, Rose::BinaryAnalysis::ModelChecker::FastestPathFirst, Rose::BinaryAnalysis::ModelChecker::LongestPathFirst, and Rose::BinaryAnalysis::ModelChecker::ShortestPathFirst.