#ifndef __CATEGORYLOGSINKBACKEND_H__
#define __CATEGORYLOGSINKBACKEND_H__

#include <boost/log/sinks.hpp>
#include <functional>
#include <string>

class CategoryLogSinkBackend
    : public boost::log::sinks::basic_formatted_sink_backend<char, boost::log::sinks::synchronized_feeding> {
public:
    using Append = std::function<void(const std::string &)>;
    CategoryLogSinkBackend(const std::string &category, Append &&append);
    void consume(const boost::log::record_view &record, string_type const &output);

private:
    std::string m_category;
    Append m_append;
};

#endif // __CATEGORYLOGSINKBACKEND_H__