HiSysEvent查询
HiSysEvent查询
概述
HiSysEvent提供了查询接口,支持开发者设置条件查询HiSysEvent事件,例如功耗部件可以通过该接口获取所需的系统事件进行业务分析。
开发指导
接口说明
表1 HiSysEvent查询接口
接口名 | 描述 |
---|---|
bool HiSysEventManager::QueryHiSysEvent(struct QueryArg& queryArg, std::vector<QueryRule>& queryRules, std::shared_ptr<HiSysEventQueryCallBack> queryCallBack) | 接口功能:支持设置查询时间段,事件领域,事件名称等,查询满足条件的HiSysEvent事件。 输入参数: - queryArg:查询参数。 - queryRules:事件过滤规则。 - queryCallBack:查询接口回调对象。 返回值: - true:查询成功。 - false:查询失败。 |
表2 QueryArg查询参数对象
属性名称 | 描述 |
---|---|
beginTime | long long int类型,用于指定查询事件的开始时间。 |
endTime | long long int类型,用于指定查询事件的结束时间。 |
maxEvents | int类型,用于指定查询返回事件查询的最多条数。 |
表3 QueryRule查询规则对象
接口名称 | 描述 |
---|---|
QueryRule(const std::string& domain, const std::vector<std::string>& eventList) | 接口功能:查询规则构造函数,创建查询规则对象。 输入参数: - domain:string类型,用来标识查询规则对象的事件所属领域,如果传入的是空字符串,则默认事件领域字段匹配成功。 - eventList:std::vector<std::string>类型,事件名称的列表,如果传入的是空字符串,则默认事件名称字段匹配成功。 |
表4 HiSysEventQueryCallBack查询回调对象
接口名称 | 描述 |
---|---|
void HiSysEventQueryCallBack::OnQuery(const ::std::vector<std::string>& sysEvent, const ::std::vector<int64_t>& seq) | 接口功能:订阅事件查询中的回调。 输入参数: - sysEvent:返回事件集合。 - seq:事件序列集合。 返回值: 无。 |
void HiSysEventQueryCallBack::OnComplete(int32_t reason, int32_t total) | 接口功能:订阅事件查询完成的回调。 输入参数: - reason:查询结束返回原因,目前默认是0。 - total:本次查询总共返回的事件总数量。 返回值: 无。 |
开发实例
C++接口实例。
源代码开发: 引入对应的头文件:
#include "hisysevent_manager.h"
1实现对应的查询回调接口:
void HiSysEventQueryCallBack::OnQuery(const ::std::vector<std::string>& sysEvent, const ::std::vector<int64_t>& seq) void HiSysEventQueryCallBack::OnComplete(int32_t reason, int32_t total)
1
2在相应的业务逻辑里面调用查询接口:
HiSysEventManager::QueryHiSysEvent(struct QueryArg& queryArg, std::vector<QueryRule>& queryRules, std::shared_ptr<HiSysEventQueryCallBack> queryCallBack)
1
2以下是查询所有系统事件的应用例子:
#include "hisysevent_manager.h" #include <iostream> namespace OHOS { namespace HiviewDFX { // 实现查询回调的接口 void HiSysEventToolQuery::OnQuery(const ::std::vector<std::string>& sysEvent, const ::std::vector<int64_t>& seq) { for_each(sysEvent.cbegin(), sysEvent.cend(), [](const std::string &tmp) { std::cout << tmp << std::endl; }); } void HiSysEventToolQuery::OnComplete(int32_t reason, int32_t total) { return; } } // namespace HiviewDFX } // namespace OHOS // 调用查询接口获取HiSysEvent事件 auto queryCallBack = std::make_shared<HiSysEventToolQuery>(); struct QueryArg args(clientCmdArg.beginTime, clientCmdArg.endTime, clientCmdArg.maxEvents); std::vector<QueryRule> mRules; HiSysEventManager::QueryHiSysEvent(args, mRules, queryCallBack);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26编译设置: 在BUILD.gn编译文件中,需要添加依赖hisysevent_native部件的libhisyseventmanager库。
external_deps = [ "hisysevent_native:libhisyseventmanager", ]
1