Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Tonvia
Docs
提交
0b9702c0
D
Docs
项目概览
Tonvia
/
Docs
与 Fork 源项目一致
Fork自
OpenHarmony / Docs
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
0b9702c0
编写于
9月 05, 2022
作者:
X
xuyong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
HiSysEvent接口易用性整改相关资料更新
Signed-off-by:
N
xuyong
<
xuyong59@huawei.com
>
上级
ed099635
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
108 addition
and
69 deletion
+108
-69
zh-cn/application-dev/reference/apis/js-apis-hisysevent.md
zh-cn/application-dev/reference/apis/js-apis-hisysevent.md
+1
-1
zh-cn/device-dev/subsystems/subsys-dfx-hisysevent-listening.md
.../device-dev/subsystems/subsys-dfx-hisysevent-listening.md
+66
-35
zh-cn/device-dev/subsystems/subsys-dfx-hisysevent-query.md
zh-cn/device-dev/subsystems/subsys-dfx-hisysevent-query.md
+38
-30
zh-cn/device-dev/subsystems/subsys-dfx-hisysevent-tool.md
zh-cn/device-dev/subsystems/subsys-dfx-hisysevent-tool.md
+3
-3
未找到文件。
zh-cn/application-dev/reference/apis/js-apis-hisysevent.md
浏览文件 @
0b9702c0
...
...
@@ -89,7 +89,7 @@ write(info: SysEventInfo): Promise<void>
| 参数名 | 类型 | 必填 | 说明 |
| --------- | ----------------------- | ---- | --------------- |
|
eventType |
[
EventType
](
#eventtype
)
| 是 | 应用事件类型
。 |
|
info |
[
SysEventInfo
](
#syseventinfo
)
| 是 | 系统事件
。 |
**返回值:**
...
...
zh-cn/device-dev/subsystems/subsys-dfx-hisysevent-listening.md
浏览文件 @
0b9702c0
...
...
@@ -21,32 +21,61 @@ HiSysEvent提供了跨进程订阅机制,开发者可以通过注册订阅接
**表1**
HiSysEvent订阅接口
| 接口名称 | 描述 |
| 接口名称 | 描述 |
| -------- | -------- |
| int32_t
HiSysEventManager::Add
EventListener(std::shared_ptr
<
HiSysEventSubscribeCallBack
>
listener,
<br/>
std::vector
<
ListenerRule
>&
rules) | 接口功能:注册订阅HiSysEvent系统事件侦听对象,可设置规则订阅某些事件。
<br/>
输入参数:
<br/>
-
listener:订阅回调对象。
<br/>
-
rules:事件订阅规则。
<br/>
返回值:
<br/>
-
0:订阅成功。
<br/>
-
负值:订阅失败。 |
| int32_t
HiSysEventManager::RemoveListener(std::shared_ptr
<
HiSysEvent
SubscribeCallBack
>
listener) | 接口功能:移除订阅hisysevent系统事件侦听对象。
<br/>
输入参数:
<br/>
-
listener:订阅回调对象。
<br/>
返回值:
<br/>
-
0:取消订阅成功。
<br/>
-
负值:取消订阅失败。 |
| int32_t
HiSysEventManager::Add
Listener(std::shared_ptr
<
HiSysEventListener
>
listener,
<br/>
std::vector
<
ListenerRule
>&
rules) | 接口功能:注册订阅HiSysEvent系统事件侦听对象,可设置规则订阅某些事件。
<br/>
输入参数:
<br/>
-
listener:订阅回调对象。
<br/>
-
rules:事件订阅规则。
<br/>
返回值:
<br/>
-
0:订阅成功。
<br/>
-
负值:订阅失败。 |
| int32_t
HiSysEventManager::RemoveListener(std::shared_ptr
<
HiSysEvent
Listener
>
listener) | 接口功能:移除订阅hisysevent系统事件侦听对象。
<br/>
输入参数:
<br/>
-
listener:订阅回调对象。
<br/>
返回值:
<br/>
-
0:取消订阅成功。
<br/>
-
负值:取消订阅失败。 |
**表2**
ListenerRule订阅规则对象
| 接口名称 | 描述 |
| 接口名称 | 描述 |
| -------- | -------- |
| ListenerRule(const
std::string
&
tag,
<br/>
RuleType
ruleType
=
RuleType::WHOLE_WORD) | 接口功能:订阅规则构造函数,创建事件标签订阅规则对象。
<br/>
输入参数:
<br/>
-
tag:订阅规则的HisysEvent事件标签,字符串类型,最大长度16个字符(含),有效字符包含大小写字母及数字。
<br/>
-
ruleType:订阅规则的规则类型,RuleType枚举类型(参考表3)。 |
| ListenerRule(const
std::string
&
domain,
<br/>
const
std::string
&
eventName,
<br/>
RuleType
ruleType
=
RuleType::WHOLE_WORD) | 接口功能:订阅规则构造函数,创建事件领域与事件名称订阅规则对象。
<br/>
输入参数:
<br/>
-
domain:订阅规则的HisysEvent事件领域,字符串类型,最大长度16个字符(含),有效字符包含大写字母、数字及下划线。
<br/>
-
eventName:订阅规则的HisysEvent事件名称,字符串类型,最大长度32个字符(含),有效字符包含大写字母、数字及下划线。
<br/>
-
ruleType:订阅规则的规则类型,RuleType枚举类型(参考表3)。 |
| ListenerRule(const
std::string
&
domain,
<br/>
const
std::string
&
eventName,
<br/>
const
std::string
&
tag,
<br/>
RuleType
ruleType
=
RuleType::WHOLE_WORD) | 接口功能:订阅规则构造函数,创建事件领域、事件名称,事件标签订阅规则对象。
<br/>
输入参数:
<br/>
-
tag:订阅规则的HisysEvent事件标签,字符串类型,最大长度16个字符(含),有效字符包含大小写字母及数字。
<br/>
-
domain:订阅规则的HisysEvent事件领域,字符串类型,最大长度16个字符(含),有效字符包含大写字母、数字及下划线。
<br/>
-
eventName:订阅规则的HisysEvent事件名称,字符串类型,最大长度32个字符(含),有效字符包含大写字母、数字及下划线。
<br/>
-
ruleType:订阅规则的规则类型,RuleType枚举类型(参考表3)。 |
| ListenerRule(const
std::string
&
tag,
<br/>
RuleType
ruleType
=
RuleType::WHOLE_WORD) | 接口功能:订阅规则构造函数,创建事件标签订阅规则对象。
<br/>
输入参数:
<br/>
-
tag:订阅规则的HisysEvent事件标签,字符串类型,最大长度16个字符(含),有效字符包含大小写字母及数字。
<br/>
-
ruleType:订阅规则的规则类型,RuleType枚举类型(参考表3)。 |
| ListenerRule(const
std::string
&
domain,
<br/>
const
std::string
&
eventName,
<br/>
RuleType
ruleType
=
RuleType::WHOLE_WORD) | 接口功能:订阅规则构造函数,创建事件领域与事件名称订阅规则对象。
<br/>
输入参数:
<br/>
-
domain:订阅规则的HisysEvent事件领域,字符串类型,最大长度16个字符(含),有效字符包含大写字母、数字及下划线。
<br/>
-
eventName:订阅规则的HisysEvent事件名称,字符串类型,最大长度32个字符(含),有效字符包含大写字母、数字及下划线。
<br/>
-
ruleType:订阅规则的规则类型,RuleType枚举类型(参考表3)。 |
| ListenerRule(const
std::string
&
domain,
<br/>
const
std::string
&
eventName,
<br/>
const
std::string
&
tag,
<br/>
RuleType
ruleType
=
RuleType::WHOLE_WORD) | 接口功能:订阅规则构造函数,创建事件领域、事件名称,事件标签订阅规则对象。
<br/>
输入参数:
<br/>
-
tag:订阅规则的HisysEvent事件标签,字符串类型,最大长度16个字符(含),有效字符包含大小写字母及数字。
<br/>
-
domain:订阅规则的HisysEvent事件领域,字符串类型,最大长度16个字符(含),有效字符包含大写字母、数字及下划线。
<br/>
-
eventName:订阅规则的HisysEvent事件名称,字符串类型,最大长度32个字符(含),有效字符包含大写字母、数字及下划线。
<br/>
-
ruleType:订阅规则的规则类型,RuleType枚举类型(参考表3)。 |
**表3**
RuleType类型
| 枚举值 | 描述 |
| 枚举值 | 描述 |
| -------- | -------- |
| WHOLE_WORD | 全词匹配类型 |
| PREFIX | 前缀匹配类型 |
| REGULAR | 正则匹配类型 |
| WHOLE_WORD | 全词匹配类型 |
| PREFIX | 前缀匹配类型 |
| REGULAR | 正则匹配类型 |
**表4**
HiSysEvent
SubscribeCallBackBase
订阅对象
**表4**
HiSysEvent
Listener
订阅对象
| 接口名称 | 描述 |
| 接口名称 | 描述 |
| -------- | -------- |
| void
HiSysEventSubscribeCallBack::OnHandle(const
std::string
&
domain,
<br/>
const
std::string
&
eventName,
<br/>
const
int
eventType,
<br/>
const
std::string
&
eventDetail) | 接口功能:订阅事件的回调接口。
<br/>
输入参数:
<br/>
-
domain:事件所属领域。
<br/>
-
eventName:事件的名称。
<br/>
-
eventType:事件类型。
<br/>
-
eventDetail:包含事件相关信息的字符串,以json的形式体现。
<br/>
返回值:
<br/>
无。 |
| void
HiSysEventListener::OnEvent(std::shared_ptr
<
HiSysEventRecord
>
sysEvent) | 接口功能:订阅事件的回调接口。
<br/>
输入参数:
<br/>
-
sysEvent:监听到的实时HiSysEvent事件。
<br/>
返回值:
<br/>
无。 |
| void
HiSysEventListener::OnServiceDied() | 接口功能:服务异常回调。
<br/>
输入参数:
<br/>
无。
<br/>
返回值:
<br/>
无。 |
**表5**
HiSysEventRecord系统事件对象
| 接口名称 | 描述 |
| -------- | -------- |
|std::string
HiSysEventRecord::AsJson()|接口功能:获取该系统事件的内容。
<br/>
输入参数:
<br/>
无。
<br/>
返回值:
<br/>
该系统事件的内容。|
|std::string
HiSysEventRecord::GetDomain()|接口功能:获取该系统事件的域名。
<br/>
输入参数:
<br/>
无。
<br/>
返回值:
<br/>
该系统事件的域名。|
|std::string
HiSysEventRecord::GetEventName()|接口功能:获取该系统事件的名称。
<br/>
输入参数:
<br/>
无。
<br/>
返回值:
<br/>
该系统事件的名称。|
|HiSysEvent::EventType
HiSysEventRecord::GetEventType()|接口功能:获取该系统事件的类型。
<br/>
输入参数:
<br/>
无。
<br/>
返回值:
<br/>
该系统事件的类型。|
|std::string
HiSysEventRecord::GetLevel()|接口功能:获取该系统事件的级别。
<br/>
输入参数:
<br/>
无。
<br/>
返回值:
<br/>
该系统事件的级别。|
|std::string
HiSysEventRecord::GetTag()|接口功能:获取该系统事件的标签。
<br/>
输入参数:
<br/>
无。
<br/>
返回值:
<br/>
该系统事件的标签。|
|std::string
HiSysEventRecord::GetTimeZone()|接口功能:获取该系统事件的时区。
<br/>
输入参数:
<br/>
无。
<br/>
返回值:
<br/>
时区内容,格式为“+0800”。|
|int
HiSysEventRecord::GetTraceFlag()|接口功能:获取该系统事件的分布式跟踪标志位。
<br/>
输入参数:
<br/>
无。
<br/>
返回值:
<br/>
分布式跟踪标志位。|
|int64_t
HiSysEventRecord::GetPid()|接口功能:获取落盘该系统事件的进程ID。
<br/>
输入参数:
<br/>
无。
<br/>
返回值:
<br/>
进程ID。|
|int64_t
HiSysEventRecord::GetTid()|接口功能:获取落盘该系统事件的线程ID。
<br/>
输入参数:
<br/>
无。
<br/>
返回值:
<br/>
线程ID。|
|int64_t
HiSysEventRecord::GetUid()|接口功能:获取落盘该系统事件的用户ID。
<br/>
输入参数:
<br/>
无。
<br/>
返回值:
<br/>
用户ID。|
|uint64_t
HiSysEventRecord::GetPspanId()|接口功能:获取该系统事件的分布式跟踪父分支ID。
<br/>
输入参数:
<br/>
无。
<br/>
返回值:
<br/>
分布式跟踪父分支ID。|
|uint64_t
HiSysEventRecord::GetSpandId()|接口功能:获取该系统事件的分布式跟踪分支ID。
<br/>
输入参数:
<br/>
无。
<br/>
返回值:
<br/>
分布式跟踪分支ID。|
|uint64_t
HiSysEventRecord::GetTime()|接口功能:获取该系统事件的时间戳。
<br/>
输入参数:
<br/>
无。
<br/>
返回值:
<br/>
时间戳。|
|uint64_t
HiSysEventRecord::GetTraceId()|接口功能:获取该系统事件的分布式跟踪链ID。
<br/>
输入参数:
<br/>
无。
<br/>
返回值:
<br/>
分布式跟踪链ID。|
|void
HiSysEventRecord::GetParamNames(std::vector
<
std::string
>&
params)|接口功能:获取该系统事件的所有键名。
<br/>
输入参数:
<br/>
-
params:键名数组引用。
<br/>
返回值:
<br/>
无。|
|int
HiSysEventRecord::GetParamValue(const std::string
&
param,
int64_t
&
value)|接口功能:将该系统事件键名为param的值解析为int64_t类型的值。
<br/>
输入参数:
<br/>
-
param:键名。
<br/>
-
value:int64_t类型引用。
<br/>
返回值:
<br/>
-
0:解析成功。
<br/>
-
-1:该系统事件初始化失败,无法解析。
<br/>
-
-2:不存在的键名。
<br/>
-
-3:类型不匹配,无法转换成int64_t类型的值。|
|int
HiSysEventRecord::GetParamValue(const std::string
&
param,
uint64_t
&
value)|接口功能:将该系统事件键名为param的值解析为uint64_t类型的值。
<br/>
输入参数:
<br/>
-
param:键名。
<br/>
-
value:uint64_t类型引用。
<br/>
返回值:
<br/>
-
0:解析成功。
<br/>
-
-1:该系统事件初始化失败,无法解析。
<br/>
-
-2:不存在的键名。
<br/>
-
-3:类型不匹配,无法转换成uint64_t类型的值。|
|int
HiSysEventRecord::GetParamValue(const std::string
&
param,
double
&
value)|接口功能:将该系统事件键名为param的值解析为double类型的值。
<br/>
输入参数:
<br/>
-
param:键名。
<br/>
-
value:double类型引用。
<br/>
返回值:
<br/>
-
0:解析成功。
<br/>
-
-1:该系统事件初始化失败,无法解析。
<br/>
-
-2:不存在的键名。
<br/>
-
-3:类型不匹配,无法转换成double类型的值。|
|int
HiSysEventRecord::GetParamValue(const std::string
&
param,
std::string
&
value)|接口功能:将该系统事件键名为param的值解析为string类型的值。
<br/>
输入参数:
<br/>
-
param:键名。
<br/>
-
value:std::string类型引用。
<br/>
返回值:
<br/>
-
0:解析成功。
<br/>
-
-1:该系统事件初始化失败,无法解析。
<br/>
-
-2:不存在的键名。
<br/>
-
-3:类型不匹配,无法转换成std::string类型的值。|
|int
HiSysEventRecord::GetParamValue(const std::string
&
param,
std::vector
<
int64_t
>&
value)|接口功能:将该系统事件键名为param的值解析为int64_t类型的数组。
<br/>
输入参数:
<br/>
-
param:键名。
<br/>
-
value:int64_t类型数组引用。
<br/>
返回值:
<br/>
-
0:解析成功。
<br/>
-
-1:该系统事件初始化失败,无法解析。
<br/>
-
-2:不存在的键名。
<br/>
-
-3:类型不匹配,无法转换成int64_t类型的数组。|
|int
HiSysEventRecord::GetParamValue(const std::string
&
param,
std::vector
<
uint64_t
>&
value)|接口功能:将该系统事件键名为param的值解析为uint64_t类型的数组。
<br/>
输入参数:
<br/>
-
param:键名。
<br/>
-
value:uint64_t类型数组引用。
<br/>
返回值:
<br/>
-
0:解析成功。
<br/>
-
-1:该系统事件初始化失败,无法解析。
<br/>
-
-2:不存在的键名。
<br/>
-
-3:类型不匹配,无法转换成uint64_t类型的数组。|
|int
HiSysEventRecord::GetParamValue(const std::string
&
param,
std::vector
<
double
>&
value)|接口功能:将该系统事件键名为param的值解析为double类型的数组。
<br/>
输入参数:
<br/>
-
param:键名。
<br/>
-
value:ouble类型数组引用。
<br/>
返回值:
<br/>
-
0:解析成功。
<br/>
-
-1:该系统事件初始化失败,无法解析。
<br/>
-
-2:不存在的键名。
<br/>
-
-3:类型不匹配,无法转换成double类型的数组。|
|int
HiSysEventRecord::GetParamValue(const std::string
&
param,
std::vector
<
std::string
>&
value)|接口功能:将该系统事件键名为param的值解析为string类型的数组。
<br/>
输入参数:
<br/>
-
param:键名。
<br/>
-
value:std::string类型数组引用。
<br/>
返回值:
<br/>
-
0:解析成功。
<br/>
-
-1:该系统事件初始化失败,无法解析。
<br/>
-
-2:不存在的键名。
<br/>
-
-3:类型不匹配,无法转换成std::string类型的数组。|
## 开发实例
...
...
@@ -59,21 +88,21 @@ HiSysEvent提供了跨进程订阅机制,开发者可以通过注册订阅接
1.
源代码开发
自定义订阅回调实现类头文件DemoListener.h:
```
#ifndef DEMO_LISTENER_H
#define DEMO_LISTENER_H
#include "hisysevent_
subscribe_callback
.h"
#include "hisysevent_
listener
.h"
#include <string>
class DemoListener : public OHOS::HiviewDFX::HiSysEvent
SubscribeCallBack
{
class DemoListener : public OHOS::HiviewDFX::HiSysEvent
Listener
{
public:
explicit DemoListener() : HiSysEventSubscribeCallBack() {}
void OnHandle(const std::string& domain, const std::string& eventName, const int eventType,
const std::string& eventDetail);
virtual ~DemoListener() {}
explicit DemoListener() : HiSysEventListener() {}
virtual ~DemoListener() {}
public:
void OnEvent(std::shared_ptr<HiSysEventRecord> sysEvent);
void OnServiceDied();
};
...
...
@@ -82,18 +111,19 @@ HiSysEvent提供了跨进程订阅机制,开发者可以通过注册订阅接
增加DemoListener.cpp文件,在DemoListener类中根据实际需求自定义订阅回调接口的实现逻辑:
```
#include "demo_listener.h"
#include <iostream>
void DemoListener::OnHandle(const std::string& domain, const std::string& eventName,
const int eventType, const std::string& eventDetail)
void DemoListener::OnEvent(std::shared_ptr<HiSysEventRecord> sysEvent)
{
std::cout << eventDetail << std::endl;
if (sysEvent == nullptr) {
return;
}
std::cout << sysEvent.AsJson() << std::endl;
}
void DemoListener::OnServiceDied()
{
std::cout << std::string("service disconnect, exit") << std::endl;
...
...
@@ -103,7 +133,6 @@ HiSysEvent提供了跨进程订阅机制,开发者可以通过注册订阅接
通过HiSysEventManager类提供的AddEventListener接口注册回调对象,完成对HiSysEvent的订阅:
```
auto demoListener = std::make_shared<DemoListener>();
// 事件标签规则订阅,规则类型为默认的全词匹配类型
...
...
@@ -120,9 +149,11 @@ HiSysEvent提供了跨进程订阅机制,开发者可以通过注册订阅接
```
2.
编译配置
在BUILD.gn编译文件中,需要添加依赖hisysevent_native组件的libhisyseventmanager库:
在BUILD.gn编译文件中,需要添加依赖hisysevent_native组件的libhisysevent
及libhisysevent
manager库:
```
external_deps = [ "hisysevent_native:libhisyseventmanager", ]
external_deps = [
"hisysevent_native:libhisysevent",
"hisysevent_native:libhisyseventmanager",
]
```
zh-cn/device-dev/subsystems/subsys-dfx-hisysevent-query.md
浏览文件 @
0b9702c0
...
...
@@ -11,33 +11,36 @@ HiSysEvent提供了查询接口,支持开发者设置条件查询HiSysEvent事
### 接口说明
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
>
> HiSysEventQueryCallback查询回调对象OnQuery方法中的形参类型HiSysEventRecord请参考[HiSysEvent订阅](subsys-dfx-hisysevent-listening.md)中的**表5**HiSysEventRecord系统事件对象说明
**表1**
HiSysEvent查询接口
| 接口名 | 描述 |
| 接口名 | 描述 |
| -------- | -------- |
| int32_t
HiSysEventManager::Query
HiSysEvent(struct
QueryArg
&
queryArg,
<br/>
std::vector
<
QueryRule
>&
queryRules,
<br/>
std::shared_ptr
<
HiSysEventQueryCallBack
>
queryCallBack) | 接口功能:支持设置查询时间段,事件领域,事件名称等,查询满足条件的HiSysEvent事件。
<br/>
输入参数:
<br/>
-
queryArg:查询参数。
<br/>
-
queryRules:事件过滤规则。
<br/>
-
queryCallB
ack:查询接口回调对象。
<br/>
返回值:
<br/>
-
0:查询成功。
<br/>
-
负值:查询失败。 |
| int32_t
HiSysEventManager::Query
(struct
QueryArg
&
arg,
<br/>
std::vector
<
QueryRule
>&
rules,
<br/>
std::shared_ptr
<
HiSysEventQueryCallback
>
callback) | 接口功能:支持设置时间段,事件领域,事件名称等,查询满足条件的HiSysEvent事件。
<br/>
输入参数:
<br/>
-
arg:查询参数。
<br/>
-
rules:事件过滤规则。
<br/>
-
callb
ack:查询接口回调对象。
<br/>
返回值:
<br/>
-
0:查询成功。
<br/>
-
负值:查询失败。 |
**表2**
QueryArg查询参数对象
| 属性名称 | 描述 |
| 属性名称 | 描述 |
| -------- | -------- |
| beginTime | long
long
int类型,用于指定查询事件的开始时间。 |
| endTime | long
long
int类型,用于指定查询事件的结束时间。 |
| maxEvents | int类型,用于指定查询返回事件查询的最多条数。 |
| beginTime | long
long
int类型,用于指定查询事件的开始时间。 |
| endTime | long
long
int类型,用于指定查询事件的结束时间。 |
| maxEvents | int类型,用于指定查询返回事件查询的最多条数。 |
**表3**
QueryRule查询规则对象
| 接口名称 | 描述 |
| 接口名称 | 描述 |
| -------- | -------- |
| QueryRule(const
std::string
&
domain,
<br/>
const
std::vector
<
std::string
>&
eventList) | 接口功能:查询规则构造函数,创建查询规则对象。
<br/>
输入参数:
<br/>
-
domain:string类型,用来标识查询规则对象的事件所属领域,如果传入的是空字符串,则默认事件领域字段匹配成功。
<br/>
-
eventList:std::vector
<
std::string
>
类型,事件名称的列表,如果传入的是空字符串,则默认事件名称字段匹配成功。 |
| QueryRule(const
std::string
&
domain,
<br/>
const
std::vector
<
std::string
>&
eventList) | 接口功能:查询规则构造函数,创建查询规则对象。
<br/>
输入参数:
<br/>
-
domain:string类型,用来标识查询规则对象的事件所属领域,如果传入的是空字符串,则默认事件领域字段匹配成功。
<br/>
-
eventList:std::vector
<
std::string
>
类型,事件名称的列表,如果传入的是空字符串,则默认事件名称字段匹配成功。 |
**表4**
HiSysEventQueryCall
B
ack查询回调对象
**表4**
HiSysEventQueryCall
b
ack查询回调对象
| 接口名称 | 描述 |
| 接口名称 | 描述 |
| -------- | -------- |
| void
HiSysEventQueryCallBack::OnQuery(const
::std::vector
<
std::string
>&
sysEvent,
<br/>
const
::std::vector
<
int64_t
>&
seq) | 接口功能:订阅事件查询中的回调。
<br/>
输入参数:
<br/>
-
sysEvent:返回事件集合。
<br/>
-
seq:事件序列集合。
<br/>
返回值:
<br/>
无。 |
| void
HiSysEventQueryCallBack::OnComplete(int32_t
reason,
int32_t
total) | 接口功能:订阅事件查询完成的回调。
<br/>
输入参数:
<br/>
-
reason:查询结束返回原因,目前默认是0。
<br/>
-
total:本次查询总共返回的事件总数量。
<br/>
返回值:
<br/>
无。 |
| void
HiSysEventQueryCallBack::OnQuery(std::shared_ptr
<
std::vector
<
HiSysEventRecord
>>
sysEvents) | 接口功能:事件查询的回调。
<br/>
输入参数:
<br/>
-
sysEvents:返回的事件集合。
<br/>
返回值:
<br/>
无。 |
| void
HiSysEventQueryCallBack::OnComplete(int32_t
reason,
int32_t
total) | 接口功能:事件查询完成的回调。
<br/>
输入参数:
<br/>
-
reason:查询结束返回原因,目前默认是0。
<br/>
-
total:本次查询总共返回的事件总数量。
<br/>
返回值:
<br/>
无。 |
### 开发实例
...
...
@@ -45,42 +48,44 @@ C++接口实例。
1.
源代码开发:
引入对应的头文件:
```
#include "hisysevent_manager.h"
```
实现对应的查询回调接口:
```
void HiSysEventQueryCallBack::OnQuery(
const ::std::vector<std::string>& sysEvent, const ::std::vector<int64_t>& seq
)
void HiSysEventQueryCallBack::OnQuery(
std::shared_ptr<std::vector<HiSysEventRecord>> sysEvents
)
void HiSysEventQueryCallBack::OnComplete(int32_t reason, int32_t total)
```
在相应的业务逻辑里面调用查询接口:
```
HiSysEventManager::Query
HiSysEvent
(struct QueryArg& queryArg,
std::vector<QueryRule>& queryRules, std::shared_ptr<HiSysEventQueryCallBack> queryCallBack)
HiSysEventManager::Query(struct QueryArg& queryArg,
std::vector<QueryRule>& queryRules, std::shared_ptr<HiSysEventQueryCallBack> queryCallBack)
```
以下是查询所有系统事件的应用例子:
```
#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)
void HiSysEventToolQuery::OnQuery(std::shared_ptr<std::vector<HiSysEventRecord>> sysEvents)
{
for_each(sysEvent.cbegin(), sysEvent.cend(), [](const std::string &tmp) {
std::cout << tmp << std::endl;
if (sysEvents == nullptr) {
return;
}
for_each((*sysEvent).cbegin(), (*sysEvent).cend(), [](const HiSysEventRecord& event) {
std::cout << event.AsJson() << std::endl;
});
}
void HiSysEventToolQuery::OnComplete(int32_t reason, int32_t total)
{
return;
...
...
@@ -91,14 +96,17 @@ C++接口实例。
// 调用查询接口获取HiSysEvent事件
auto queryCallBack = std::make_shared<HiSysEventToolQuery>();
struct QueryArg args(clientCmdArg.beginTime, clientCmdArg.endTime, clientCmdArg.maxEvents);
std::vector<QueryRule>
mR
ules;
HiSysEventManager::QueryHiSysEvent(args,
mR
ules, queryCallBack);
std::vector<QueryRule>
r
ules;
HiSysEventManager::QueryHiSysEvent(args,
r
ules, queryCallBack);
```
2.
编译设置:
在BUILD.gn编译文件中,需要添加依赖hisysevent_native部件的libhisyseventmanager库。
在BUILD.gn编译文件中,需要添加依赖hisysevent_native部件的libhisysevent
及libhisysevent
manager库。
```
external_deps = [ "hisysevent_native:libhisyseventmanager", ]
external_deps = [
"hisysevent_native:libhisysevent",
"hisysevent_native:libhisyseventmanager",
]
```
zh-cn/device-dev/subsystems/subsys-dfx-hisysevent-tool.md
浏览文件 @
0b9702c0
...
...
@@ -96,7 +96,7 @@
| 选项名称 | 功能说明 |
| -------- | -------- |
| -l | 以缺省设置查询历史HiSysEvent事件,此次查询会返回
最近不多于1
000条的HiSysEvent事件。 |
| -l | 以缺省设置查询历史HiSysEvent事件,此次查询会返回
不多于10
000条的HiSysEvent事件。 |
-
通过设置开始/结束时间,过滤查询历史HiSysEvent事件的结果的命令:
...
...
@@ -130,7 +130,7 @@
| 选项名称 | 功能说明 |
| -------- | -------- |
| -m | 设置查询历史HiSysEvent事件的数量,
有效值范围[0,1000],此次查询返回的HiSysEvent事件数目不会多于此值
。 |
| -m | 设置查询历史HiSysEvent事件的数量,
此次查询会返回最多不超过指定数量的HiSysEvent事件
。 |
命令实例:
...
...
@@ -151,7 +151,7 @@
| 选项名称 | 功能说明 |
| -------- | -------- |
| -v | 配合订阅命令-r及查询命令-l使用,当打开事件合法性校验模式,系统事件包含的非法内容会
标记为
红色高亮显示。 |
| -v | 配合订阅命令-r及查询命令-l使用,当打开事件合法性校验模式,系统事件包含的非法内容会红色高亮显示。 |
命令实例:
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录