DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
ers::StreamInitializer Class Reference
Inheritance diagram for ers::StreamInitializer:
[legend]
Collaboration diagram for ers::StreamInitializer:
[legend]

Public Member Functions

 StreamInitializer (StreamManager &manager)
void write (const Issue &issue)
Public Member Functions inherited from ers::OutputStream
virtual ~OutputStream ()
 Sends the issue into this stream.

Private Attributes

std::recursive_mutex m_mutex
StreamManager & m_manager
bool m_in_progress

Additional Inherited Members

Protected Member Functions inherited from ers::OutputStream
 OutputStream ()
OutputStream & chained ()
virtual bool isNull () const

Detailed Description

Definition at line 106 of file StreamManager.cpp.

Constructor & Destructor Documentation

◆ StreamInitializer()

ers::StreamInitializer::StreamInitializer ( StreamManager & manager)
inline

Definition at line 109 of file StreamManager.cpp.

110 : m_manager(manager)
111 , m_in_progress(false)
112 {
113 ;
114 }
StreamManager & m_manager

Member Function Documentation

◆ write()

void ers::StreamInitializer::write ( const Issue & issue)
inlinevirtual

Implements ers::OutputStream.

Definition at line 116 of file StreamManager.cpp.

117 {
118 ers::severity s = issue.severity();
119 std::scoped_lock lock(m_mutex);
120
121 if (!m_in_progress) {
122 m_in_progress = true;
123 } else {
124 // The issue is coming from the stream constructor
125 // We can't use ERS streams, so print it to std
126 if (s < ers::Warning)
127 std::cout << issue << std::endl;
128 else
129 std::cerr << issue << std::endl;
130 return;
131 }
132
133 if (m_manager.m_out_streams[s].get() == this) {
134 m_manager.m_out_streams[s] = std::shared_ptr<OutputStream>(m_manager.setup_stream(s));
135 }
136 m_manager.report_issue(s, issue);
137 m_in_progress = false;
138 }
std::recursive_mutex m_mutex
OutputStream * setup_stream(ers::severity severity)
void report_issue(ers::severity type, const Issue &issue)
std::shared_ptr< OutputStream > m_out_streams[ers::Fatal+1]
array of pointers to streams per severity
severity
Definition Severity.hpp:37
@ Warning
Definition Severity.hpp:41

Member Data Documentation

◆ m_in_progress

bool ers::StreamInitializer::m_in_progress
private

Definition at line 143 of file StreamManager.cpp.

◆ m_manager

StreamManager& ers::StreamInitializer::m_manager
private

Definition at line 142 of file StreamManager.cpp.

◆ m_mutex

std::recursive_mutex ers::StreamInitializer::m_mutex
private

Definition at line 141 of file StreamManager.cpp.


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