DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dunedaq::daqdataformats::TriggerRecord Class Reference

C++ Representation of a DUNE TriggerRecord, consisting of a TriggerRecordHeader object and a vector of pointers to Fragment objects. More...

#include <TriggerRecord.hpp>

Collaboration diagram for dunedaq::daqdataformats::TriggerRecord:
[legend]

Public Member Functions

 TriggerRecord (std::vector< ComponentRequest > const &components)
 Construct a TriggerRecord using the given vector of components to initialize the TriggerRecordHeader.
 
 TriggerRecord (TriggerRecordHeader const &header)
 Construct a TriggerRecord using the given TriggerRecordHeader.
 
virtual ~TriggerRecord ()=default
 TriggerRecord default destructor.
 
 TriggerRecord (TriggerRecord const &)=delete
 TriggerRecords are not copy-constructible.
 
 TriggerRecord (TriggerRecord &&)=default
 Default TriggerRecord move constructor.
 
TriggerRecordoperator= (TriggerRecord const &)=delete
 TriggerRecords are not copy-assignable.
 
TriggerRecordoperator= (TriggerRecord &&)=default
 Default TriggerRecord move assignment operator.
 
const TriggerRecordHeaderget_header_ref () const
 Get a handle to the TriggerRecordHeader.
 
TriggerRecordHeaderget_header_ref ()
 
void set_header (const TriggerRecordHeader &header)
 Set the TriggerRecordHeader to the given TriggerRecordHeader object.
 
TriggerRecordHeaderData get_header_data () const
 Get a copy of the TriggerRecordHeaderData from the TriggerRecordHeader.
 
const std::vector< std::unique_ptr< Fragment > > & get_fragments_ref () const
 Get a handle to the Fragments.
 
std::vector< std::unique_ptr< Fragment > > & get_fragments_ref ()
 
void set_fragments (std::vector< std::unique_ptr< Fragment > > &&fragments)
 Set the Fragments vector to the given vector of Fragments.
 
void add_fragment (std::unique_ptr< Fragment > &&fragment)
 Add a Fragment pointer to the Fragments vector.
 
size_t get_total_size_bytes () const
 Get size of trigger record from underlying TriggerRecordHeader and Fragments.
 
size_t get_sum_of_fragment_payload_sizes () const
 Get the sum of the fragment payload sizes.
 

Private Attributes

TriggerRecordHeader m_header
 TriggerRecordHeader object.
 
std::vector< std::unique_ptr< Fragment > > m_fragments
 Vector of unique_ptrs to Fragment objects.
 

Detailed Description

C++ Representation of a DUNE TriggerRecord, consisting of a TriggerRecordHeader object and a vector of pointers to Fragment objects.

Definition at line 26 of file TriggerRecord.hpp.

Constructor & Destructor Documentation

◆ TriggerRecord() [1/4]

dunedaq::daqdataformats::TriggerRecord::TriggerRecord ( std::vector< ComponentRequest > const & components)
inlineexplicit

Construct a TriggerRecord using the given vector of components to initialize the TriggerRecordHeader.

Parameters
componentsList of components requested for this TriggerRecord

Definition at line 115 of file TriggerRecord.hpp.

116 : m_header(components)
117 , m_fragments()
118{}
TriggerRecordHeader m_header
TriggerRecordHeader object.
std::vector< std::unique_ptr< Fragment > > m_fragments
Vector of unique_ptrs to Fragment objects.

◆ TriggerRecord() [2/4]

dunedaq::daqdataformats::TriggerRecord::TriggerRecord ( TriggerRecordHeader const & header)
inlineexplicit

Construct a TriggerRecord using the given TriggerRecordHeader.

Parameters
headerTriggerRecordHeader to copy into the TriggerRecord

Definition at line 120 of file TriggerRecord.hpp.

121 : m_header(header)
122 , m_fragments()
123{}

◆ ~TriggerRecord()

virtual dunedaq::daqdataformats::TriggerRecord::~TriggerRecord ( )
virtualdefault

TriggerRecord default destructor.

◆ TriggerRecord() [3/4]

dunedaq::daqdataformats::TriggerRecord::TriggerRecord ( TriggerRecord const & )
delete

TriggerRecords are not copy-constructible.

◆ TriggerRecord() [4/4]

dunedaq::daqdataformats::TriggerRecord::TriggerRecord ( TriggerRecord && )
default

Default TriggerRecord move constructor.

Member Function Documentation

◆ add_fragment()

void dunedaq::daqdataformats::TriggerRecord::add_fragment ( std::unique_ptr< Fragment > && fragment)
inline

