设为首页 加入收藏

TOP

事件路由(一)
2019-08-27 07:20:51 】 浏览:47
Tags:事件 路由

1. 概述

业务软件设计开发过程中会依赖一些基础组件, 事件路由就是常见的基础组件。 本模块结合业务场景, 定制了一个基本的事件路由模块。

本文主要介绍了事件路由模块及其使用方法, 用于指导用户开发。

2. 架构原理

事件路由模块, 提供了一种事件分发的框架。 用户可以自己定义事件以及事件的处理策略。 具体系统框图组成及对外接口关系如图 15-1 所示。

图15-1 事件路由模块系统框图

概括来说, 事件路由模块主要由以下部分构成:

  • 订阅者

用户自定义订阅者: 订阅者名称, 事件处理函数, 用户扩展参数, 事件是否同步处理。

  • 事件定义

用户自定义事件:事件 ID, 参数 1, 参数 2, 处理结果, 创建时间, 负载。

  • 事件发布

支持事件统一发布。

  • 事件处理者

订阅者支持异步处理事件, 内部启动线程独立处理。

  • 历史事件

支持上一次事件的查询。

3. API 参考

该功能模块为用户提供以下 API:

  • HI_EVTHUB_Init: 初始化事件路由模块。
  • HI_EVTHUB_Deinit: 去初始化事件路由模块。
  • HI_EVTHUB_Register: 注册事件。
  • HI_EVTHUB_UnRegister: 解注册事件。
  • HI_EVTHUB_Publish: 发布事件。
  • HI_EVTHUB_CreateSubscriber: 创建订阅者。
  • HI_EVTHUB_DestroySubscriber:销毁订阅者。
  • HI_EVTHUB_Subscribe: 订阅事件。
  • HI_EVTHUB_UnSubscribe:解订阅事件。
  • HI_EVTHUB_GetEventHistory:获取历史事件。
  • HI_EVTHUB_SetEnabled:设置使能标记。
  • HI_EVTHUB_GetEnabled:获取使能标记。

HI_EVTHUB_Init

【描述】

初始化事件路由模块。

【定义】

HI_S32 HI_EVTHUB_Init();

【参数】

无。

【返回值】

返回值 描述
0 成功。
非 0 失败,参见错误码。

【需求】

  • 头文件: hi_eventhub.h
  • 库文件: libeventhub.a/ libeventhub.so

【注意】

该模块是单实例, 仅需一次初始化。

【举例】

无。

HI_EVTHUB_Deinit

【描述】

去初始化事件路由模块。

【定义】

HI_S32 HI_EVTHUB_Deinit();

【参数】

无。

【返回值】

返回值 描述
0 成功。
非 0 失败,参见错误码。

【需求】

  • 头文件: hi_eventhub.h
  • 库文件: libeventhub.a/ libeventhub.so

【注意】

无。

【举例】

无。

HI_EVTHUB_Register

【描述】

注册事件。

【定义】

HI_S32 HI_EVTHUB_Register(HI_EVENT_ID EventID);

【参数】
参数名称 | 描述 | 输入/输出
--- | ---| ---
EventID| 事件 ID。| 输入

【返回值】
返回值| 描述
---| ---
0 | 成功。
非 0 | 失败,参见错误码。

【需求】

  • 头文件: hi_eventhub.h
  • 库文件: libeventhub.a/ libeventhub.so

【注意】

无。

【举例】

无。

HI_EVTHUB_UnRegister

【描述】

解注册事件。

【定义】

HI_S32 HI_EVTHUB_UnRegister(HI_EVENT_ID EventID);

【参数】

参数名称 描述 输入/输出
EventID 事件 ID。 输入

【返回值】
返回值 | 描述
---|---
0 | 成功。
非 0 | 失败,参见错误码。

【需求】

  • 头文件: hi_eventhub.h
  • 库文件: libeventhub.a/ libeventhub.so

【注意】

无。

【举例】

无。

HI_EVTHUB_Publish

【描述】

发布事件。

【定义】

HI_S32 HI_EVTHUB_Publish(HI_EVENT_S *pEvent);

【参数】

参数名称 描述 输入/输出
pEvent 事件指针。 输入

【返回值】

返回值 描述
0 成功。
非 0 失败,参见错误码。

【需求】

  • 头文件: hi_eventhub.h
  • 库文件: libeventhub.a/ libeventhub.so

【注意】

无。

【举例】

无。

HI_EVTHUB_CreateSubscriber

【描述】

创建订阅者。

【定义】

HI_S32 HI_EVTHUB_CreateSubscriber(HI_SUBSCRIBER_S pstSubscriber,HI_MW_PTR ppSubscriber);

【参数】

参数名称 描述 输入/输出
pstSubscriber 订阅者参数。 输入
ppSubscriber 订阅者句柄指针。 输出

【返回值】
返回值 | 描述
---|---
0 | 成功。
非 0 | 失败,参见错误码。

【需求】

  • 头文件: hi_eventhub.h
  • 库文件: libeventhub.a/ libeventhub.so

【注意】

无。

【举例】

无。

HI_EVTHUB_DestroySubscriber

【描述】

销毁订阅者。

【定义】

HI_S32 HI_EVTHUB_DestroySubscriber(HI_MW_PTR pSubscriber);

【参数】
参数名称| 描述| 输入/输出
---|---|---
pSubscriber| 订阅者句柄。| 输入

【返回值】

返回值 描述
0 成功。
非 0 失败,参见错误码。

HI_EVTHUB_Subscribe

【描述】

订阅事件。

【定义】

HI_S32 HI_EVTHUB_Subscribe(HI_MW_PTR pSubscriber,HI_EVENT_ID EventID);

【参数】

参数名称 描述 输入/输出
pSubscriber 订阅者句柄。 输入
EventID 事件 ID。 输入

【返回值】

返回值 描述
0 成功。
非 0 失败,参见错误码。

【需求】

  • 头文件: hi_eventhub.h
  • 库文件: libeventhub.a/ libeventhub.so

【注意】

无。

【举例】

无。

HI_EVTHUB_UnSubscribe

【描述】

解订阅事件。

【定义】

HI_S32 HI_EVTHUB_UnSubscribe(HI_MW_PTR pSubscriber,HI_EVENT_ID EventID);

【参数】

参数名称 描述 输入/输出
pSubscriber 订阅者句柄。 输入
EventID 事件 ID。 输入

【返回值】
返回值| 描述
---|---
0 | 成功。
非 0 | 失败,参见错误码。

【需求】

  • 头文件: hi_eventhub.h
  • 库文件: libeventhub.a/ libeventhub.so

【注意】

无。

【举例】

无。

HI_EVTHUB_GetEventHistory

【描述】

获取历史事件。

【定义】

HI_S32 HI_EV

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇初级模拟电路:3-2 BJT的工作原理 下一篇初级模拟电路:3-3 共基组态

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目