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
StreamManagerm_manager
bool m_in_progress

Additional Inherited Members

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

Detailed Description

Definition at line 115 of file StreamManager.cpp.

Constructor & Destructor Documentation

◆ StreamInitializer()

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

Definition at line 118 of file StreamManager.cpp.

119 : m_manager( manager ),
120 m_in_progress( false )
121 { ; }
StreamManager & m_manager

Member Function Documentation

◆ write()

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

Implements ers::OutputStream.

Definition at line 123 of file StreamManager.cpp.

124 {
125 ers::severity s = issue.severity();
126 std::scoped_lock lock( m_mutex );
127
128 if ( !m_in_progress ) {
129 m_in_progress = true;
130 }
131 else {
132 // The issue is coming from the stream constructor
133 // We can't use ERS streams, so print it to std
134 if ( s < ers::Warning )
135 std::cout << issue << std::endl;
136 else
137 std::cerr << issue << std::endl;
138 return ;
139 }
140
141 if ( m_manager.m_out_streams[s].get() == this ) {
142 m_manager.m_out_streams[s] =
143 std::shared_ptr<OutputStream>( m_manager.setup_stream( s ) );
144 }
145 m_manager.report_issue( s, issue );
146 m_in_progress = false;
147 }
std::recursive_mutex m_mutex
severity
Definition Severity.hpp:37
@ Warning
Definition Severity.hpp:37

Member Data Documentation

◆ m_in_progress

bool ers::StreamInitializer::m_in_progress
private

Definition at line 152 of file StreamManager.cpp.

◆ m_manager

StreamManager& ers::StreamInitializer::m_manager
private

Definition at line 151 of file StreamManager.cpp.

◆ m_mutex

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

Definition at line 150 of file StreamManager.cpp.


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