acl  3.5.3.0
acl::rpc_request类 参考abstract

#include <rpc.hpp>

+ 类 acl::rpc_request 继承关系图:
+ acl::rpc_request 的协作图:

Public 成员函数

 rpc_request (void)
 
virtual ~rpc_request (void)
 
- Public 成员函数 继承自 acl::ipc_request
 ipc_request ()
 
virtual ~ipc_request ()
 

Protected 成员函数

virtual void rpc_onover (void)=0
 
virtual void rpc_wakeup (void *ctx)
 
virtual void rpc_run (void)=0
 
void rpc_signal (void *ctx)
 
bool cond_wait (int timeout=-1)
 
bool cond_wait_timeout () const
 
bool cond_signal (void)
 
- Protected 成员函数 继承自 acl::acl::noncopyable
 noncopyable ()
 
 ~noncopyable ()
 

友元

class rpc_client
 
class rpc_service
 

详细描述

在文件 rpc.hpp30 行定义.

构造及析构函数说明

◆ rpc_request()

acl::rpc_request::rpc_request ( void  )

◆ ~rpc_request()

virtual acl::rpc_request::~rpc_request ( void  )
virtual

成员函数说明

◆ cond_signal()

bool acl::rpc_request::cond_signal ( void  )
protected

当子线程调用 cond_wait 时,在主线程中调用本方法通知子线程 “醒来”

返回
{bool} 当有子线程调用 cond_wait 时本函数通知子线程 “醒来”并且返回 true,否则返回 false

◆ cond_wait()

bool acl::rpc_request::cond_wait ( int  timeout = -1)
protected

当子线程调用 rpc_signal 给主线程后,调用本方法可以等待 主线程发来下一步指令

参数
timeout{int} 等待超时时间(毫秒),当该值为 0 时 则采用非阻塞等待模式,当该值为 < 0 时,则采用完全阻塞 等待模式(即一直等到主线程发送 cond_signal 通知),当该 值 > 0 时,则等待的最大超时时间为 timeout 毫秒
返回
{bool} 返回 true 表示收到主线程发来的通知信号, 否则,需要调用 cond_wait_timeout 判断是否是超时引起的

◆ cond_wait_timeout()

bool acl::rpc_request::cond_wait_timeout ( ) const
inlineprotected

当 cond_wait 返回 false 时,应用应该调用本方法判断是否 是因为等待超时引起的

返回
{bool} 是否是等待超时

在文件 rpc.hpp89 行定义.

90  {
91  return wait_timedout_;
92  }

◆ rpc_onover()

virtual void acl::rpc_request::rpc_onover ( void  )
protectedpure virtual

在主线程中被调用,子类必须实现此接口, 当子线程处理完请求任务后该接口将被调用,所以该类对象只能 是当本接口调用后才能被释放,禁止在调用本接口前释放本类对象

◆ rpc_run()

virtual void acl::rpc_request::rpc_run ( void  )
protectedpure virtual

在子线程中被调用,子类必须实现此接口,用于处理具体任务

◆ rpc_signal()

void acl::rpc_request::rpc_signal ( void *  ctx)
protected

在子线程中被调用,内部自动支持套接口或 _WIN32 窗口消息 子类实例的 rpc_run 方法中可以多次调用此方法向主线程的 本类实例发送消息,主线程中调用本对象 rpc_wakeup 方法

参数
ctx{void*} 传递的参数指针,一般应该是动态地址 比较好,这样可以避免同一个参数被重复覆盖的问题

◆ rpc_wakeup()

virtual void acl::rpc_request::rpc_wakeup ( void *  ctx)
inlineprotectedvirtual

虚接口:当子线程调用本对象的 rpc_signal 时,在主线程中会 调用本接口,通知在任务未完成前(即调用 rpc_onover 前)收到 子线程运行的中间状态信息;内部自动支持套接口或 _WIN32 窗口 消息;应用场景,例如,对于 HTTP 下载应用,在子线程中可以 一边下载,一边向主线程发送(调用 rpc_signal 方法)下载进程, 则主线程会调用本类实例的此方法来处理此消息

在文件 rpc.hpp55 行定义.

55 { (void) ctx; }

友元及相关函数文档

◆ rpc_client

friend class rpc_client
friend

在文件 rpc.hpp37 行定义.

◆ rpc_service

friend class rpc_service
friend

在文件 rpc.hpp38 行定义.


该类的文档由以下文件生成: