The Gaudi Framework  master (b9786168)
Loading...
Searching...
No Matches
IPrecedenceSvc.h
Go to the documentation of this file.
1/***********************************************************************************\
2* (c) Copyright 1998-2025 CERN for the benefit of the LHCb and ATLAS collaborations *
3* *
4* This software is distributed under the terms of the Apache version 2 licence, *
5* copied verbatim in the file "LICENSE". *
6* *
7* In applying this licence, CERN does not waive the privileges and immunities *
8* granted to it by virtue of its status as an Intergovernmental Organization *
9* or submit itself to any jurisdiction. *
10\***********************************************************************************/
11#pragma once
12
14
15#include <string>
16
17struct EventSlot;
18struct Cause;
19
20//-----------------------------------------------------------------------------
21
29
30//-----------------------------------------------------------------------------
31
32class GAUDI_API IPrecedenceSvc : virtual public IInterface {
33
34public:
37
39 virtual StatusCode iterate( EventSlot&, const Cause& ) = 0;
40
42 virtual StatusCode simulate( EventSlot& ) const = 0;
43
45 virtual bool CFRulesResolved( EventSlot& ) const = 0;
46
48 virtual uint getPriority( const std::string& ) const = 0;
49
51 virtual bool isAsynchronous( const std::string& ) const = 0;
52
54 virtual void dumpControlFlow() const = 0;
55 virtual void dumpDataFlow() const = 0;
56 virtual const std::string printState( EventSlot& ) const = 0;
57
59 virtual void dumpPrecedenceRules( const EventSlot& ) = 0;
61 virtual void dumpPrecedenceTrace( const EventSlot& ) = 0;
62};
#define GAUDI_API
Definition Kernel.h:49
Definition of the basic interface.
Definition IInterface.h:225
Abstract interface for a service that manages tasks' precedence.
virtual const std::string printState(EventSlot &) const =0
virtual void dumpDataFlow() const =0
virtual StatusCode simulate(EventSlot &) const =0
Simulate execution flow.
virtual void dumpControlFlow() const =0
Dump precedence rules.
DeclareInterfaceID(IPrecedenceSvc, 1, 0)
InterfaceID.
virtual StatusCode iterate(EventSlot &, const Cause &)=0
Infer the precedence effect caused by an execution flow event.
virtual uint getPriority(const std::string &) const =0
Get task priority.
virtual bool CFRulesResolved(EventSlot &) const =0
Check if control flow rules are resolved.
virtual void dumpPrecedenceTrace(const EventSlot &)=0
Dump precedence trace.
virtual bool isAsynchronous(const std::string &) const =0
Check if a task is asynchronous.
virtual void dumpPrecedenceRules(const EventSlot &)=0
Dump precedence rules.
This class is used for returning status codes from appropriate routines.
Definition StatusCode.h:64
Class representing an event slot.
Definition EventSlot.h:23