DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
datahandlinglibs
include
datahandlinglibs
models
RecorderModel.hpp
Go to the documentation of this file.
1
8
#ifndef DATAHANDLINGLIBS_INCLUDE_DATAHANDLINGLIBS_MODELS_RECORDERMODEL_HPP_
9
#define DATAHANDLINGLIBS_INCLUDE_DATAHANDLINGLIBS_MODELS_RECORDERMODEL_HPP_
10
11
#include "
iomanager/IOManager.hpp
"
12
#include "
iomanager/Receiver.hpp
"
13
#include "
utilities/WorkerThread.hpp
"
14
#include "
datahandlinglibs/ReadoutTypes.hpp
"
15
#include "
datahandlinglibs/concepts/RecorderConcept.hpp
"
16
#include "
datahandlinglibs/utils/BufferedFileWriter.hpp
"
17
#include "
utilities/ReusableThread.hpp
"
18
19
#include "
datahandlinglibs/opmon/datahandling_info.pb.h
"
20
21
#include "
confmodel/DaqModule.hpp
"
22
#include "
confmodel/Connection.hpp
"
23
#include "
appmodel/DataRecorderModule.hpp
"
24
#include "
appmodel/DataRecorderConf.hpp
"
25
#include <atomic>
26
#include <fstream>
27
#include <iostream>
28
#include <memory>
29
#include <string>
30
31
namespace
dunedaq
{
32
namespace
datahandlinglibs
{
33
34
template
<
class
ReadoutType>
35
class
RecorderModel
:
public
RecorderConcept
36
{
37
public
:
38
explicit
RecorderModel
(std::string name)
39
:
m_work_thread
(0)
40
,
m_name
(name)
41
{}
42
43
void
init
(
const
appmodel::DataRecorderModule
* conf)
override
;
44
// void get_info(opmonlib::InfoCollector& ci, int /* level */) override;
45
void
do_conf
(
const
appfwk::DAQModule::CommandData_t&
/*args*/
)
override
;
46
void
do_scrap
(
const
appfwk::DAQModule::CommandData_t&
/*args*/
)
override
{
m_buffered_writer
.close(); }
47
void
do_start
(
const
appfwk::DAQModule::CommandData_t&
/* args */
)
override
;
48
void
do_stop
(
const
appfwk::DAQModule::CommandData_t&
/* args */
)
override
;
49
50
protected
:
51
virtual
void
generate_opmon_data
()
override
;
52
53
private
:
54
// The work that the worker thread does
55
void
do_work
();
56
57
// Queue
58
using
source_t
=
dunedaq::iomanager::ReceiverConcept<ReadoutType>
;
59
std::shared_ptr<source_t>
m_data_receiver
;
60
61
// Internal
62
//recorderconfig::Conf m_conf;
63
std::string
m_output_file
;
64
size_t
m_stream_buffer_size
= 0;
65
std::string
m_compression_algorithm
;
66
bool
m_use_o_direct
;
67
68
BufferedFileWriter<>
m_buffered_writer
;
69
70
// Threading
71
utilities::ReusableThread
m_work_thread
;
72
std::atomic<bool>
m_run_marker
;
73
74
// Stats
75
std::atomic<int>
m_bytes_processed
{ 0 };
76
std::atomic<int>
m_packets_processed
{ 0 };
77
std::chrono::steady_clock::time_point
m_time_point_last_info
;
78
79
std::string
m_name
;
80
};
81
82
}
// namespace datahandlinglibs
83
}
// namespace dunedaq
84
85
// Declarations
86
#include "
detail/RecorderModel.hxx
"
87
88
#endif
// DATAHANDLINGLIBS_INCLUDE_DATAHANDLINGLIBS_MODELS_RECORDERMODEL_HPP_
BufferedFileWriter.hpp
IOManager.hpp
ReadoutTypes.hpp
RecorderConcept.hpp
RecorderModel.hxx
ReusableThread.hpp
WorkerThread.hpp
dunedaq::appmodel::DataRecorderModule
Definition
DataRecorderModule.hpp:32
dunedaq::datahandlinglibs::BufferedFileWriter
Definition
BufferedFileWriter.hpp:48
dunedaq::datahandlinglibs::RecorderConcept::RecorderConcept
RecorderConcept()
Definition
RecorderConcept.hpp:32
dunedaq::datahandlinglibs::RecorderModel::m_bytes_processed
std::atomic< int > m_bytes_processed
Definition
RecorderModel.hpp:75
dunedaq::datahandlinglibs::RecorderModel::m_output_file
std::string m_output_file
Definition
RecorderModel.hpp:63
dunedaq::datahandlinglibs::RecorderModel::m_buffered_writer
BufferedFileWriter m_buffered_writer
Definition
RecorderModel.hpp:68
dunedaq::datahandlinglibs::RecorderModel::init
void init(const appmodel::DataRecorderModule *conf) override
Definition
RecorderModel.hxx:8
dunedaq::datahandlinglibs::RecorderModel::RecorderModel
RecorderModel(std::string name)
Definition
RecorderModel.hpp:38
dunedaq::datahandlinglibs::RecorderModel::m_compression_algorithm
std::string m_compression_algorithm
Definition
RecorderModel.hpp:65
dunedaq::datahandlinglibs::RecorderModel::do_work
void do_work()
Definition
RecorderModel.hxx:70
dunedaq::datahandlinglibs::RecorderModel::do_start
void do_start(const appfwk::DAQModule::CommandData_t &) override
Definition
RecorderModel.hxx:49
dunedaq::datahandlinglibs::RecorderModel::m_run_marker
std::atomic< bool > m_run_marker
Definition
RecorderModel.hpp:72
dunedaq::datahandlinglibs::RecorderModel::m_data_receiver
std::shared_ptr< source_t > m_data_receiver
Definition
RecorderModel.hpp:59
dunedaq::datahandlinglibs::RecorderModel::m_packets_processed
std::atomic< int > m_packets_processed
Definition
RecorderModel.hpp:76
dunedaq::datahandlinglibs::RecorderModel::generate_opmon_data
virtual void generate_opmon_data() override
Definition
RecorderModel.hxx:25
dunedaq::datahandlinglibs::RecorderModel::source_t
dunedaq::iomanager::ReceiverConcept< ReadoutType > source_t
Definition
RecorderModel.hpp:58
dunedaq::datahandlinglibs::RecorderModel::m_use_o_direct
bool m_use_o_direct
Definition
RecorderModel.hpp:66
dunedaq::datahandlinglibs::RecorderModel::do_stop
void do_stop(const appfwk::DAQModule::CommandData_t &) override
Definition
RecorderModel.hxx:60
dunedaq::datahandlinglibs::RecorderModel::m_stream_buffer_size
size_t m_stream_buffer_size
Definition
RecorderModel.hpp:64
dunedaq::datahandlinglibs::RecorderModel::m_name
std::string m_name
Definition
RecorderModel.hpp:79
dunedaq::datahandlinglibs::RecorderModel::do_scrap
void do_scrap(const appfwk::DAQModule::CommandData_t &) override
Definition
RecorderModel.hpp:46
dunedaq::datahandlinglibs::RecorderModel::do_conf
void do_conf(const appfwk::DAQModule::CommandData_t &) override
Definition
RecorderModel.hxx:35
dunedaq::datahandlinglibs::RecorderModel::m_time_point_last_info
std::chrono::steady_clock::time_point m_time_point_last_info
Definition
RecorderModel.hpp:77
dunedaq::datahandlinglibs::RecorderModel::m_work_thread
utilities::ReusableThread m_work_thread
Definition
RecorderModel.hpp:71
dunedaq::iomanager::ReceiverConcept
Definition
Receiver.hpp:48
dunedaq::utilities::ReusableThread
Definition
ReusableThread.hpp:25
datahandling_info.pb.h
DataRecorderConf.hpp
DataRecorderModule.hpp
Connection.hpp
DaqModule.hpp
Receiver.hpp
dunedaq::datahandlinglibs
Definition
DataHandlingConcept.hpp:16
dunedaq
Including Qt Headers.
Definition
module.cpp:16
Generated on
for DUNE-DAQ by
1.17.0