鸿蒙源码分析(四十九)

broadcast_service.c文件分析

该文件位于分布式系统模块下,主要是广播服务函数。
文件路径

代码分析

一、相关结构体和宏定义

Identity结构体

struct Identity {
    
    
    /** Service ID */
    int16 serviceId;   //服务id
    /** Feature ID */
    int16 featureId;  //特征信息
    /** Message queue ID */
    MQueueId queueId;  //队列信息id
};

广播服务结构体的定义

static BroadcastService g_broadcastService = {
    
    
    GetName, //获取服务名字
    Initialize,  //初始化服务
    MessageHandle, //消息处理
    GetTaskConfig, //获取任务配置
};//定义一个广播服务结构体

消息配置信息

struct TaskConfig {
    
    
    /**
     * ID of a multi-service sharing task. For details about the level definition,
     * see {@link SpecifyTag}.
     */
    int16 level;
    /** Task priority. For details about the definition of priority, see {@link TaskPriority}. */
    int16 priority;
    /** Size of a task stack */
    uint16 stackSize;
    /** Size of a task queue */
    uint16 queueSize;
    /** Task type. For details about the taskFlags definition, see {@link TaskType}. */
    uint8 taskFlags;
};

消息类型的共用体

enum BroadcastMsgType {
    
    
    BROADCAST_MSG,
};

二、函数定义

主要是四个函数,主要功能获取服务名、初始化、消息的处理,获取进程任务配置。

static void Init(void)
{
    
    
    SAMGR_GetInstance()->RegisterService((Service *)&g_broadcastService);
}
SYS_SERVICE_INIT(Init);
//获取服务名
static const char *GetName(Service *service)
{
    
    
    (void)service;
    return BROADCAST_SERVICE;
}
//初始化函数。主要判断服务是否空
static BOOL Initialize(Service *service, Identity identity)
{
    
    
    (void)identity;
    if (service == NULL) {
    
    
        return FALSE;
    }
    return TRUE;
}
//消息处理
static BOOL MessageHandle(Service *service, Request *request)
{
    
    
    (void)service;
    switch (request->msgId) {
    
    
        case BROADCAST_MSG://看消息id是否存在
            break;
        default:
            break;
    }
    return TRUE;
}
//获取任务配置
static TaskConfig GetTaskConfig(Service *service)
{
    
    
    (void)service;
    TaskConfig config = {
    
    LEVEL_HIGH, PRI_ABOVE_NORMAL, 0x800, 40, SPECIFIED_TASK};
    //定义好各个配置的信息
    return config;
}

感谢阅读和点赞

猜你喜欢

转载自blog.csdn.net/m0_46976252/article/details/120122187