event_logger.cpp
来自「j2me is based on j2mepolish, client & se」· C++ 代码 · 共 79 行
CPP
79 行
// 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 + =
减小字号Ctrl + -
显示快捷键?