acl/app/net_tools/rpc/rpc_manager.h
2014-11-19 00:25:21 +08:00

28 lines
573 B
C++

#pragma once
/**
* 本类对象将阻塞任务交给子线程处理;为了方便使用,将该类声明为单例类
*/
class rpc_manager : public acl::singleton<rpc_manager>
{
public:
/**
* 构造函数
* @param max_threads {int} 子线程池的最大线程数量
*/
rpc_manager(int max_threads = 10);
~rpc_manager();
/**
* 发起一个阻塞过程,将该过程交由子线程处理
* @param req {acl::rpc_request*} 阻塞任务对象
*/
void fork(acl::rpc_request* req);
protected:
private:
// 异步消息句柄
acl::aio_handle* handle_;
// 异步 RPC 通信服务句柄
acl::rpc_service* service_;
};