Lines Matching refs:IPC

1 # IPC/RPC组件<a name="ZH-CN_TOPIC_0000001103602398"></a>
16 IPC(Inter-Process Communication)与RPC(Remote Procedure Call)机制用于实现跨进程通信,不同的是前者使用Binder驱动,用于设备内的跨进程通信…
20 **图 1** IPC通信机制架构图<a name="fig312319321710"></a>
21 ![](figures/ipc-architecture.png "IPC通信机制架构图")
63 此外, IPC/RPC依赖的refbase实现在公共基础库下,请增加对utils的依赖:
115 继承IPC框架的IRemoteBroker特征,定义一个业务自己的trait,在此trait中定义proxy和stub之间的IPC方法。
135 通过向samgr发起请求,可以获取到指定服务的代理对象,之后便可以调用该代理对象的IPC方法实现和服务的通信。
141 **表 1** JS侧IPC关键API
154 **表 2** Native侧IPC接口
306 4. IPC通信结束后,使用UIAbility的接口断开连接。
321 1. 定义IPC接口ITestAbility
323 IPC接口继承IPC基类接口IRemoteBroker,接口里定义描述符、业务函数和消息码,其中业务函数在Proxy端和Stub端都需要实现。
339 该类是和IPC框架相关的实现,需要继承自IRemoteStub<ITestAbility\>。Stub端作为接收请求的一端,需重写OnRemoteRequest方法用于接收客户端调用。
472 继承IPC框架IRemoteBroker特征,定义一个业务自己的trait,该trait中定义proxy和stub之间的IPC方法。示例如下定义了ICalc trait:
490 ICalcCode枚举中的变体表示calculator服务的不同功能。当然这一步不是必须的,但是为了提高代码的可读性,建议按照如下方法为每一个IPC方法定义code,示例如下:
496 CodeAdd = FIRST_CALL_TRANSACTION, // 由IPC框架定义,值为1,建议业务使用该值作为第一个IPC方法的code
583 当服务收到IPC请求,IPC框架会回调该方法,业务在该方法中完成如下处理:
587 2)调用具体的服务IPC方法。
674 上述对象最终通过宏define_remote_object调用,将业务定义的类型和IPC框架进行结合,宏define_remote_object提供了如下几个关键信息:
682 4)服务处理IPC请求的入口方法为on_icalc_remote_request。
710 // 将主线程转换为IPC线程,至此服务所在进程陷入循环
715 注意:add_service为IPC 框架提供的临时调试接口,该接口应该由samgr模块提供。
719 通过向samgr发起请求,可以获取到指定服务的代理对象,之后便可以调用该代理对象的IPC方法实现和服务的通信。示例代码如下:
737 注意:示例中的get_service()为IPC框架提供的临时接口,该接口由samgr模块提供。