DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dunedaq
sourcecode
daqdataformats
include
daqdataformats
TimeSlice.hpp
Go to the documentation of this file.
1
9
#ifndef DAQDATAFORMATS_INCLUDE_DAQDATAFORMATS_TIMESLICE_HPP_
10
#define DAQDATAFORMATS_INCLUDE_DAQDATAFORMATS_TIMESLICE_HPP_
11
12
#include "
daqdataformats/Fragment.hpp
"
13
#include "
daqdataformats/TimeSliceHeader.hpp
"
14
#include "
daqdataformats/Types.hpp
"
15
16
#include <memory>
17
#include <utility>
18
#include <vector>
19
20
namespace
dunedaq::daqdataformats
{
21
26
class
TimeSlice
27
{
28
public
:
32
inline
explicit
TimeSlice
(
timeslice_number_t
timeslice_number,
run_number_t
run_number);
33
38
inline
explicit
TimeSlice
(
TimeSliceHeader
const
& header);
39
40
virtual
~TimeSlice
() =
default
;
41
42
TimeSlice
(
TimeSlice
const
&) =
delete
;
43
TimeSlice
(
TimeSlice
&&) =
default
;
44
TimeSlice
&
operator=
(
TimeSlice
const
&) =
delete
;
45
TimeSlice
&
operator=
(
TimeSlice
&&) =
default
;
46
51
TimeSliceHeader
get_header
()
const
{
return
m_header
; }
56
void
set_header
(
TimeSliceHeader
header) {
m_header
= header; }
57
62
const
std::vector<std::unique_ptr<Fragment>>&
get_fragments_ref
()
const
{
return
m_fragments
; }
63
68
void
set_fragments
(std::vector<std::unique_ptr<Fragment>>&& fragments) {
m_fragments
= std::move(fragments); }
69
74
void
add_fragment
(std::unique_ptr<Fragment>&& fragment) {
m_fragments
.emplace_back(std::move(fragment)); }
75
80
void
set_element_id
(
SourceID
source_id) {
m_header
.
element_id
= source_id; }
81
85
size_t
get_total_size_bytes
()
const
86
{
87
size_t
total_size =
sizeof
(
get_header
());
88
89
for
(
auto
const
& frag_ptr :
m_fragments
)
90
total_size += frag_ptr->get_size();
91
92
return
total_size;
93
}
94
98
size_t
get_sum_of_fragment_payload_sizes
()
const
99
{
100
size_t
total_size = 0;
101
102
for
(
auto
const
& frag_ptr :
m_fragments
)
103
total_size += frag_ptr->get_data_size();
104
105
return
total_size;
106
}
107
108
private
:
109
TimeSliceHeader
m_header
;
110
std::vector<std::unique_ptr<Fragment>>
m_fragments
;
111
};
112
113
//-------
114
115
TimeSlice::TimeSlice
(
timeslice_number_t
timeslice_number,
run_number_t
run_number)
116
: m_header()
117
, m_fragments()
118
{
119
m_header
.
timeslice_number
= timeslice_number;
120
m_header
.
run_number
= run_number;
121
}
122
123
TimeSlice::TimeSlice
(
TimeSliceHeader
const
& header)
124
: m_header(header)
125
, m_fragments()
126
{}
127
128
}
// namespace dunedaq::daqdataformats
129
130
#endif
// DAQDATAFORMATS_INCLUDE_DAQDATAFORMATS_TIMESLICE_HPP_
Fragment.hpp
TimeSliceHeader.hpp
dunedaq::daqdataformats::TimeSlice
C++ Representation of a DUNE TimeSlice, consisting of a TimeSliceHeader object and a vector of pointe...
Definition
TimeSlice.hpp:27
dunedaq::daqdataformats::TimeSlice::add_fragment
void add_fragment(std::unique_ptr< Fragment > &&fragment)
Add a Fragment pointer to the Fragments vector.
Definition
TimeSlice.hpp:74
dunedaq::daqdataformats::TimeSlice::get_total_size_bytes
size_t get_total_size_bytes() const
Get size of timeslice from underlying TimeSliceHeader and Fragments.
Definition
TimeSlice.hpp:85
dunedaq::daqdataformats::TimeSlice::operator=
TimeSlice & operator=(TimeSlice &&)=default
Default TimeSlice move assignment operator.
dunedaq::daqdataformats::TimeSlice::get_header
TimeSliceHeader get_header() const
Get a copy of the TimeSliceHeader struct.
Definition
TimeSlice.hpp:51
dunedaq::daqdataformats::TimeSlice::set_header
void set_header(TimeSliceHeader header)
Set the TimeSliceHeader to the given TimeSliceHeader object.
Definition
TimeSlice.hpp:56
dunedaq::daqdataformats::TimeSlice::m_fragments
std::vector< std::unique_ptr< Fragment > > m_fragments
Vector of unique_ptrs to Fragment objects.
Definition
TimeSlice.hpp:110
dunedaq::daqdataformats::TimeSlice::TimeSlice
TimeSlice(timeslice_number_t timeslice_number, run_number_t run_number)
Construct a TimeSlice, filling in header fields.
Definition
TimeSlice.hpp:115
dunedaq::daqdataformats::TimeSlice::TimeSlice
TimeSlice(TimeSlice const &)=delete
TimeSlices are not copy-constructible.
dunedaq::daqdataformats::TimeSlice::TimeSlice
TimeSlice(TimeSlice &&)=default
Default TimeSlice move constructor.
dunedaq::daqdataformats::TimeSlice::set_fragments
void set_fragments(std::vector< std::unique_ptr< Fragment > > &&fragments)
Set the Fragments vector to the given vector of Fragments.
Definition
TimeSlice.hpp:68
dunedaq::daqdataformats::TimeSlice::get_sum_of_fragment_payload_sizes
size_t get_sum_of_fragment_payload_sizes() const
Get the sum of the fragment payload sizes.
Definition
TimeSlice.hpp:98
dunedaq::daqdataformats::TimeSlice::get_fragments_ref
const std::vector< std::unique_ptr< Fragment > > & get_fragments_ref() const
Get a handle to the Fragments.
Definition
TimeSlice.hpp:62
dunedaq::daqdataformats::TimeSlice::operator=
TimeSlice & operator=(TimeSlice const &)=delete
TimeSlices are not copy-assignable.
dunedaq::daqdataformats::TimeSlice::m_header
TimeSliceHeader m_header
TimeSliceHeader object.
Definition
TimeSlice.hpp:109
dunedaq::daqdataformats::TimeSlice::set_element_id
void set_element_id(SourceID source_id)
Set the SourceID for this TimeSlice.
Definition
TimeSlice.hpp:80
dunedaq::daqdataformats::TimeSlice::~TimeSlice
virtual ~TimeSlice()=default
TimeSlice default destructor.
Types.hpp
dunedaq::daqdataformats
Definition
ComponentRequest.hpp:20
dunedaq::daqdataformats::run_number_t
uint32_t run_number_t
Type used to represent run number.
Definition
Types.hpp:20
dunedaq::daqdataformats::timeslice_number_t
uint64_t timeslice_number_t
Type used to represent timeslice number.
Definition
Types.hpp:49
dunedaq::daqdataformats::SourceID
SourceID is a generalized representation of the source of a piece of data in the DAQ....
Definition
SourceID.hpp:32
dunedaq::daqdataformats::TimeSliceHeader
Additional data fields associated with a TimeSliceHeader.
Definition
TimeSliceHeader.hpp:28
dunedaq::daqdataformats::TimeSliceHeader::run_number
run_number_t run_number
Run Number for the TimeSlice.
Definition
TimeSliceHeader.hpp:57
dunedaq::daqdataformats::TimeSliceHeader::element_id
SourceID element_id
Definition
TimeSliceHeader.hpp:64
dunedaq::daqdataformats::TimeSliceHeader::timeslice_number
timeslice_number_t timeslice_number
Slice number of this TimeSlice within the stream.
Definition
TimeSliceHeader.hpp:52
Generated on Sat Jun 28 2025 for DUNE-DAQ by
1.12.0