DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dunedaq
sourcecode
datahandlinglibs
include
datahandlinglibs
models
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
13
#include "
datahandlinglibs/models/DefaultRequestHandlerModel.hpp
"
14
#include <memory>
15
16
namespace
dunedaq
{
17
namespace
datahandlinglibs {
18
19
template
<
class
ReadoutType,
class
LatencyBufferType>
20
class
ZeroCopyRecordingRequestHandlerModel
:
public
DefaultRequestHandlerModel
<ReadoutType, LatencyBufferType>
21
{
22
public
:
23
// Using inherited typename
24
using
inherited
=
DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>
;
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
40
private
:
41
int
m_fd
;
42
int
m_oflag
;
43
};
44
45
}
// namespace datahandlinglibs
46
}
// namespace dunedaq
47
48
// Declarations
49
#include "
detail/ZeroCopyRecordingRequestHandlerModel.hxx
"
50
51
#endif
// DATAHANDLINGLIBS_INCLUDE_DATAHANDLINGLIBS_MODELS_ZEROCOPYRECORDINGREQUESTHANDLERMODEL_HPP_
DefaultRequestHandlerModel.hpp
ZeroCopyRecordingRequestHandlerModel.hxx
dunedaq::appmodel::DataHandlerModule
Definition
DataHandlerModule.hpp:35
dunedaq::datahandlinglibs::DefaultRequestHandlerModel
Definition
DefaultRequestHandlerModel.hpp:83
dunedaq::datahandlinglibs::ZeroCopyRecordingRequestHandlerModel
Definition
ZeroCopyRecordingRequestHandlerModel.hpp:21
dunedaq::datahandlinglibs::ZeroCopyRecordingRequestHandlerModel::m_oflag
int m_oflag
Definition
ZeroCopyRecordingRequestHandlerModel.hpp:42
dunedaq::datahandlinglibs::ZeroCopyRecordingRequestHandlerModel::m_fd
int m_fd
Definition
ZeroCopyRecordingRequestHandlerModel.hpp:41
dunedaq::datahandlinglibs::ZeroCopyRecordingRequestHandlerModel::conf
void conf(const appmodel::DataHandlerModule *conf) override
Definition
ZeroCopyRecordingRequestHandlerModel.hxx:9
dunedaq::datahandlinglibs::ZeroCopyRecordingRequestHandlerModel::ZeroCopyRecordingRequestHandlerModel
ZeroCopyRecordingRequestHandlerModel(std::shared_ptr< LatencyBufferType > &latency_buffer, std::unique_ptr< FrameErrorRegistry > &error_registry)
Definition
ZeroCopyRecordingRequestHandlerModel.hpp:27
dunedaq::datahandlinglibs::ZeroCopyRecordingRequestHandlerModel::record
void record(const nlohmann::json &args) override
Definition
ZeroCopyRecordingRequestHandlerModel.hxx:64
TLOG_DEBUG
#define TLOG_DEBUG(lvl,...)
Definition
Logging.hpp:112
dunedaq
Including Qt Headers.
Definition
TimingController.hxx:1
Generated on Sat Jun 28 2025 for DUNE-DAQ by
1.12.0