messagerouter.cpp
来自「网络游戏通用架构, 这是基于boost和libevent写的一个程序」· C++ 代码 · 共 52 行
CPP
52 行
#include "messagerouter.h"
#include "message.h"
MessageRouter::MessageRouter()
{
}
MessageRouter::~MessageRouter()
{
}
void MessageRouter::breathe(void)
{
recursive_mutex::scoped_lock lock( _mutex );
while( _running && _threaded && _msgs.empty() ){
_cond.wait( lock );
}
for( list< shared_ptr<Message> >::iterator itor= _msgs.begin(); itor!=_msgs.end(); ){
shared_ptr<Message>& msg= *itor;
if( msg ){
if( msg->process( msg ) ){
itor= _msgs.erase( itor );
}else{
++itor;
}
}else{
itor= _msgs.erase( itor );
}
}
}
void MessageRouter::queueMsg( shared_ptr<Message>& __msg )
{
recursive_mutex::scoped_lock lock( _mutex );
_msgs.push_back( __msg );
_cond.notify_all();
}
void MessageRouter::shutdown(void)
{
recursive_mutex::scoped_lock lock( _mutex );
_cond.notify_all();
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?