mirror of
https://gitee.com/acl-dev/acl.git
synced 2024-12-04 21:09:19 +08:00
29 lines
716 B
C++
29 lines
716 B
C++
#include "stdafx.h"
|
||
#include "rpc_manager.h"
|
||
|
||
rpc_manager::rpc_manager(int max_threads /* = 10 */)
|
||
{
|
||
// 因为本类实例是单例,会在程序 main 之前被调用,
|
||
// 所以需要在此类中打开日志
|
||
// 创建非阻塞框架句柄,并采用 WIN32 消息模式:acl::ENGINE_WINMSG
|
||
handle_ = new acl::aio_handle(acl::ENGINE_WINMSG);
|
||
// 创建 rpc 服务对象
|
||
service_ = new acl::rpc_service(max_threads);
|
||
// 打开消息服务
|
||
if (service_->open(handle_) == false)
|
||
logger_fatal("open service error: %s", acl::last_serror());
|
||
}
|
||
|
||
rpc_manager::~rpc_manager()
|
||
{
|
||
delete service_;
|
||
handle_->check();
|
||
delete handle_;
|
||
logger("rpc service destroy ok!");
|
||
}
|
||
|
||
void rpc_manager::fork(acl::rpc_request* req)
|
||
{
|
||
service_->rpc_fork(req);
|
||
}
|