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


Prioritize longer paths.

Paths that are longer (more steps) get higher priority. When used with the work queue, this results in a depth-first search of the virtual execution tree.

Definition at line 55 of file PathPrioritizer.h.

#include <Rose/BinaryAnalysis/ModelChecker/PathPrioritizer.h>

Inheritance diagram for Rose::BinaryAnalysis::ModelChecker::LongestPathFirst:
Inheritance graph
Collaboration diagram for Rose::BinaryAnalysis::ModelChecker::LongestPathFirst:
Collaboration graph

Public Types

using Ptr = LongestPathFirstPtr
- Public Types inherited from Rose::BinaryAnalysis::ModelChecker::PathPrioritizer
using Ptr = PathPrioritizerPtr

Public Member Functions

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

Static Public Member Functions

static Ptr instance ()

Member Function Documentation

bool Rose::BinaryAnalysis::ModelChecker::LongestPathFirst::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 from Rose::BinaryAnalysis::ModelChecker::PathPrioritizer.

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