9#ifndef TRIGGER_SRC_TRIGGER_TOKENMANAGER_HPP_
10#define TRIGGER_SRC_TRIGGER_TOKENMANAGER_HPP_
45 std::shared_ptr<LivetimeCounter> livetime_counter);
96 std::shared_ptr<iomanager::ReceiverConcept<dfmessages::TriggerDecisionToken>>
m_token_receiver;
TokenManager keeps track of the number of in-flight trigger decisions.
bool triggers_allowed() const
std::shared_ptr< LivetimeCounter > m_livetime_counter
TokenManager(TokenManager &&)=default
std::shared_ptr< iomanager::ReceiverConcept< dfmessages::TriggerDecisionToken > > m_token_receiver
std::set< dfmessages::trigger_number_t > m_open_trigger_decisions
std::atomic< int > m_n_tokens
void receive_token(dfmessages::TriggerDecisionToken &token)
TokenManager & operator=(TokenManager const &)=delete
TokenManager(const std::string &connection_name, int initial_tokens, daqdataformats::run_number_t run_number, std::shared_ptr< LivetimeCounter > livetime_counter)
daqdataformats::run_number_t m_run_number
std::mutex m_open_trigger_decisions_mutex
std::atomic< bool > m_running_flag
TokenManager(TokenManager const &)=delete
void trigger_sent(dfmessages::trigger_number_t)
std::chrono::time_point< std::chrono::steady_clock > m_open_trigger_time
std::string m_connection_name
TokenManager & operator=(TokenManager &&)=default
daqdataformats::trigger_number_t trigger_number_t
Copy daqdataformats::trigger_number_t.
Represents a message indicating that the DataFlow has one additional buffer available.