diff options
author | Arnur Nigmetov <nigmetov@tugraz.at> | 2019-12-03 20:34:28 +0100 |
---|---|---|
committer | Arnur Nigmetov <nigmetov@tugraz.at> | 2019-12-03 20:34:28 +0100 |
commit | 29ed61e4dd575edc9960cc6414ab2e20c02a62e1 (patch) | |
tree | 4134a502f4a91c6c8a8fcc37cd24897445dbf1e3 /wasserstein/include/spdlog/sinks/ostream_sink.h | |
parent | 5a59cfad45c155f8af89c2c6d82db2848d52a953 (diff) |
Rename directories for bottleneck and Wasserstein
Diffstat (limited to 'wasserstein/include/spdlog/sinks/ostream_sink.h')
-rw-r--r-- | wasserstein/include/spdlog/sinks/ostream_sink.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/wasserstein/include/spdlog/sinks/ostream_sink.h b/wasserstein/include/spdlog/sinks/ostream_sink.h new file mode 100644 index 0000000..f056107 --- /dev/null +++ b/wasserstein/include/spdlog/sinks/ostream_sink.h @@ -0,0 +1,47 @@ +// +// Copyright(c) 2015 Gabi Melman. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) +// + +#pragma once + +#include "spdlog/details/null_mutex.h" +#include "spdlog/sinks/base_sink.h" + +#include <ostream> +#include <mutex> + +namespace spdlog +{ +namespace sinks +{ +template<class Mutex> +class ostream_sink: public base_sink<Mutex> +{ +public: + explicit ostream_sink(std::ostream& os, bool force_flush=false) :_ostream(os), _force_flush(force_flush) {} + ostream_sink(const ostream_sink&) = delete; + ostream_sink& operator=(const ostream_sink&) = delete; + virtual ~ostream_sink() = default; + +protected: + void _sink_it(const details::log_msg& msg) override + { + _ostream.write(msg.formatted.data(), msg.formatted.size()); + if (_force_flush) + _ostream.flush(); + } + + void _flush() override + { + _ostream.flush(); + } + + std::ostream& _ostream; + bool _force_flush; +}; + +typedef ostream_sink<std::mutex> ostream_sink_mt; +typedef ostream_sink<details::null_mutex> ostream_sink_st; +} +} |