📄 event_logger.cpp
字号:
// Copyright E骾n O'Callaghan 2007 - 2008.
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
#include "StdAfx.hpp"
#define EVENT_LOGGER_IMPL_UNIT
#include "event_logger.hpp"
static boost::shared_ptr<event_logger_impl> s_event_logger_impl;
struct event_logger_impl
{
mutable boost::mutex mutex_;
boost::signal<void (boost::shared_ptr<event_type>)> event_signal_;
};
event_logger::event_logger()
{
init();
}
void event_logger::init()
{
if (!s_event_logger_impl)
s_event_logger_impl.reset(new event_logger_impl());
pimpl = s_event_logger_impl;
}
boost::signals::connection event_logger::attach(boost::function<void (boost::shared_ptr<event_type>)> fn)
{
boost::mutex::scoped_lock l(pimpl->mutex_);
return pimpl->event_signal_.connect(fn);
}
void event_logger::dettach(const boost::signals::connection& c)
{
boost::mutex::scoped_lock l(pimpl->mutex_);
pimpl->event_signal_.disconnect(c);
}
void event_logger::post(boost::shared_ptr<event_type> evt)
{
boost::mutex::scoped_lock l(pimpl->mutex_);
pimpl->event_signal_(evt);
}
void event_logger::post(event_type* e)
{
boost::mutex::scoped_lock l(pimpl->mutex_);
boost::shared_ptr<event_type> evt(e);
pimpl->event_signal_(evt);
}
std::wstring event_logger::event_level_to_str(event_level e)
{
switch (e)
{
case dev:
return L"Dev";
case debug:
return L"Debug";
case info:
return L"Info";
case warning:
return L"Warning";
case critical:
return L"Critical";
case fatal:
return L"Fatal";
default:
return L"None";
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -