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 104 of file StreamManager.cpp.

Constructor & Destructor Documentation

◆ StreamInitializer()

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

Definition at line 107 of file StreamManager.cpp.

108 : m_manager( manager ),
109 m_in_progress( false )
110 { ; }
StreamManager & m_manager

Member Function Documentation

◆ write()

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

Implements ers::OutputStream.

Definition at line 112 of file StreamManager.cpp.

113 {
114 ers::severity s = issue.severity();
115 std::scoped_lock lock( m_mutex );
116
117 if ( !m_in_progress ) {
118 m_in_progress = true;
119 }
120 else {
121 // The issue is coming from the stream constructor
122 // We can't use ERS streams, so print it to std
123 if ( s < ers::Warning )
124 std::cout << issue << std::endl;
125 else
126 std::cerr << issue << std::endl;
127 return ;
128 }
129
130 if ( m_manager.m_out_streams[s].get() == this ) {
132 std::shared_ptr<OutputStream>( m_manager.setup_stream( s ) );
133 }
134 m_manager.report_issue( s, issue );
135 m_in_progress = false;
136 }
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:26
@ Warning
Definition Severity.hpp:26

Member Data Documentation

◆ m_in_progress

bool ers::StreamInitializer::m_in_progress
private

Definition at line 141 of file StreamManager.cpp.

◆ m_manager

StreamManager& ers::StreamInitializer::m_manager
private

Definition at line 140 of file StreamManager.cpp.

◆ m_mutex

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

Definition at line 139 of file StreamManager.cpp.


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