20#include <boost/filesystem.hpp>
90 boost::filesystem::unique_path( boost::filesystem::path(
"precedence.analysis.%%%%" ) ) };
92 "Dump task precedence traces for each event." };
94 this,
"PrecedenceTraceFile",
"",
95 "Override default name of the GRAPHML trace file. NOTE: if more than "
96 "1 event is processed, the setting forces creation of a single file "
97 "with cumulative precedence trace." };
100 "Override default name of the GRAPHML precedence rules file." };
102 "Verify task precedence rules for common errors." };
104 "Show the configuration of DataFlow between Algorithms" };
Base class from which all concrete algorithm classes should be derived.
Implementation of property with value of concrete type.
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
PrecedenceSvc(const std::string &name, ISvcLocator *svcLoc)
Constructor.
void dumpControlFlow() const override
Dump precedence rules.
Gaudi::Property< bool > m_showDataFlow
bool isAsynchronous(const std::string &name) const override
Check if a task is asynchronous.
concurrency::PrecedenceRulesGraph m_PRGraph
Graph of precedence rules.
Gaudi::Property< bool > m_dumpPrecTrace
Gaudi::Property< std::string > m_dumpPrecTraceFile
Gaudi::Property< bool > m_ignoreDFRules
Scheduling strategy.
Gaudi::Property< bool > m_dumpPrecRules
uint getPriority(const std::string &name) const override
Get priority of an algorithm.
StatusCode iterate(EventSlot &, const Cause &) override
Infer the precedence effect caused by an execution flow event.
Gaudi::Property< std::string > m_dumpPrecRulesFile
const std::string printState(EventSlot &) const override
StatusCode finalize() override
Finalize.
Gaudi::Property< bool > m_verifyRules
StatusCode simulate(EventSlot &) const override
Simulate execution flow.
SmartIF< IAlgResourcePool > m_algResourcePool
A shortcut to the algorithm resource pool.
void dumpPrecedenceRules(const EventSlot &) override
Dump precedence rules (available only in DEBUG mode, and must be enabled with the corresponding servi...
Gaudi::Property< std::string > m_mode
Scheduling strategy.
bool CFRulesResolved(EventSlot &) const override
Check if the root CF decision is resolved.
boost::filesystem::path m_dumpDirName
Precedence analysis facilities.
StatusCode initialize() override
Initialize.
void dumpPrecedenceTrace(const EventSlot &) override
Dump precedence trace (available only in DEBUG mode, and must be enabled with the corresponding servi...
const concurrency::PrecedenceRulesGraph * getRules() const
Precedence rules accessor.
StatusCode assembleCFRules(Gaudi::Algorithm *, const std::string &, unsigned int recursionDepth=0)
void dumpDataFlow() const override
SmartIF< ISvcLocator > & serviceLocator() const override
Retrieve pointer to service locator.
const std::string & name() const override
Retrieve name of the service.
Small smart pointer class with automatic reference counting for IInterface.
This class is used for returning status codes from appropriate routines.
Base class used to extend a class implementing other interfaces.
Class representing an event slot.