1 #ifndef GAUDIHIVE_ALGSEXECUTIONSTATES_H
2 #define GAUDIHIVE_ALGSEXECUTIONSTATES_H
5 #include "GaudiKernel/Service.h"
10 #include <unordered_map>
15 #include <boost/dynamic_bitset.hpp>
60 return m_states.size() == (
unsigned int)execAlgos;
82 class Iterator :
public std::iterator<std::forward_iterator_tag, uint> {
126 return std::distance(
v_->begin(),
pos_);
130 std::vector<State>::const_iterator
pos_;
132 const std::vector<State> *
v_;
137 return(
Iterator(Iterator::POS::BEGIN, kind, m_states));
142 return(
Iterator(Iterator::POS::END, kind, m_states));
149 return s << static_cast<unsigned short>(x);
152 #endif // GAUDIHIVE_ALGSEXECUTIONSTATES_H
bool algsPresent(State state) const
const std::vector< State > * v_
Iterator & operator=(const Iterator &other)
AlgsExecutionStates(unsigned int algsNumber, SmartIF< IMessageSvc > MS)
size_t sizeOfSubset(State state) const
bool operator==(const Iterator &other)
The AlgsExecutionStates encodes the state machine for the execution of algorithms within a single eve...
This class is used for returning status codes from appropriate routines.
Iterator & operator++(int)
SmartIF< IMessageSvc > m_MS
std::vector< State >::const_iterator pos_
const State & operator[](unsigned int i) const
std::vector< State > m_states
boost::spirit::classic::position_iterator2< ForwardIterator > Iterator
Iterator begin(State kind)
std::ostream & operator<<(std::ostream &s, AlgsExecutionStates::State x)
Streaming of State values (required by C++11 scoped enums).
bool operator!=(const Iterator &other)
State
Execution states of the algorithms.
Iterator(POS pos, State s, const std::vector< State > &v)
static std::map< State, std::string > stateNames
StatusCode updateState(unsigned int iAlgo, State newState)