DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
dfmodules
src
dfmodules
TriggerInhibitAgent.hpp
Go to the documentation of this file.
1
11
12
#ifndef DFMODULES_SRC_DFMODULES_TRIGGERINHIBITAGENT_HPP_
13
#define DFMODULES_SRC_DFMODULES_TRIGGERINHIBITAGENT_HPP_
14
15
#include "
iomanager/Sender.hpp
"
16
#include "
iomanager/Receiver.hpp
"
17
#include "
utilities/NamedObject.hpp
"
18
#include "
daqdataformats/Types.hpp
"
19
#include "
dfmessages/TriggerDecision.hpp
"
20
#include "
dfmessages/TriggerInhibit.hpp
"
21
#include "
utilities/WorkerThread.hpp
"
22
23
#include <atomic>
24
#include <chrono>
25
#include <cstdint>
26
#include <memory>
27
#include <string>
28
#include <thread>
29
30
namespace
dunedaq
{
31
namespace
dfmodules
{
32
36
class
TriggerInhibitAgent
:
public
utilities::NamedObject
37
{
38
public
:
39
using
trigdecreceiver_t
=
iomanager::ReceiverConcept<dfmessages::TriggerDecision>
;
40
using
triginhsender_t
=
iomanager::SenderConcept<dfmessages::TriggerInhibit>
;
41
45
explicit
TriggerInhibitAgent
(
const
std::string&,
46
std::shared_ptr<trigdecreceiver_t>,
47
std::shared_ptr<triginhsender_t>);
48
49
TriggerInhibitAgent
(
const
TriggerInhibitAgent
&) =
delete
;
50
TriggerInhibitAgent
&
operator=
(
const
TriggerInhibitAgent
&) =
delete
;
51
TriggerInhibitAgent
(
TriggerInhibitAgent
&&) =
delete
;
52
TriggerInhibitAgent
&
operator=
(
TriggerInhibitAgent
&&) =
delete
;
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
63
void
set_latest_trigger_number
(
daqdataformats::trigger_number_t
trig_num)
64
{
65
m_trigger_number_at_end_of_processing_chain
.store(trig_num);
66
}
67
68
private
:
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_
NamedObject.hpp
TriggerInhibit.hpp
WorkerThread.hpp
dunedaq::dfmodules::TriggerInhibitAgent::m_trigger_inhibit_sender
std::shared_ptr< triginhsender_t > m_trigger_inhibit_sender
Definition
TriggerInhibitAgent.hpp:79
dunedaq::dfmodules::TriggerInhibitAgent::operator=
TriggerInhibitAgent & operator=(const TriggerInhibitAgent &)=delete
TriggerInhibitAgent is not copy-assignable.
dunedaq::dfmodules::TriggerInhibitAgent::operator=
TriggerInhibitAgent & operator=(TriggerInhibitAgent &&)=delete
TriggerInhibitAgent is not move-assignable.
dunedaq::dfmodules::TriggerInhibitAgent::triginhsender_t
iomanager::SenderConcept< dfmessages::TriggerInhibit > triginhsender_t
Definition
TriggerInhibitAgent.hpp:40
dunedaq::dfmodules::TriggerInhibitAgent::m_threshold_for_inhibit
std::atomic< uint32_t > m_threshold_for_inhibit
Definition
TriggerInhibitAgent.hpp:75
dunedaq::dfmodules::TriggerInhibitAgent::trigdecreceiver_t
iomanager::ReceiverConcept< dfmessages::TriggerDecision > trigdecreceiver_t
Definition
TriggerInhibitAgent.hpp:39
dunedaq::dfmodules::TriggerInhibitAgent::TriggerInhibitAgent
TriggerInhibitAgent(TriggerInhibitAgent &&)=delete
TriggerInhibitAgent is not move-constructible.
dunedaq::dfmodules::TriggerInhibitAgent::TriggerInhibitAgent
TriggerInhibitAgent(const TriggerInhibitAgent &)=delete
TriggerInhibitAgent is not copy-constructible.
dunedaq::dfmodules::TriggerInhibitAgent::m_trigger_decision_receiver
std::shared_ptr< trigdecreceiver_t > m_trigger_decision_receiver
Definition
TriggerInhibitAgent.hpp:78
dunedaq::dfmodules::TriggerInhibitAgent::set_latest_trigger_number
void set_latest_trigger_number(daqdataformats::trigger_number_t trig_num)
Definition
TriggerInhibitAgent.hpp:63
dunedaq::dfmodules::TriggerInhibitAgent::start_checking
void start_checking()
Definition
TriggerInhibitAgent.cpp:45
dunedaq::dfmodules::TriggerInhibitAgent::stop_checking
void stop_checking()
Definition
TriggerInhibitAgent.cpp:54
dunedaq::dfmodules::TriggerInhibitAgent::m_queue_timeout
std::chrono::milliseconds m_queue_timeout
Definition
TriggerInhibitAgent.hpp:74
dunedaq::dfmodules::TriggerInhibitAgent::m_trigger_number_at_start_of_processing_chain
std::atomic< daqdataformats::trigger_number_t > m_trigger_number_at_start_of_processing_chain
Definition
TriggerInhibitAgent.hpp:82
dunedaq::dfmodules::TriggerInhibitAgent::set_threshold_for_inhibit
void set_threshold_for_inhibit(uint32_t value)
Definition
TriggerInhibitAgent.hpp:58
dunedaq::dfmodules::TriggerInhibitAgent::m_thread
dunedaq::utilities::WorkerThread m_thread
Definition
TriggerInhibitAgent.hpp:70
dunedaq::dfmodules::TriggerInhibitAgent::m_trigger_number_at_end_of_processing_chain
std::atomic< daqdataformats::trigger_number_t > m_trigger_number_at_end_of_processing_chain
Definition
TriggerInhibitAgent.hpp:83
dunedaq::dfmodules::TriggerInhibitAgent::TriggerInhibitAgent
TriggerInhibitAgent(const std::string &, std::shared_ptr< trigdecreceiver_t >, std::shared_ptr< triginhsender_t >)
TriggerInhibitAgent Constructor.
Definition
TriggerInhibitAgent.cpp:31
dunedaq::dfmodules::TriggerInhibitAgent::do_work
void do_work(std::atomic< bool > &)
Definition
TriggerInhibitAgent.cpp:63
dunedaq::iomanager::ReceiverConcept
Definition
Receiver.hpp:48
dunedaq::iomanager::SenderConcept
Definition
Sender.hpp:44
dunedaq::utilities::NamedObject
Implements the Named interface.
Definition
NamedObject.hpp:44
dunedaq::utilities::WorkerThread
WorkerThread contains a thread which runs the do_work() function.
Definition
WorkerThread.hpp:64
Types.hpp
TriggerDecision.hpp
Receiver.hpp
Sender.hpp
dunedaq::daqdataformats::trigger_number_t
uint64_t trigger_number_t
Definition
Types.hpp:18
dunedaq::dfmodules
An ERS Issue for DataStore creation failure.
Definition
DataStore.hpp:103
dunedaq
Including Qt Headers.
Definition
module.cpp:16
Generated on
for DUNE-DAQ by
1.17.0