2021-09-16
OpenHarmony模块二interfaces下头文件解析(4)distributedschedule_samgr_lite/interfaces/kits/samgr/samgr_lite.h该文件主要为简要管理系统提供使用服务,在服务和使用向Samgr注册并被Samgr发现时进行调用。由系统服务开发人员实现。文件开头首先给了三个宏定义://brief启动一个引导服务,该服务由samgr使用,
OpenHarmony模块二interfaces下头文件解析(4)
distributedschedule_samgr_lite/interfaces/kits/samgr/samgr_lite.h
该文件主要为简要管理系统提供使用服务,在服务和使用向Samgr注册并被Samgr发现时进行调用。由系统服务开发人员实现。
文件开头首先给了三个宏定义:
//brief启动一个引导服务,该服务由samgr使用,并由系统服务实现
#define BOOTSTRAP_SERVICE "Bootstrap"
//简介定义了系统功能的最大数量。
#define MAX_SYSCAP_NUM 512
//简要定义系统功能名称的最大长度。
#define MAX_SYSCAP_NAME_LEN 64
该函数的功能主要是简短枚举启动引导服务时要处理的消息的ID。
此功能由系统服务的开发人员实现。
//启动Samgr时发送到引导服务的消息。
typedef enum BootMessage {
BOOT_SYS_COMPLETED, //指示核心系统服务已初始化的消息
BOOT_APP_COMPLETED, //指示系统和应用层服务已初始化的消息
BOOT_REG_SERVICE, //运行期间指示服务注册的消息
BOOTSTRAP_BUTT //最大消息ID数
} BootMessage;
该函数主要为系统能力管理类
//此类用于注册和发现服务、功能和函数。
typedef struct SamgrLite {
该函数为一个注册服务,在调用时需要在每个服务的启动条目中调用此函数,要注册的{@link Service}和{@link Service}结构成员不能为空。
BOOL (*RegisterService)(Service *service); //service表示要注册的服务
调用该函数进行注册服务后,如果注册成功,则返回TRUE;如果注册失败,返回FALSE。
该函数为取消注册服务,当不再需要服务时,需要调用此函数。
Service *(*UnregisterService)(const char *name); //name表示要注销的服务的名称
注意:在注销服务之前,必须先注销其功能。
如果注销成功,return返回未注册的服务对象,调用者释放内存。如果注销失败,则返回NULL。
该函数主要提供了一个简短地注册一个特性的服务,在调用其他服务时,需要在每个功能的启动条目中调用此函数。
BOOL (*RegisterFeature)(const char *serviceName, Feature *feature);
//feature表示要注册的功能。
注意事项:要注册的{@link Feature}和{@link Feature}结构成员不能为空。
如果注册成功,则返回TRUE;返回FALSE
该函数提供了信函取消注册功能,当不再需要该功能时,需要调用此函数。
Feature *(*UnregisterFeature)(const char *serviceName, const char *featureName);
//serviceName表示将注销其功能的服务的名称。
//featureName表示要注销的功能的名称。
注意:在注销功能之前,必须先注销其功能。否则,注销失败。
如果注销成功,返回未注册的要素对象,调用者释放内存。如果注销失败,则返回NULL。
该函数主要用于为服务的默认功能注册API,需要在服务注册后调用此函数。
BOOL (*RegisterDefaultFeatureApi)(const char *service, IUnknown *publicApi);
//service表示将注册其默认功能的API的服务的名称。
//publicApi表示要注册的API。
注意:指向要注册的{@link IUnknown}和{@link IUnknown}成员的指针不能为空
如果注册成功,则返回TRUE;返回FALSE
该函数的用途为从服务的默认功能中注销API,需要调用此函数来注销{@link IUnknown}如果要注册的服务,不再需要默认功能。
IUnknown *(*UnregisterDefaultFeatureApi)(const char *service);
//服务指示其默认功能的API将被注销的服务的名称。
如果注销成功,return返回未注册的函数对象,调用者释放内存。如果注销失败,则返回NULL。
该函数主要用于简要注册功能的API,仅当功能已注册时,才能调用此函数。
指向要注册的{@link IUnknown}和{@link IUnknown}成员的指针不能为空。
BOOL (*RegisterFeatureApi)(const char *service, const char *feature, IUnknown *publicApi);
//feature表示将注册其API的功能的名称
//publicApi表示要注册的API。
注意:指向要注册的{@link IUnknown}和{@link IUnknown}成员的指针不能为空。
如果注册成功,则返回TRUE;如果注册失败,返回FALSE
该函数的功能是从功能中注销API,在注销不再需要的功能之前,必须调用此函数
IUnknown *(*UnregisterFeatureApi)(const char *service, const char *feature);
//服务指示其API将被注销的服务的名称
//feature表示将注销其API的功能的名称。
如果注销成功,return返回未注册的函数对象,调用者释放内存。如果注销失败,则返回NULL
该函数的功能是获取特定于默认功能的API,在使用相关服务的系统功能之前,需要调用此函数
IUnknown *(*GetDefaultFeatureApi)(const char *service);
//服务指示默认功能所属的服务的名称。
返回操作成功时可以调用的IUnknown*对象;如果操作失败,则返回NULL。
该函数主要用于获取特定于该功能的API,在使用相关服务的系统功能之前,需要调用此函数。
IUnknown *(*GetFeatureApi)(const char *serviceName, const char *feature);
//服务指示功能所属的服务的名称
//feature表示将获取其API的功能的名称。
返回操作成功时可以调用的IUnknown*对象;如果操作失败,则返回NULL。
该函数的作用为增加系统的功能,使用者可以调用此函数来添加系统功能。
int32 (*AddSystemCapability)(const char *sysCap);
//sysCap表示系统容量的名称。
如果成功调用此函数,则返回EC_SUCCESS;否则返回另一个错误代码。
该函数用于检查是否存在系统能力,使用者可以调用此函数来检查系统功能是否存在
BOOL (*HasSystemCapability)(const char *sysCap);
//sysCap表示系统容量的名称
如果系统能力存在,则返回TRUE;否则返回FALSE。
该函数的功能为获取所有可用的系统功能,在调用此函数之前,您需要确保有足够的内存来保存所有可用的系统功能。
int32 (*GetSystemAvailableCapabilities)(char sysCaps[MAX_SYSCAP_NUM][MAX_SYSCAP_NAME_LEN], int32 *sysCapNum);
} SamgrLite;
如果成功调用此函数,则返回EC_SUCCESS;否则返回另一个错误代码。
保存在sysCapNum中的可用系统功能数和保存在sysCaps中的所有可用系统功能数。
该函数用于获取singleton Samgr实例,在使用Samgr功能之前,需要调用此函数
SamgrLite *SAMGR_GetInstance(void);
//返回指向单例实例{@link SamgrLite}的指针
该函数用于启动系统服务和功能,在主函数中调用此函数,以在开发独立流程时启动所有服务。在系统运行期间加载动态库(包含系统服务和功能)后调用此函数。
void SAMGR_Bootstrap(void);
注意:此函数不能频繁调用。否则,可能会出现重复服务启动等问题。建议在main函数中或在加载动态库后调用此函数一次。
更多推荐
所有评论(0)