往期知识点记录:
往期知识点记录:
- 鸿蒙(HarmonyOS)应用层开发(北向)知识点汇总
- OpenHarmony轻量系统服务管理|鸿蒙业务模型重要概念详解
- OpenHarmony轻量系统服务管理|同进程及跨进程间通信的数据结构及过程详解
- OpenHarmony轻量系统服务管理|系统服务间调用之对外接口详解
- OpenHarmony轻量系统服务管理|系统服务管理之基础框架及功能详解
- OpenHarmony轻量系统服务管理|系统服务管理之系统功能管理器详解
- OpenHarmony轻量系统服务管理|消息广播服务及其子功能详解
- OpenHarmony轻量系统服务管理|消息广播功能实例操作详解(一)
- OpenHarmony轻量系统服务管理|消息广播功能实例操作详解(二)
- OpenHarmony POSIX和CMSIS接口适配层解读(1):queue_adapter
- OpenHarmony POSIX和CMSIS接口适配层解读adapter(2):thread/memory/time
- OpenHarmony轻量系统服务管理-samgr主要接口思维导图(1)
- OpenHarmony轻量系统服务管理-samgr主要接口思维导图(2)
- OpenHarmony轻量系统服务管理-samgr:common赏析及实现
- OpenHarmony轻量系统服务管理-samgr:iunknown赏析
- OpenHarmony轻量系统服务管理-samgr:iunknown实现分析
- OpenHarmony轻量系统服务管理samgr-message赏析
- OpenHarmony轻量系统服务管理samgr-message实现分析(1)
- OpenHarmony轻量系统服务管理samgr-message实现分析(2)
- OpenHarmony轻量系统服务管理samgr-samgr_lite赏析
- 持续更新中……
在samgr_lite部分,用于向Samgr注册服务、特性和功能并由Samgr发现它们。文件位于distributedschedule_samgr_lite\interfaces\kits\samgr\samgr_lite.h。
一、宏定义分析
//启动引导服务,该服务由samgr使用,并由系统服务开发人员实现
#define BOOTSTRAP_SERVICE "Bootstrap"
//定义功能最大数目
#define MAX_SYSCAP_NUM 512
//定义功能名的最大长度
#define MAX_SYSCAP_NAME_LEN 64
二、结构体分析
//枚举要为启动引导服务而处理的消息的id
typedef enum BootMessage {
//表示核心系统服务已初始化的消息
BOOT_SYS_COMPLETED,
//表示系统和应用层服务已初始化的消息
BOOT_APP_COMPLETED,
//指示运行期间服务注册的消息
BOOT_REG_SERVICE,
//最大消息id数
BOOTSTRAP_BUTT
} BootMessage;
//表示系统能力管理类。该类用于注册和发现服务、特性和功能。
typedef struct SamgrLite {
//注册服务
//@service:需要注册的服务。
//@如果注册成功返回TRUE,如果注册失败返回FALSE
BOOL (*RegisterService)(Service *service);
//注销服务
//@name:待注销的服务名称,注意在取消注册服务之前,您必须取消其特性和功能
//注销成功返回未注册的服务对象。内存由调用者释放。如果注销失败,返回NULL。
Service *(*UnregisterService)(const char *name);
//注册特性
//@feature:需要注册的特性。
//如果注册成功返回TRUE,如果注册失败返回FALSE
BOOL (*RegisterFeature)(const char *serviceName, Feature *feature);
//注销特性
//@serviceName:要取消注册的服务名称。
//@featureName:待注销特性的名称,注意在注销特性之前,必须注销其功能。
//如果注销成功,返回未注册的特性对象。内存由调用者释放。如果注销失败,返回NULL
Feature *(*UnregisterFeature)(const char *serviceName, const char *featureName);
//为服务的默认特性注册API。
//@service:将注册其默认特性API的服务名称。
//@publicApi:需要注册的API。
//如果注册成功返回TRUE,如果注册失败返回FALSE
BOOL (*RegisterDefaultFeatureApi)(const char *service, IUnknown *publicApi);
//从服务的默认特性中注销API。
//@service:该服务的默认特性API将被取消注册。
//如果取消注册成功,返回未注册的函数对象。内存由调用者释放。如果注销失败,返回NULL
IUnknown *(*UnregisterDefaultFeatureApi)(const char *service);
//为特性注册API
//@service:要注册其API的服务名称。
//@feature:要注册API的特性的名称。
//@publicApi需要注册的API。
//@如果注册成功返回TRUE,如果注册失败返回FALSE
BOOL (*RegisterFeatureApi)(const char *service, const char *feature, IUnknown *publicApi);
//从特性中注销API
//@service:将注销其API的服务名称。
//@feature:该特性的API将被取消注册。
//@如果取消注册成功,返回未注册的函数对象。内存由调用者释放。如果注销失败,返回NULL
IUnknown *(*UnregisterFeatureApi)(const char *service, const char *feature);
//获取特定于默认特性的API
//@service:默认特性所属服务的名称
//如果操作成功返回IUnknown对象,如果操作失败,返回NULL
IUnknown *(*GetDefaultFeatureApi)(const char *service);
//获取特定于特性的API
//@service:该特性所属服务的名称
//@feature:要获取的特性的API名称
//@如果操作成功返回IUnknown对象,如果操作失败,返回NULL
IUnknown *(*GetFeatureApi)(const char *serviceName, const char *feature);
//您可以调用这个函数来添加系统功能
//@sysCap:系统能力名称
//如果这个函数被成功调用,返回EC_SUCCESS,否则返回错误代码
int32 (*AddSystemCapability)(const char *sysCap);
//可以调用此函数检查系统能力是否存在
//@sysCap系统能力名称
//如果系统能力存在返回TRUE,否则返回FALSE
BOOL (*HasSystemCapability)(const char *sysCap);
//获取所有可用的系统功能
//如果这个函数被成功调用,返回EC_SUCCESS,否则返回错误代码
//保存在sysCapNum中的可用系统能力数量和保存在sysCaps中的所有可用系统能力。
int32 (*GetSystemAvailableCapabilities)(char sysCaps[MAX_SYSCAP_NUM][MAX_SYSCAP_NAME_LEN], int32 *sysCapNum);
} SamgrLite;
写在最后
如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:
- 点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。
- 关注小编,同时可以期待后续文章ing🚀,不定期分享原创知识。
- 想要获取更多完整鸿蒙最新学习资源,请看下图提示: