轻量级分布式结构体的初始化
// 轻量级分布式结构体的初始化
DmsLite g_dmslite = {
/* feature functions */
.GetName = GetName, // 获取服务名
.OnInitialize = OnInitialize, // Servcie 初始化函数
.OnStop = OnStop,
.OnMessage = OnMessage,
.identity = {-1, -1, NULL},
/* dms interface for other subsystems */
DEFAULT_IUNKNOWN_ENTRY_BEGIN, // 默认未知设备开始
.StartRemoteAbility = StartRemoteAbilityInner,
DEFAULT_IUNKNOWN_ENTRY_END // // 默认未知设备结束
}
获取分布式 Feature
DmsLite *GetDmsLiteFeature()
{
return &g_dmslite;
}
获取服务名
static const char *GetName(Feature *feature)
{
if (feature == NULL) {
return EMPTY_FEATURE_NAME;
}
return DMSLITE_FEATURE;
}
初始化软总线服务
static void OnInitialize(Feature *feature, Service *parent, Identity identity)
{
if (feature == NULL || parent == NULL) {
return;
}
((DmsLite*) feature)->identity = identity;
InitSoftbusService();
}
DD一下:欢迎大家关注公众号<程序猿百晓生>,可以了解到一下知识点。
1.OpenHarmony开发基础
2.OpenHarmony北向开发环境搭建
3.鸿蒙南向开发环境的搭建
4.鸿蒙生态应用开发白皮书V2.0 & V3.0
5.鸿蒙开发面试真题(含参考答案)
6.TypeScript入门学习手册
7.OpenHarmony 经典面试题(含参考答案)
8.OpenHarmony设备开发入门【最新版】
9.沉浸式剖析OpenHarmony源代码
10.系统定制指南
11.【OpenHarmony】Uboot 驱动加载流程
12.OpenHarmony构建系统--GN与子系统、部件、模块详解
13.ohos开机init启动流程
14.鸿蒙版性能优化指南
.......
连接远端处理消息
static BOOL OnMessage(Feature *feature, Request *request)
{
if (feature == NULL || request == NULL) {
return FALSE;
}
switch (request->msgId) {
case START_REMOTE_ABILITY:
StartRemoteAbility((const Want *) request->data);
break;
case SESSION_OPEN:
HandleSessionOpened(request->msgValue);
break;
case SESSION_CLOSE:
HandleSessionClosed(request->msgValue);
break;
case BYTES_RECEIVED:
HandleBytesReceived(request->msgValue, request->data, request->len);
break;
default: {
HILOGW("[Unkonwn msgId = %d]", request->msgId);
break;
}
}
return TRUE;
}
feature 初始化
static void Init()
{
BOOL result = SAMGR_GetInstance()->RegisterFeature(DISTRIBUTED_SCHEDULE_SERVICE, (Feature*) &g_dmslite);
if (!result) {
HILOGE("[dms register feature failed]");
}
result = SAMGR_GetInstance()->RegisterFeatureApi(DISTRIBUTED_SCHEDULE_SERVICE,
DMSLITE_FEATURE, GET_IUNKNOWN(g_dmslite));
if (!result) {
HILOGE("[dms register feature api failed]");
}
}
SYS_FEATURE_INIT(Init);