Go to the documentation of this file.
17 #include <fmt/format.h>
20 #include <unordered_map>
48 switch (
s.state() ) {
54 return ost <<
"d f: " <<
s.filterPassed() <<
" sc: " <<
s.execStatus();
64 using AlgStates = std::vector<AlgExecStateInternal>;
68 using extends::extends;
71 return { *
this,
ctx,
algKey( iAlg->name() ) };
77 return { *
this,
ctx,
algKey( iAlg->name() ) };
118 std::unordered_map<Gaudi::StringKey, AlgExecStateRef::AlgKey, Gaudi::StringKeyHash, std::equal_to<>>
m_algNameToIndex;
126 std::unordered_map<AlgExecStateRef::AlgKey, std::atomic<unsigned int>>
m_errorCount;
unsigned int incrementErrorCount(const IAlgorithm *iAlg) override
wrapper on an Algorithm state.
std::vector< AlgExecStateInternal > AlgStates
void setFilterPassed(bool f=true)
void dump(std::ostream &ost, const EventContext &ctx) const override
AlgExecStateRefConst algExecState(const std::string &algName, const EventContext &ctx) const override
std::vector< EventStatus::Status > m_eventStatus
friend std::ostream & operator<<(std::ostream &ost, const AlgExecStateInternal &s)
AlgExecStateInternal & getInternalState(const EventContext &ctx, AlgExecStateRef::AlgKey k)
const StatusCode & execStatus() const
void setState(AlgExecStateRef::State s)
std::vector< Gaudi::StringKey > m_preInitAlgs
const StatusCode & execStatus(const EventContext &, AlgExecStateRef::AlgKey) const override
AlgExecStateRef::AlgKey addAlg(const Gaudi::StringKey &) override
const EventStatus::Status & eventStatus(const EventContext &ctx) const override
bool filterPassed() const
A service that keeps track of the execution state of Algorithm.
std::vector< std::vector< AlgStatesWithSubSlot > > m_algSubSlotStates
void updateEventStatus(const bool &b, const EventContext &ctx) override
void setState(AlgExecStateRef::State s, const StatusCode &sc)
unsigned int algErrorCount(const IAlgorithm *iAlg) const override
AlgExecStateRef::State m_state
bool filterPassed(const EventContext &, AlgExecStateRef::AlgKey) const override
std::vector< std::string > m_algNames
void setExecStatus(const StatusCode &sc=StatusCode::SUCCESS)
void setState(const EventContext &, AlgExecStateRef::AlgKey, AlgExecStateRef::State) override
void setEventStatus(const EventStatus::Status &sc, const EventContext &ctx) override
Base class used to extend a class implementing other interfaces.
AlgExecStateRefConst algExecState(const IAlgorithm *iAlg, const EventContext &ctx) const override
void reset(const EventContext &ctx) override
std::once_flag m_initFlag
std::unordered_map< AlgExecStateRef::AlgKey, std::atomic< unsigned int > > m_errorCount
constexpr static const auto SUCCESS
AlgExecStateRef::State state() const
std::unordered_map< Gaudi::StringKey, AlgExecStateRef::AlgKey, Gaudi::StringKeyHash, std::equal_to<> > m_algNameToIndex
wrapper on an Algorithm state, const version.
const std::string & algName(AlgExecStateRef::AlgKey) const override
virtual AlgExecStateRef::AlgKey addAlg(const Gaudi::StringKey &algName)=0
adds a new algorithm to the service
AlgExecStateRef algExecState(const IAlgorithm *iAlg, const EventContext &ctx) override
AlgExecStateRef algExecState(const std::string &algName, const EventContext &ctx) override
AlgExecStateRef::AlgKey algKey(const std::string &algName) const
constexpr static const auto FAILURE
std::vector< AlgStates > m_algStates
void resetErrorCount() override
internal state of an algorithm
std::unordered_map< AlgExecStateRef::AlgKey, AlgExecStateInternal > AlgStatesWithSubSlot
AlgExecStateRef::State state(const EventContext &, AlgExecStateRef::AlgKey) const override
void setFilterPassed(const EventContext &, AlgExecStateRef::AlgKey, bool) override
void setExecStatus(const EventContext &, AlgExecStateRef::AlgKey, const StatusCode &) override