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

#include <FrameErrorRegistry.hpp>

Classes

struct  ErrorInterval
 

Public Member Functions

 FrameErrorRegistry ()
 
void set_ers_metadata (const std::string &ers_metadata)
 
void add_error (std::string error_name, ErrorInterval error)
 
void remove_errors_until (uint64_t ts)
 
void log_registered_errors ()
 
bool has_error (std::string error_name)
 
bool has_error ()
 

Private Attributes

std::map< std::string, ErrorIntervalm_errors
 
std::mutex m_error_map_mutex
 
std::optional< std::string > m_ers_metadata
 

Detailed Description

Definition at line 22 of file FrameErrorRegistry.hpp.

Constructor & Destructor Documentation

◆ FrameErrorRegistry()

dunedaq::datahandlinglibs::FrameErrorRegistry::FrameErrorRegistry ( )
inline

Definition at line 41 of file FrameErrorRegistry.hpp.

42 : m_errors()
43 {}
std::map< std::string, ErrorInterval > m_errors

Member Function Documentation

◆ add_error()

void dunedaq::datahandlinglibs::FrameErrorRegistry::add_error ( std::string error_name,
ErrorInterval error )
inline

Definition at line 50 of file FrameErrorRegistry.hpp.

51 {
52 std::lock_guard<std::mutex> guard(m_error_map_mutex);
53 m_errors.erase(error_name);
54 m_errors.insert(std::make_pair(error_name, error));
55 }
Factory couldn t std::string alg_name Invalid configuration error
Definition Issues.hpp:34

◆ has_error() [1/2]

bool dunedaq::datahandlinglibs::FrameErrorRegistry::has_error ( )
inline

Definition at line 80 of file FrameErrorRegistry.hpp.

80{ return !m_errors.empty(); }

◆ has_error() [2/2]

bool dunedaq::datahandlinglibs::FrameErrorRegistry::has_error ( std::string error_name)
inline

Definition at line 78 of file FrameErrorRegistry.hpp.

78{ return m_errors.find(error_name) != m_errors.end(); }

◆ log_registered_errors()

void dunedaq::datahandlinglibs::FrameErrorRegistry::log_registered_errors ( )
inline

Definition at line 71 of file FrameErrorRegistry.hpp.

71 {
72 std::lock_guard<std::mutex> guard(m_error_map_mutex);
73 for (const auto& [error_name, _] : m_errors) {
74 ers::warning(NewErrorRegistered(ERS_HERE, m_ers_metadata.value_or(""), error_name));
75 }
76 }
#define ERS_HERE
void warning(const Issue &issue)
Definition ers.hpp:115

◆ remove_errors_until()

void dunedaq::datahandlinglibs::FrameErrorRegistry::remove_errors_until ( uint64_t ts)
inline

Definition at line 57 of file FrameErrorRegistry.hpp.

58 {
59 std::lock_guard<std::mutex> guard(m_error_map_mutex);
60 for (auto it = m_errors.begin(); it != m_errors.end();) {
61 if (ts > it->second.end_ts) {
62 std::string error_name = it->first;
63 it = m_errors.erase(it);
64 ers::info(ClearedError(ERS_HERE, m_ers_metadata.value_or(""), error_name));
65 } else {
66 it++;
67 }
68 }
69 }
PDS Frame with unphysical timestamp detected with ts
void info(const Issue &issue)
Definition ers.hpp:95

◆ set_ers_metadata()

void dunedaq::datahandlinglibs::FrameErrorRegistry::set_ers_metadata ( const std::string & ers_metadata)
inline

Definition at line 45 of file FrameErrorRegistry.hpp.

46 {
47 m_ers_metadata = ers_metadata;
48 }

Member Data Documentation

◆ m_error_map_mutex

std::mutex dunedaq::datahandlinglibs::FrameErrorRegistry::m_error_map_mutex
private

Definition at line 84 of file FrameErrorRegistry.hpp.

◆ m_errors

std::map<std::string, ErrorInterval> dunedaq::datahandlinglibs::FrameErrorRegistry::m_errors
private

Definition at line 83 of file FrameErrorRegistry.hpp.

◆ m_ers_metadata

std::optional<std::string> dunedaq::datahandlinglibs::FrameErrorRegistry::m_ers_metadata
private

Definition at line 85 of file FrameErrorRegistry.hpp.


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