Public Types | Public Member Functions | List of all members
Rose::BinaryAnalysis::ModelChecker::PathPrioritizer Class Reference


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>

Inheritance diagram for Rose::BinaryAnalysis::ModelChecker::PathPrioritizer:
Inheritance graph

Public Types

using Ptr = PathPrioritizerPtr

Public Member Functions

virtual bool operator() (const PathPtr &worse, const PathPtr &better) const
 Priority predicate. More...

Member Function Documentation

virtual bool Rose::BinaryAnalysis::ModelChecker::PathPrioritizer::operator() ( const PathPtr &  worse,
const PathPtr &  better 
) const

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.

The documentation for this class was generated from the following file: