browsing: 75189378ea7da33c96b766a3b8e6dad2997c5cc2
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() {}
47142d31
virtual void log (int result, const std::string &requester_user_name, const std::string &authorizer_user_name,
b017a4d2
const std::string &token) {};
47f9faed
};
370f8031
3ae0e083
class logger
cdf7fd74
{
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)) {}
47142d31
void log (int result, const std::string &requester_user_name, const std::string &authorizer_user_name,
b017a4d2
const std::string &token)
cdf7fd74
{
47142d31
delegate_->log (result, requester_user_name, authorizer_user_name, token);
cdf7fd74
}
bc6c3d35
static logger create (const sys_syslog &sys_syslog);
370f8031
};
47f9faed
#endif
92957308