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 + -
显示快捷键?