2024年5月26日发(作者:)
鸿蒙通用业务模型与IPC
目录
鸿蒙通用业务模型与IPC
代码位置
设备模型
业务概念
特性概念
抽象API
API寻址
why
线程间通信
消息队列
消息体
消息分发和处理
进程间通信
通信基础
注册和查找API
总结
鸿蒙通用业务模型与IPC
代码位置
目录描述
foundation/distributedschedule/services/samgr_lite鸿蒙通
用业务模型实现代码
foundation/distributedschedule/services/samgr_lite/commu
nication实现了广播业务(service)和发布订阅特性(feature)
foundation/distributedschedule/services/samgr_lite/samgr
支持跨线程的远过程调用及对应的抽象业务模型
foundation/distributedschedule/services/samgr_lite/samgr/
samgr_client跨进程远过程调用客户端进程的实现逻辑
foundation/distributedschedule/services/samgr_lite/samgr/
samgr_server跨进程远过程调用服务器端进程的实现逻辑
foundation/distributedschedule/services/samgr_lite/samgr/
samgr_endpoint跨进程远过程调用与通信紧密相关的逻辑
设备模型
鸿蒙系统支持2大种类的设备:
1. 只支持线程概念的设备,无进程概念。
2. 支持进程概念的设备,这样的设备中,设备可以运行多个进程,
进程内还可以有多个线程。
不管上述哪种设备。都可以在鸿蒙系统中部署各种各样的业务
(service)。在保持每个业务简洁的同时,多个业务协同还能完成复杂
的功能。
业务概念
业务(service)是一个抽象的概念,代表一组紧密相关的功能或者
操作,可以认为是一个软件模块,部署在线程中。多个业务模块可以
部署在同一个线程中;重要的业务模块也可以独占一个线程。实现了
下述结构(类似于Java的Interface, C++的Abstract class)的软件模
块称为一个具体的业务模块。
struct Service {
/**
* @since 1.0
* @version 1.0 */
const char *(*GetName)(Service *service); //获取业务名称
/**
* @since 1.0
* @version 1.0
*/
BOOL (*Initialize)(Service *service, Identity identity); //初始
化业务,ID为业务在业务表中的序号
/**
发布评论