7684972a | /* Copyright (C) CJ Affiliate * * You may use, distribute and modify this code under the * terms of the GNU General Public License version 2 or * later. * * You should have received a copy of the license with this * file. If not, you will find a copy in the "LICENSE" file * at https://github.com/cjdev/dual-control. */ |
47f9faed | #ifndef __DUAL_CONTROL_LOGGING #define __DUAL_CONTROL_LOGGING #include <memory> #include <string> |
a9690b1d | #include "sys_syslog.h" |
cdf7fd74 | class logger_ifc { public: virtual ~logger_ifc() {} |
b017a4d2 | virtual void log (int result, const std::string &user_name, const std::string &token) {}; |
47f9faed | }; |
370f8031 | |
cdf7fd74 | class logger : public logger_ifc { |
bc6c3d35 | public: typedef std::shared_ptr<logger_ifc> delegate; |
cdf7fd74 | private: |
a9690b1d | delegate delegate_; |
cdf7fd74 | public: |
a9690b1d | logger (const delegate &delegate) : delegate_ |
b017a4d2 | (delegate) {} |
a9690b1d | logger() : logger (delegate (new logger_ifc)) {} |
b017a4d2 | void log (int result, const std::string &user_name, const std::string &token) |
cdf7fd74 | { |
b017a4d2 | delegate_->log (result, user_name, token); |
cdf7fd74 | } |
bc6c3d35 | static logger create (const sys_syslog &sys_syslog); |
370f8031 | }; |
47f9faed | #endif |
92957308 |