DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
TriggerInhibitAgent.hpp
Go to the documentation of this file.
1
12#ifndef DFMODULES_SRC_DFMODULES_TRIGGERINHIBITAGENT_HPP_
13#define DFMODULES_SRC_DFMODULES_TRIGGERINHIBITAGENT_HPP_
14
15#include "iomanager/Sender.hpp"
22
23#include <atomic>
24#include <chrono>
25#include <cstdint>
26#include <memory>
27#include <string>
28#include <thread>
29
30namespace dunedaq {
31namespace dfmodules {
32
37{
38public:
41
45 explicit TriggerInhibitAgent(const std::string&,
46 std::shared_ptr<trigdecreceiver_t>,
47 std::shared_ptr<triginhsender_t>);
48
53
54 void start_checking();
55
56 void stop_checking();
57
58 void set_threshold_for_inhibit(uint32_t value) // NOLINT
59 {
60 m_threshold_for_inhibit.store(value);
61 }
62
67
68private:
69 // Threading
70 dunedaq::utilities::WorkerThread m_thread;
71 void do_work(std::atomic<bool>&);
72
73 // Configuration
74 std::chrono::milliseconds m_queue_timeout;
75 std::atomic<uint32_t> m_threshold_for_inhibit; // NOLINT
76
77 // Queue(s)
78 std::shared_ptr<trigdecreceiver_t> m_trigger_decision_receiver;
79 std::shared_ptr<triginhsender_t> m_trigger_inhibit_sender;
80
81 // Internal data
82 std::atomic<daqdataformats::trigger_number_t> m_trigger_number_at_start_of_processing_chain;
83 std::atomic<daqdataformats::trigger_number_t> m_trigger_number_at_end_of_processing_chain;
84};
85} // namespace dfmodules
86} // namespace dunedaq
87
88#endif // DFMODULES_SRC_DFMODULES_TRIGGERINHIBITAGENT_HPP_
std::shared_ptr< triginhsender_t > m_trigger_inhibit_sender
TriggerInhibitAgent & operator=(const TriggerInhibitAgent &)=delete
TriggerInhibitAgent is not copy-assignable.
TriggerInhibitAgent & operator=(TriggerInhibitAgent &&)=delete
TriggerInhibitAgent is not move-assignable.
TriggerInhibitAgent(TriggerInhibitAgent &&)=delete
TriggerInhibitAgent is not move-constructible.
TriggerInhibitAgent(const TriggerInhibitAgent &)=delete
TriggerInhibitAgent is not copy-constructible.
std::shared_ptr< trigdecreceiver_t > m_trigger_decision_receiver
void set_latest_trigger_number(daqdataformats::trigger_number_t trig_num)
std::atomic< daqdataformats::trigger_number_t > m_trigger_number_at_start_of_processing_chain
dunedaq::utilities::WorkerThread m_thread
std::atomic< daqdataformats::trigger_number_t > m_trigger_number_at_end_of_processing_chain
TriggerInhibitAgent(const std::string &, std::shared_ptr< trigdecreceiver_t >, std::shared_ptr< triginhsender_t >)
TriggerInhibitAgent Constructor.
Implements the Named interface.
uint64_t trigger_number_t
Type used to represent trigger number.
Definition Types.hpp:24
Including Qt Headers.