Loading [MathJax]/extensions/tex2jax.js
The Gaudi Framework  v31r0 (aeb156f0)
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
AlgExecStateSvc.h
Go to the documentation of this file.
1 #ifndef GAUDICORESVC_ALGEXECSTATESVC_H
2 #define GAUDICORESVC_ALGEXECSTATESVC_H 1
3 
6 #include "GaudiKernel/Service.h"
7 
8 #include <map>
9 #include <mutex>
10 #include <vector>
11 
16 class AlgExecStateSvc : public extends<Service, IAlgExecStateSvc> {
17 public:
18  using extends::extends;
19 
21 
23  const AlgExecState& algExecState( const Gaudi::StringKey& algName, const EventContext& ctx ) const override;
24  AlgExecState& algExecState( IAlgorithm* iAlg, const EventContext& ctx ) override;
25  const AlgStateMap_t& algExecStates( const EventContext& ctx ) const override;
26 
27  void reset( const EventContext& ctx ) override;
28 
30  void addAlg( const Gaudi::StringKey& algName ) override;
31 
32  const EventStatus::Status& eventStatus( const EventContext& ctx ) const override;
33 
34  void setEventStatus( const EventStatus::Status& sc, const EventContext& ctx ) override;
35 
36  void updateEventStatus( const bool& b, const EventContext& ctx ) override;
37 
38  unsigned int algErrorCount( const IAlgorithm* iAlg ) const override;
39  void resetErrorCount( const IAlgorithm* iAlg ) override;
40  unsigned int incrementErrorCount( const IAlgorithm* iAlg ) override;
41 
42  void dump( std::ostringstream& ost, const EventContext& ctx ) const override;
43 
44 private:
45  // one vector entry per event slot
47 
50 
52 
53  void init();
54  void checkInit() const;
56  bool m_isInit = false;
57 
59 };
60 
61 #endif
void resetErrorCount(const IAlgorithm *iAlg) override
A service that keeps track of the execution state of Algorithm.
IAlgExecStateSvc::AlgStateMap_t AlgStateMap_t
std::vector< AlgStateMap_t > m_algStates
const AlgExecState & algExecState(const Gaudi::StringKey &algName, const EventContext &ctx) const override
std::map< Gaudi::StringKey, std::atomic< unsigned int > > m_errorCount
void dump(std::ostringstream &ost, const EventContext &ctx) const override
void addAlg(const Gaudi::StringKey &algName) override
void updateEventStatus(const bool &b, const EventContext &ctx) override
std::once_flag m_initFlag
This class represents an entry point to all the event specific data.
Definition: EventContext.h:31
STL class.
The helper class to represent the efficient "key" for access.
Definition: StringKey.h:34
void checkInit() const
virtual const AlgExecState & algExecState(const Gaudi::StringKey &algName, const EventContext &ctx) const =0
unsigned int incrementErrorCount(const IAlgorithm *iAlg) override
std::vector< Gaudi::StringKey > m_preInitAlgs
unsigned int algErrorCount(const IAlgorithm *iAlg) const override
The IAlgorithm is the interface implemented by the Algorithm base class.
Definition: IAlgorithm.h:28
const AlgStateMap_t & algExecStates(const EventContext &ctx) const override
std::mutex m_mut
void reset(const EventContext &ctx) override
STL class.
Base class used to extend a class implementing other interfaces.
Definition: extends.h:10
const EventStatus::Status & eventStatus(const EventContext &ctx) const override
std::vector< EventStatus::Status > m_eventStatus
void setEventStatus(const EventStatus::Status &sc, const EventContext &ctx) override
virtual void addAlg(const Gaudi::StringKey &algName)=0