Add a Fragment pointer to the Fragments vector.

Parameters
fragmentFragment to add

Definition at line 80 of file TriggerRecord.hpp.

80{ m_fragments.emplace_back(std::move(fragment)); }

◆ get_fragments_ref() [1/2]

std::vector< std::unique_ptr< Fragment > > & dunedaq::daqdataformats::TriggerRecord::get_fragments_ref ( )
inline

Definition at line 70 of file TriggerRecord.hpp.

70{ return m_fragments; }

◆ get_fragments_ref() [2/2]

const std::vector< std::unique_ptr< Fragment > > & dunedaq::daqdataformats::TriggerRecord::get_fragments_ref ( ) const
inline

Get a handle to the Fragments.

Returns
A reference to the Fragments vector

Definition at line 69 of file TriggerRecord.hpp.

69{ return m_fragments; }

◆ get_header_data()

TriggerRecordHeaderData dunedaq::daqdataformats::TriggerRecord::get_header_data ( ) const
inline

Get a copy of the TriggerRecordHeaderData from the TriggerRecordHeader.

Returns
Copy of the TriggerRecordHeaderData struct from the TriggerRecordHeader

Definition at line 63 of file TriggerRecord.hpp.

63{ return m_header.get_header(); }
TriggerRecordHeaderData get_header() const
Get a copy of the TriggerRecordHeaderData struct.

◆ get_header_ref() [1/2]

TriggerRecordHeader & dunedaq::daqdataformats::TriggerRecord::get_header_ref ( )
inline

Definition at line 53 of file TriggerRecord.hpp.

53{ return m_header; }

◆ get_header_ref() [2/2]

const TriggerRecordHeader & dunedaq::daqdataformats::TriggerRecord::get_header_ref ( ) const
inline

Get a handle to the TriggerRecordHeader.

Returns
A reference to the TriggerRecordHeader

Definition at line 52 of file TriggerRecord.hpp.

52{ return m_header; }

◆ get_sum_of_fragment_payload_sizes()

size_t dunedaq::daqdataformats::TriggerRecord::get_sum_of_fragment_payload_sizes ( ) const
inline

Get the sum of the fragment payload sizes.

Definition at line 98 of file TriggerRecord.hpp.

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 }

◆ get_total_size_bytes()

size_t dunedaq::daqdataformats::TriggerRecord::get_total_size_bytes ( ) const
inline

Get size of trigger record from underlying TriggerRecordHeader and Fragments.

Definition at line 85 of file TriggerRecord.hpp.

86 {
87 size_t total_size = get_header_ref().get_total_size_bytes();
88
89 for (auto const& frag_ptr : m_fragments)
90 total_size += frag_ptr->get_size();
91
92 return total_size;
93 }
size_t get_total_size_bytes() const
Get the total size of the TriggerRecordHeader.
const TriggerRecordHeader & get_header_ref() const
Get a handle to the TriggerRecordHeader.

◆ operator=() [1/2]

TriggerRecord & dunedaq::daqdataformats::TriggerRecord::operator= ( TriggerRecord && )
default

Default TriggerRecord move assignment operator.

◆ operator=() [2/2]

TriggerRecord & dunedaq::daqdataformats::TriggerRecord::operator= ( TriggerRecord const & )
delete

TriggerRecords are not copy-assignable.

◆ set_fragments()

void dunedaq::daqdataformats::TriggerRecord::set_fragments ( std::vector< std::unique_ptr< Fragment > > && fragments)
inline

Set the Fragments vector to the given vector of Fragments.

Parameters
fragmentsFragments vector to use

Definition at line 75 of file TriggerRecord.hpp.

75{ m_fragments = std::move(fragments); }

◆ set_header()

void dunedaq::daqdataformats::TriggerRecord::set_header ( const TriggerRecordHeader & header)
inline

Set the TriggerRecordHeader to the given TriggerRecordHeader object.

Parameters
headernew TriggerRecordHeader to use

Definition at line 58 of file TriggerRecord.hpp.

58{ m_header = header; }

Member Data Documentation

◆ m_fragments

std::vector<std::unique_ptr<Fragment> > dunedaq::daqdataformats::TriggerRecord::m_fragments
private

Vector of unique_ptrs to Fragment objects.

Definition at line 110 of file TriggerRecord.hpp.

◆ m_header

TriggerRecordHeader dunedaq::daqdataformats::TriggerRecord::m_header
private

TriggerRecordHeader object.

Definition at line 109 of file TriggerRecord.hpp.


The documentation for this class was generated from the following file: