DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
SummaryTextDataWriter.cpp
Go to the documentation of this file.
1
8
10
11#include <stdexcept>
12#include <string>
13
14namespace dunedaq::dfmodules {
15
17 : m_file_name(file_name)
18 , m_output_file(file_name, std::ios::out | std::ios::app)
22{
23 if (!m_output_file.is_open()) {
24 throw CantOpenFile(ERS_HERE, m_file_name);
25 }
26}
27
29{
30 if (m_output_file.is_open()) {
31 m_output_file.close();
32 }
33}
34
35void
37{
38 const auto trigger_number = tr.get_header_ref().get_trigger_number();
39 write_line("TriggerRecord #" + std::to_string(trigger_number));
40}
41
42void
44{
45 const auto timeslice_number = ts.get_header().timeslice_number;
46 m_written_timeslices.insert(timeslice_number);
47 write_line("TimeSlice #" + std::to_string(timeslice_number));
48}
49
50bool
55
56std::string
61
62size_t
67
68size_t
73
74size_t
79
80void
81SummaryTextDataWriter::write_line(const std::string& line)
82{
83 m_output_file << line << '\n';
84 if (!m_output_file.good()) {
86 }
87
88 const size_t bytes_written = line.size() + 1;
89 m_recorded_size += bytes_written;
90 m_uncompressed_raw_data_size += bytes_written;
91 m_total_file_size += bytes_written;
92}
93
94} // namespace dunedaq::dfmodules
#define ERS_HERE
C++ Representation of a DUNE TimeSlice, consisting of a TimeSliceHeader object and a vector of pointe...
Definition TimeSlice.hpp:27
TimeSliceHeader get_header() const
Get a copy of the TimeSliceHeader struct.
Definition TimeSlice.hpp:44
C++ Representation of a DUNE TriggerRecord, consisting of a TriggerRecordHeader object and a vector o...
const TriggerRecordHeader & get_header_ref() const
Get a handle to the TriggerRecordHeader.
SummaryTextDataWriter(const std::string &file_name)
bool timeslice_already_exists(const daqdataformats::TimeSlice &ts) const
void write(const daqdataformats::TriggerRecord &tr)
std::set< daqdataformats::timeslice_number_t > m_written_timeslices
An ERS Issue for DataStore creation failure.
Definition DataStore.hpp:91
FELIX Initialization std::string initerror FELIX queue timed out
timeslice_number_t timeslice_number
Slice number of this TimeSlice within the stream.