#pragma once #include #include #include #include "../details/null_mutex.h" #include "./base_sink.h" namespace c11log { namespace sinks { template class ostream_sink: public base_sink { public: explicit ostream_sink(std::ostream& os) :_ostream(os) {} ostream_sink(const ostream_sink&) = delete; ostream_sink& operator=(const ostream_sink&) = delete; virtual ~ostream_sink() = default; protected: virtual void _sink_it(const details::log_msg& msg) override { auto& buf = msg.formatted.buf(); _ostream.write(buf.data(), buf.size()); } std::ostream& _ostream; }; typedef ostream_sink ostream_sink_mt; typedef ostream_sink ostream_sink_st; } }