acl
3.5.3.0
|
#include <rpc.hpp>
Public 成员函数 | |
rpc_service (int nthread, bool ipc_keep=true) | |
~rpc_service (void) | |
void | rpc_fork (rpc_request *req) |
Public 成员函数 继承自 acl::ipc_service | |
ipc_service (int nthread, bool ipc_keep=true) | |
virtual | ~ipc_service () |
ipc_client * | peek_conn () |
void | push_conn (ipc_client *conn) |
Public 成员函数 继承自 acl::ipc_server | |
ipc_server () | |
virtual | ~ipc_server () |
bool | open (aio_handle *handle, const char *addr="127.0.0.1:0") |
const char * | get_addr () const |
aio_listen_stream * | get_stream () const |
aio_handle & | get_handle () const |
额外继承的成员函数 | |
Protected 成员函数 继承自 acl::ipc_service | |
void | request (ipc_request *req) |
Protected 成员函数 继承自 acl::ipc_server | |
virtual void | on_open (const char *addr) |
virtual void | on_close () |
Protected 属性 继承自 acl::ipc_service | |
long long int | magic_ |
acl::rpc_service::rpc_service | ( | int | nthread, |
bool | ipc_keep = true |
||
) |
构造函数
nthread | {int} 如果该值 > 1 则内部自动采用线程池,否则 则是一个请求一个线程 |
ipc_keep | {bool} 内部 IPC 消息流是否保持长连接,保持长 连接有助于提高消息传递的效率 |
void acl::rpc_service::rpc_fork | ( | rpc_request * | req | ) |
主线程中运行:将请求任务放入子线程池的任务请求队列中,当线程池 中的一个子线程接收到该任务后便调用 rpc_request::rpc_run 方法调 用子类的方法,当任务处理完毕后给主线程发消息,在主线程中再调用 rpc_request::rpc_callback
req | {rpc_request*} rpc_request 子类实例,非空 |