mirror of
https://gitee.com/acl-dev/acl.git
synced 2024-12-15 17:30:53 +08:00
42 lines
699 B
C++
42 lines
699 B
C++
|
#include "stdafx.h"
|
|||
|
#include "rpc_manager.h"
|
|||
|
|
|||
|
rpc_manager::rpc_manager()
|
|||
|
: handle_(NULL)
|
|||
|
, service_(NULL)
|
|||
|
{
|
|||
|
}
|
|||
|
|
|||
|
rpc_manager::~rpc_manager()
|
|||
|
{
|
|||
|
logger("rpc service destroy ok!");
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void rpc_manager::init(acl::aio_handle* handle, int max_threads /* = 10 */,
|
|||
|
const char* rpc_addr /* = NULL */)
|
|||
|
{
|
|||
|
handle_ = handle;
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD> rpc <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
service_ = new acl::rpc_service(max_threads);
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
|||
|
if (service_->open(handle_, rpc_addr) == false)
|
|||
|
logger_fatal("open service error: %s", acl::last_serror());
|
|||
|
}
|
|||
|
|
|||
|
void rpc_manager::finish()
|
|||
|
{
|
|||
|
if (service_)
|
|||
|
{
|
|||
|
delete service_;
|
|||
|
if (handle_)
|
|||
|
handle_->check();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
void rpc_manager::fork(acl::rpc_request* req)
|
|||
|
{
|
|||
|
service_->rpc_fork(req);
|
|||
|
}
|