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, ErrorInterval > m_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 42 of file FrameErrorRegistry.hpp.

43 : m_errors()
44 {
45 }
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 49 of file FrameErrorRegistry.hpp.

50 {
51 std::lock_guard<std::mutex> guard(m_error_map_mutex);
52 m_errors.erase(error_name);
53 m_errors.insert(std::make_pair(error_name, error));
54 }
CIB Buffer std::string descriptor Message from std::string descriptor CIB process error

◆ 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 70 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:150

◆ remove_errors_until()

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

Definition at line 56 of file FrameErrorRegistry.hpp.

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

◆ set_ers_metadata()

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

Definition at line 47 of file FrameErrorRegistry.hpp.

47{ m_ers_metadata = ers_metadata; }

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: