⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 event_logger.cpp

📁 j2me is based on j2mepolish, client & server for mobile application.
💻 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 + -