提交 0b9702c0 编写于 作者: X xuyong

HiSysEvent接口易用性整改相关资料更新

Signed-off-by: Nxuyong <xuyong59@huawei.com>
上级 ed099635
......@@ -89,7 +89,7 @@ write(info: SysEventInfo): Promise&lt;void&gt;
| 参数名 | 类型 | 必填 | 说明 |
| --------- | ----------------------- | ---- | --------------- |
| eventType | [EventType](#eventtype) | 是 | 应用事件类型。 |
| info | [SysEventInfo](#syseventinfo) | 是 | 系统事件。 |
**返回值:**
......
......@@ -21,32 +21,61 @@ HiSysEvent提供了跨进程订阅机制,开发者可以通过注册订阅接
**表1** HiSysEvent订阅接口
| 接口名称 | 描述 |
| 接口名称 | 描述 |
| -------- | -------- |
| int32_t&nbsp;HiSysEventManager::AddEventListener(std::shared_ptr&lt;HiSysEventSubscribeCallBack&gt;&nbsp;listener,<br/>&nbsp;std::vector&lt;ListenerRule&gt;&amp;&nbsp;rules) | 接口功能:注册订阅HiSysEvent系统事件侦听对象,可设置规则订阅某些事件。<br/>输入参数:<br/>-&nbsp;listener:订阅回调对象。<br/>-&nbsp;rules:事件订阅规则。<br/>返回值:<br/>-&nbsp;0:订阅成功。<br/>-&nbsp;负值:订阅失败。 |
| int32_t&nbsp;HiSysEventManager::RemoveListener(std::shared_ptr&lt;HiSysEventSubscribeCallBack&gt;&nbsp;listener) | 接口功能:移除订阅hisysevent系统事件侦听对象。<br/>输入参数:<br/>-&nbsp;listener:订阅回调对象。<br/>返回值:<br/>-&nbsp;0:取消订阅成功。<br/>-&nbsp;负值:取消订阅失败。 |
| int32_t&nbsp;HiSysEventManager::AddListener(std::shared_ptr&lt;HiSysEventListener&gt;&nbsp;listener,<br/>&nbsp;std::vector&lt;ListenerRule&gt;&amp;&nbsp;rules) | 接口功能:注册订阅HiSysEvent系统事件侦听对象,可设置规则订阅某些事件。<br/>输入参数:<br/>-&nbsp;listener:订阅回调对象。<br/>-&nbsp;rules:事件订阅规则。<br/>返回值:<br/>-&nbsp;0:订阅成功。<br/>-&nbsp;负值:订阅失败。 |
| int32_t&nbsp;HiSysEventManager::RemoveListener(std::shared_ptr&lt;HiSysEventListener&gt;&nbsp;listener) | 接口功能:移除订阅hisysevent系统事件侦听对象。<br/>输入参数:<br/>-&nbsp;listener:订阅回调对象。<br/>返回值:<br/>-&nbsp;0:取消订阅成功。<br/>-&nbsp;负值:取消订阅失败。 |
**表2** ListenerRule订阅规则对象
| 接口名称 | 描述 |
| 接口名称 | 描述 |
| -------- | -------- |
| ListenerRule(const&nbsp;std::string&amp;&nbsp;tag,<br/>&nbsp;RuleType&nbsp;ruleType&nbsp;=&nbsp;RuleType::WHOLE_WORD) | 接口功能:订阅规则构造函数,创建事件标签订阅规则对象。<br/>输入参数:<br/>-&nbsp;tag:订阅规则的HisysEvent事件标签,字符串类型,最大长度16个字符(含),有效字符包含大小写字母及数字。<br/>-&nbsp;ruleType:订阅规则的规则类型,RuleType枚举类型(参考表3)。 |
| ListenerRule(const&nbsp;std::string&amp;&nbsp;domain,<br/>&nbsp;const&nbsp;std::string&amp;&nbsp;eventName,<br/>&nbsp;RuleType&nbsp;ruleType&nbsp;=&nbsp;RuleType::WHOLE_WORD) | 接口功能:订阅规则构造函数,创建事件领域与事件名称订阅规则对象。<br/>输入参数:<br/>-&nbsp;domain:订阅规则的HisysEvent事件领域,字符串类型,最大长度16个字符(含),有效字符包含大写字母、数字及下划线。<br/>-&nbsp;eventName:订阅规则的HisysEvent事件名称,字符串类型,最大长度32个字符(含),有效字符包含大写字母、数字及下划线。<br/>-&nbsp;ruleType:订阅规则的规则类型,RuleType枚举类型(参考表3)。 |
| ListenerRule(const&nbsp;std::string&amp;&nbsp;domain,<br/>&nbsp;const&nbsp;std::string&amp;&nbsp;eventName,<br/>&nbsp;const&nbsp;std::string&amp;&nbsp;tag,<br/>&nbsp;RuleType&nbsp;ruleType&nbsp;=&nbsp;RuleType::WHOLE_WORD) | 接口功能:订阅规则构造函数,创建事件领域、事件名称,事件标签订阅规则对象。<br/>输入参数:<br/>-&nbsp;tag:订阅规则的HisysEvent事件标签,字符串类型,最大长度16个字符(含),有效字符包含大小写字母及数字。<br/>-&nbsp;domain:订阅规则的HisysEvent事件领域,字符串类型,最大长度16个字符(含),有效字符包含大写字母、数字及下划线。<br/>-&nbsp;eventName:订阅规则的HisysEvent事件名称,字符串类型,最大长度32个字符(含),有效字符包含大写字母、数字及下划线。<br/>-&nbsp;ruleType:订阅规则的规则类型,RuleType枚举类型(参考表3)。 |
| ListenerRule(const&nbsp;std::string&amp;&nbsp;tag,<br/>&nbsp;RuleType&nbsp;ruleType&nbsp;=&nbsp;RuleType::WHOLE_WORD) | 接口功能:订阅规则构造函数,创建事件标签订阅规则对象。<br/>输入参数:<br/>-&nbsp;tag:订阅规则的HisysEvent事件标签,字符串类型,最大长度16个字符(含),有效字符包含大小写字母及数字。<br/>-&nbsp;ruleType:订阅规则的规则类型,RuleType枚举类型(参考表3)。 |
| ListenerRule(const&nbsp;std::string&amp;&nbsp;domain,<br/>&nbsp;const&nbsp;std::string&amp;&nbsp;eventName,<br/>&nbsp;RuleType&nbsp;ruleType&nbsp;=&nbsp;RuleType::WHOLE_WORD) | 接口功能:订阅规则构造函数,创建事件领域与事件名称订阅规则对象。<br/>输入参数:<br/>-&nbsp;domain:订阅规则的HisysEvent事件领域,字符串类型,最大长度16个字符(含),有效字符包含大写字母、数字及下划线。<br/>-&nbsp;eventName:订阅规则的HisysEvent事件名称,字符串类型,最大长度32个字符(含),有效字符包含大写字母、数字及下划线。<br/>-&nbsp;ruleType:订阅规则的规则类型,RuleType枚举类型(参考表3)。 |
| ListenerRule(const&nbsp;std::string&amp;&nbsp;domain,<br/>&nbsp;const&nbsp;std::string&amp;&nbsp;eventName,<br/>&nbsp;const&nbsp;std::string&amp;&nbsp;tag,<br/>&nbsp;RuleType&nbsp;ruleType&nbsp;=&nbsp;RuleType::WHOLE_WORD) | 接口功能:订阅规则构造函数,创建事件领域、事件名称,事件标签订阅规则对象。<br/>输入参数:<br/>-&nbsp;tag:订阅规则的HisysEvent事件标签,字符串类型,最大长度16个字符(含),有效字符包含大小写字母及数字。<br/>-&nbsp;domain:订阅规则的HisysEvent事件领域,字符串类型,最大长度16个字符(含),有效字符包含大写字母、数字及下划线。<br/>-&nbsp;eventName:订阅规则的HisysEvent事件名称,字符串类型,最大长度32个字符(含),有效字符包含大写字母、数字及下划线。<br/>-&nbsp;ruleType:订阅规则的规则类型,RuleType枚举类型(参考表3)。 |
**表3** RuleType类型
| 枚举值 | 描述 |
| 枚举值 | 描述 |
| -------- | -------- |
| WHOLE_WORD | 全词匹配类型 |
| PREFIX | 前缀匹配类型 |
| REGULAR | 正则匹配类型 |
| WHOLE_WORD | 全词匹配类型 |
| PREFIX | 前缀匹配类型 |
| REGULAR | 正则匹配类型 |
**表4** HiSysEventSubscribeCallBackBase订阅对象
**表4** HiSysEventListener订阅对象
| 接口名称 | 描述 |
| 接口名称 | 描述 |
| -------- | -------- |
| void&nbsp;HiSysEventSubscribeCallBack::OnHandle(const&nbsp;std::string&amp;&nbsp;domain,<br/>&nbsp;const&nbsp;std::string&amp;&nbsp;eventName,<br/>&nbsp;const&nbsp;int&nbsp;eventType,<br/>&nbsp;const&nbsp;std::string&amp;&nbsp;eventDetail) | 接口功能:订阅事件的回调接口。<br/>输入参数:<br/>-&nbsp;domain:事件所属领域。<br/>-&nbsp;eventName:事件的名称。<br/>-&nbsp;eventType:事件类型。<br/>-&nbsp;eventDetail:包含事件相关信息的字符串,以json的形式体现。<br/>返回值:<br/>无。 |
| void&nbsp;HiSysEventListener::OnEvent(std::shared_ptr&lt;HiSysEventRecord&gt;&nbsp;sysEvent) | 接口功能:订阅事件的回调接口。<br/>输入参数:<br/>-&nbsp;sysEvent:监听到的实时HiSysEvent事件。<br/>返回值:<br/>无。 |
| void&nbsp;HiSysEventListener::OnServiceDied() | 接口功能:服务异常回调。<br/>输入参数:<br/>无。<br/>返回值:<br/>无。 |
**表5** HiSysEventRecord系统事件对象
| 接口名称 | 描述 |
| -------- | -------- |
|std::string&nbsp;HiSysEventRecord::AsJson()|接口功能:获取该系统事件的内容。<br/>输入参数:<br/>无。<br/>返回值:<br/>该系统事件的内容。|
|std::string&nbsp;HiSysEventRecord::GetDomain()|接口功能:获取该系统事件的域名。<br/>输入参数:<br/>无。<br/>返回值:<br/>该系统事件的域名。|
|std::string&nbsp;HiSysEventRecord::GetEventName()|接口功能:获取该系统事件的名称。<br/>输入参数:<br/>无。<br/>返回值:<br/>该系统事件的名称。|
|HiSysEvent::EventType&nbsp;HiSysEventRecord::GetEventType()|接口功能:获取该系统事件的类型。<br/>输入参数:<br/>无。<br/>返回值:<br/>该系统事件的类型。|
|std::string&nbsp;HiSysEventRecord::GetLevel()|接口功能:获取该系统事件的级别。<br/>输入参数:<br/>无。<br/>返回值:<br/>该系统事件的级别。|
|std::string&nbsp;HiSysEventRecord::GetTag()|接口功能:获取该系统事件的标签。<br/>输入参数:<br/>无。<br/>返回值:<br/>该系统事件的标签。|
|std::string&nbsp;HiSysEventRecord::GetTimeZone()|接口功能:获取该系统事件的时区。<br/>输入参数:<br/>无。<br/>返回值:<br/>时区内容,格式为“+0800”。|
|int&nbsp;HiSysEventRecord::GetTraceFlag()|接口功能:获取该系统事件的分布式跟踪标志位。<br/>输入参数:<br/>无。<br/>返回值:<br/>分布式跟踪标志位。|
|int64_t&nbsp;HiSysEventRecord::GetPid()|接口功能:获取落盘该系统事件的进程ID。<br/>输入参数:<br/>无。<br/>返回值:<br/>进程ID。|
|int64_t&nbsp;HiSysEventRecord::GetTid()|接口功能:获取落盘该系统事件的线程ID。<br/>输入参数:<br/>无。<br/>返回值:<br/>线程ID。|
|int64_t&nbsp;HiSysEventRecord::GetUid()|接口功能:获取落盘该系统事件的用户ID。<br/>输入参数:<br/>无。<br/>返回值:<br/>用户ID。|
|uint64_t&nbsp;HiSysEventRecord::GetPspanId()|接口功能:获取该系统事件的分布式跟踪父分支ID。<br/>输入参数:<br/>无。<br/>返回值:<br/>分布式跟踪父分支ID。|
|uint64_t&nbsp;HiSysEventRecord::GetSpandId()|接口功能:获取该系统事件的分布式跟踪分支ID。<br/>输入参数:<br/>无。<br/>返回值:<br/>分布式跟踪分支ID。|
|uint64_t&nbsp;HiSysEventRecord::GetTime()|接口功能:获取该系统事件的时间戳。<br/>输入参数:<br/>无。<br/>返回值:<br/>时间戳。|
|uint64_t&nbsp;HiSysEventRecord::GetTraceId()|接口功能:获取该系统事件的分布式跟踪链ID。<br/>输入参数:<br/>无。<br/>返回值:<br/>分布式跟踪链ID。|
|void&nbsp;HiSysEventRecord::GetParamNames(std::vector&lt;std::string&gt;&amp;&nbsp;params)|接口功能:获取该系统事件的所有键名。<br/>输入参数:<br/>-&nbsp;params:键名数组引用。<br/>返回值:<br/>无。|
|int&nbsp;HiSysEventRecord::GetParamValue(const std::string&amp;&nbsp;param,&nbsp;int64_t&amp;&nbsp;value)|接口功能:将该系统事件键名为param的值解析为int64_t类型的值。<br/>输入参数:<br/>-&nbsp;param:键名。<br/>-&nbsp;value:int64_t类型引用。<br/>返回值:<br/>-&nbsp;0:解析成功。<br/>-&nbsp;-1:该系统事件初始化失败,无法解析。<br/>-&nbsp;-2:不存在的键名。<br/>-&nbsp;-3:类型不匹配,无法转换成int64_t类型的值。|
|int&nbsp;HiSysEventRecord::GetParamValue(const std::string&amp;&nbsp;param,&nbsp;uint64_t&amp;&nbsp;value)|接口功能:将该系统事件键名为param的值解析为uint64_t类型的值。<br/>输入参数:<br/>-&nbsp;param:键名。<br/>-&nbsp;value:uint64_t类型引用。<br/>返回值:<br/>-&nbsp;0:解析成功。<br/>-&nbsp;-1:该系统事件初始化失败,无法解析。<br/>-&nbsp;-2:不存在的键名。<br/>-&nbsp;-3:类型不匹配,无法转换成uint64_t类型的值。|
|int&nbsp;HiSysEventRecord::GetParamValue(const std::string&amp;&nbsp;param,&nbsp;double&amp;&nbsp;value)|接口功能:将该系统事件键名为param的值解析为double类型的值。<br/>输入参数:<br/>-&nbsp;param:键名。<br/>-&nbsp;value:double类型引用。<br/>返回值:<br/>-&nbsp;0:解析成功。<br/>-&nbsp;-1:该系统事件初始化失败,无法解析。<br/>-&nbsp;-2:不存在的键名。<br/>-&nbsp;-3:类型不匹配,无法转换成double类型的值。|
|int&nbsp;HiSysEventRecord::GetParamValue(const std::string&amp;&nbsp;param,&nbsp;std::string&amp; value)|接口功能:将该系统事件键名为param的值解析为string类型的值。<br/>输入参数:<br/>-&nbsp;param:键名。<br/>-&nbsp;value:std::string类型引用。<br/>返回值:<br/>-&nbsp;0:解析成功。<br/>-&nbsp;-1:该系统事件初始化失败,无法解析。<br/>-&nbsp;-2:不存在的键名。<br/>-&nbsp;-3:类型不匹配,无法转换成std::string类型的值。|
|int&nbsp;HiSysEventRecord::GetParamValue(const std::string&amp;&nbsp;param,&nbsp;std::vector&lt;int64_t&gt;&amp;&nbsp;value)|接口功能:将该系统事件键名为param的值解析为int64_t类型的数组。<br/>输入参数:<br/>-&nbsp;param:键名。<br/>-&nbsp;value:int64_t类型数组引用。<br/>返回值:<br/>-&nbsp;0:解析成功。<br/>-&nbsp;-1:该系统事件初始化失败,无法解析。<br/>-&nbsp;-2:不存在的键名。<br/>-&nbsp;-3:类型不匹配,无法转换成int64_t类型的数组。|
|int&nbsp;HiSysEventRecord::GetParamValue(const std::string&amp;&nbsp;param,&nbsp;std::vector&lt;uint64_t&gt;&amp;&nbsp;value)|接口功能:将该系统事件键名为param的值解析为uint64_t类型的数组。<br/>输入参数:<br/>-&nbsp;param:键名。<br/>-&nbsp;value:uint64_t类型数组引用。<br/>返回值:<br/>-&nbsp;0:解析成功。<br/>-&nbsp;-1:该系统事件初始化失败,无法解析。<br/>-&nbsp;-2:不存在的键名。<br/>-&nbsp;-3:类型不匹配,无法转换成uint64_t类型的数组。|
|int&nbsp;HiSysEventRecord::GetParamValue(const std::string&amp;&nbsp;param,&nbsp;std::vector&lt;double&gt;&amp;&nbsp;value)|接口功能:将该系统事件键名为param的值解析为double类型的数组。<br/>输入参数:<br/>-&nbsp;param:键名。<br/>-&nbsp;value:ouble类型数组引用。<br/>返回值:<br/>-&nbsp;0:解析成功。<br/>-&nbsp;-1:该系统事件初始化失败,无法解析。<br/>-&nbsp;-2:不存在的键名。<br/>-&nbsp;-3:类型不匹配,无法转换成double类型的数组。|
|int&nbsp;HiSysEventRecord::GetParamValue(const std::string&amp;&nbsp;param,&nbsp;std::vector&lt;std::string&gt;&amp;&nbsp;value)|接口功能:将该系统事件键名为param的值解析为string类型的数组。<br/>输入参数:<br/>-&nbsp;param:键名。<br/>-&nbsp;value:std::string类型数组引用。<br/>返回值:<br/>-&nbsp;0:解析成功。<br/>-&nbsp;-1:该系统事件初始化失败,无法解析。<br/>-&nbsp;-2:不存在的键名。<br/>-&nbsp;-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::HiSysEventSubscribeCallBack {
class DemoListener : public OHOS::HiviewDFX::HiSysEventListener {
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及libhisyseventmanager库:
```
external_deps = [ "hisysevent_native:libhisyseventmanager", ]
external_deps = [
"hisysevent_native:libhisysevent",
"hisysevent_native:libhisyseventmanager",
]
```
......@@ -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&nbsp;HiSysEventManager::QueryHiSysEvent(struct&nbsp;QueryArg&amp;&nbsp;queryArg,<br/>&nbsp;std::vector&lt;QueryRule&gt;&amp;&nbsp;queryRules,<br/>&nbsp;std::shared_ptr&lt;HiSysEventQueryCallBack&gt;&nbsp;queryCallBack) | 接口功能:支持设置查询时间段,事件领域,事件名称等,查询满足条件的HiSysEvent事件。<br/>输入参数:<br/>-&nbsp;queryArg:查询参数。<br/>-&nbsp;queryRules:事件过滤规则。<br/>-&nbsp;queryCallBack:查询接口回调对象。<br/>返回值:<br/>-&nbsp;0:查询成功。<br/>-&nbsp;负值:查询失败。 |
| int32_t&nbsp;HiSysEventManager::Query(struct&nbsp;QueryArg&amp;&nbsp;arg,<br/>&nbsp;std::vector&lt;QueryRule&gt;&amp;&nbsp;rules,<br/>&nbsp;std::shared_ptr&lt;HiSysEventQueryCallback&gt;&nbsp;callback) | 接口功能:支持设置时间段,事件领域,事件名称等,查询满足条件的HiSysEvent事件。<br/>输入参数:<br/>-&nbsp;arg:查询参数。<br/>-&nbsp;rules:事件过滤规则。<br/>-&nbsp;callback:查询接口回调对象。<br/>返回值:<br/>-&nbsp;0:查询成功。<br/>-&nbsp;负值:查询失败。 |
**表2** QueryArg查询参数对象
| 属性名称 | 描述 |
| 属性名称 | 描述 |
| -------- | -------- |
| beginTime | long&nbsp;long&nbsp;int类型,用于指定查询事件的开始时间。 |
| endTime | long&nbsp;long&nbsp;int类型,用于指定查询事件的结束时间。 |
| maxEvents | int类型,用于指定查询返回事件查询的最多条数。 |
| beginTime | long&nbsp;long&nbsp;int类型,用于指定查询事件的开始时间。 |
| endTime | long&nbsp;long&nbsp;int类型,用于指定查询事件的结束时间。 |
| maxEvents | int类型,用于指定查询返回事件查询的最多条数。 |
**表3** QueryRule查询规则对象
| 接口名称 | 描述 |
| 接口名称 | 描述 |
| -------- | -------- |
| QueryRule(const&nbsp;std::string&amp;&nbsp;domain,<br/>&nbsp;const&nbsp;std::vector&lt;std::string&gt;&amp;&nbsp;eventList) | 接口功能:查询规则构造函数,创建查询规则对象。<br/>输入参数:<br/>-&nbsp;domain:string类型,用来标识查询规则对象的事件所属领域,如果传入的是空字符串,则默认事件领域字段匹配成功。<br/>-&nbsp;eventList:std::vector&lt;std::string&gt;类型,事件名称的列表,如果传入的是空字符串,则默认事件名称字段匹配成功。 |
| QueryRule(const&nbsp;std::string&amp;&nbsp;domain,<br/>&nbsp;const&nbsp;std::vector&lt;std::string&gt;&amp;&nbsp;eventList) | 接口功能:查询规则构造函数,创建查询规则对象。<br/>输入参数:<br/>-&nbsp;domain:string类型,用来标识查询规则对象的事件所属领域,如果传入的是空字符串,则默认事件领域字段匹配成功。<br/>-&nbsp;eventList:std::vector&lt;std::string&gt;类型,事件名称的列表,如果传入的是空字符串,则默认事件名称字段匹配成功。 |
**表4** HiSysEventQueryCallBack查询回调对象
**表4** HiSysEventQueryCallback查询回调对象
| 接口名称 | 描述 |
| 接口名称 | 描述 |
| -------- | -------- |
| void&nbsp;HiSysEventQueryCallBack::OnQuery(const&nbsp;::std::vector&lt;std::string&gt;&amp;&nbsp;sysEvent,<br/>&nbsp;const&nbsp;::std::vector&lt;int64_t&gt;&amp;&nbsp;seq) | 接口功能:订阅事件查询中的回调。<br/>输入参数:<br/>-&nbsp;sysEvent:返回事件集合。<br/>-&nbsp;seq:事件序列集合。<br/>返回值:<br/>无。 |
| void&nbsp;HiSysEventQueryCallBack::OnComplete(int32_t&nbsp;reason,&nbsp;int32_t&nbsp;total) | 接口功能:订阅事件查询完成的回调。<br/>输入参数:<br/>-&nbsp;reason:查询结束返回原因,目前默认是0。<br/>-&nbsp;total:本次查询总共返回的事件总数量。<br/>返回值:<br/>无。 |
| void&nbsp;HiSysEventQueryCallBack::OnQuery(std::shared_ptr&lt;std::vector&lt;HiSysEventRecord&gt;&gt;&nbsp;sysEvents) | 接口功能:事件查询的回调。<br/>输入参数:<br/>-&nbsp;sysEvents:返回的事件集合。<br/>返回值:<br/>无。 |
| void&nbsp;HiSysEventQueryCallBack::OnComplete(int32_t&nbsp;reason,&nbsp;int32_t&nbsp;total) | 接口功能:事件查询完成的回调。<br/>输入参数:<br/>-&nbsp;reason:查询结束返回原因,目前默认是0。<br/>-&nbsp;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::QueryHiSysEvent(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> mRules;
HiSysEventManager::QueryHiSysEvent(args, mRules, queryCallBack);
std::vector<QueryRule> rules;
HiSysEventManager::QueryHiSysEvent(args, rules, queryCallBack);
```
2. 编译设置:
在BUILD.gn编译文件中,需要添加依赖hisysevent_native部件的libhisyseventmanager库。
在BUILD.gn编译文件中,需要添加依赖hisysevent_native部件的libhisysevent及libhisyseventmanager库。
```
external_deps = [ "hisysevent_native:libhisyseventmanager", ]
external_deps = [
"hisysevent_native:libhisysevent",
"hisysevent_native:libhisyseventmanager",
]
```
......@@ -96,7 +96,7 @@
| 选项名称 | 功能说明 |
| -------- | -------- |
| -l | 以缺省设置查询历史HiSysEvent事件,此次查询会返回最近不多于1000条的HiSysEvent事件。 |
| -l | 以缺省设置查询历史HiSysEvent事件,此次查询会返回不多于10000条的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.
先完成此消息的编辑!
想要评论请 注册