DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
ZeroCopyRecordingRequestHandlerModel.hpp
Go to the documentation of this file.
1
10#ifndef DATAHANDLINGLIBS_INCLUDE_DATAHANDLINGLIBS_MODELS_ZEROCOPYRECORDINGREQUESTHANDLERMODEL_HPP_
11#define DATAHANDLINGLIBS_INCLUDE_DATAHANDLINGLIBS_MODELS_ZEROCOPYRECORDINGREQUESTHANDLERMODEL_HPP_
12
14#include <memory>
15
16namespace dunedaq {
17namespace datahandlinglibs {
18
19template<class ReadoutType, class LatencyBufferType>
20class ZeroCopyRecordingRequestHandlerModel : public DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>
21{
22public:
23 // Using inherited typename
25
26 // Explicit constructor for binding LB and error registry
27 explicit ZeroCopyRecordingRequestHandlerModel(std::shared_ptr<LatencyBufferType>& latency_buffer,
28 std::unique_ptr<FrameErrorRegistry>& error_registry)
29 : DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>(latency_buffer, error_registry)
30 {
31 TLOG_DEBUG(TLVL_WORK_STEPS) << "ZeroCopyRecordingRequestHandlerModel created...";
32 }
33
34 // Special configuration that checks LB alignment and O_DIRECT flag on output file
35 void conf(const appmodel::DataHandlerModule* conf) override;
36
37 // Special record command that writes to files from memory aligned LBs
38 void record(const nlohmann::json& args) override;
39
40private:
41 int m_fd;
43};
44
45} // namespace datahandlinglibs
46} // namespace dunedaq
47
48// Declarations
50
51#endif // DATAHANDLINGLIBS_INCLUDE_DATAHANDLINGLIBS_MODELS_ZEROCOPYRECORDINGREQUESTHANDLERMODEL_HPP_
ZeroCopyRecordingRequestHandlerModel(std::shared_ptr< LatencyBufferType > &latency_buffer, std::unique_ptr< FrameErrorRegistry > &error_registry)
#define TLOG_DEBUG(lvl,...)
Definition Logging.hpp:112
Including Qt Headers.