2
3
5#include <so_5/msg_tracing.hpp>
20
21
22
23
24
31 std::ostream & stream )
36 trace(
const std::string & what )
noexcept override
38 std::lock_guard< std::mutex > lock{ m_lock };
40 m_stream << what << std::endl;
46
47
48
64 return tracer_unique_ptr_t{
new impl::std_stream_tracer_t{ std::cout } };
70 return tracer_unique_ptr_t{
new impl::std_stream_tracer_t{ std::cerr } };
76 return tracer_unique_ptr_t{
new impl::std_stream_tracer_t{ std::clog } };
A simple implementation of tracer which uses one of standard streams.
std_stream_tracer_t(std::ostream &stream)
Main constructor.
std::ostream & m_stream
Stream to be used for tracing.
std::mutex m_lock
Object lock.
virtual void trace(const std::string &what) noexcept override
Interface of tracer object.
Implementation details of message delivery tracing mechanism.
Public part of message delivery tracing mechanism.
SO_5_FUNC tracer_unique_ptr_t std_cerr_tracer()
Factory for tracer which uses std::cerr stream.
SO_5_FUNC tracer_unique_ptr_t std_clog_tracer()
Factory for tracer which uses std::clog stream.
SO_5_FUNC tracer_unique_ptr_t std_cout_tracer()
Factory for tracer which uses std::cout stream.
Private part of message limit implementation.