diff --git a/include/spdlog/sinks/async_sink.h b/include/spdlog/sinks/async_sink.h index 0de171cf..a6a5306e 100644 --- a/include/spdlog/sinks/async_sink.h +++ b/include/spdlog/sinks/async_sink.h @@ -42,14 +42,14 @@ public: async_sink(async_sink &&) = default; async_sink &operator=(async_sink &&) = default; - void set_overflow_policy(overflow_policy policy) { overflow_policy_ = policy; } - [[nodiscard]] overflow_policy get_overflow_policy() const { return overflow_policy_; } + void set_overflow_policy(overflow_policy policy); + [[nodiscard]] overflow_policy get_overflow_policy() const; - [[nodiscard]] size_t get_overrun_counter() const { return q_->overrun_counter(); } - void reset_overrun_counter() const { q_->reset_overrun_counter(); } + [[nodiscard]] size_t get_overrun_counter() const; + void reset_overrun_counter() const; - [[nodiscard]] size_t get_discard_counter() const { return q_->discard_counter(); } - void reset_discard_counter() const { q_->reset_discard_counter(); } + [[nodiscard]] size_t get_discard_counter() const; + void reset_discard_counter() const; private: void sink_it_(const details::log_msg &msg) override; diff --git a/src/sinks/async_sink.cpp b/src/sinks/async_sink.cpp index 9736c620..21d19b0c 100644 --- a/src/sinks/async_sink.cpp +++ b/src/sinks/async_sink.cpp @@ -56,6 +56,37 @@ void async_sink::sink_it_(const details::log_msg &msg) { send_message_(async_log_msg::type::log, msg); } + +template +void async_sink::set_overflow_policy(overflow_policy policy) { + overflow_policy_ = policy; +} + +template +typename async_sink::overflow_policy async_sink::get_overflow_policy() const { + return overflow_policy_; +} + +template +size_t async_sink::get_overrun_counter() const { + return q_->overrun_counter(); +} + +template +void async_sink::reset_overrun_counter() const { + q_->reset_overrun_counter(); +} + +template +size_t async_sink::get_discard_counter() const { + return q_->discard_counter(); +} + +template +void async_sink::reset_discard_counter() const { + q_->reset_discard_counter(); +} + template void async_sink::flush_() { send_message_(async_log_msg::type::flush, details::log_msg());