11401458bSopenharmony_ci/* 21401458bSopenharmony_ci * Copyright (c) 2021 Huawei Device Co., Ltd. 31401458bSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 41401458bSopenharmony_ci * you may not use this file except in compliance with the License. 51401458bSopenharmony_ci * You may obtain a copy of the License at 61401458bSopenharmony_ci * 71401458bSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 81401458bSopenharmony_ci * 91401458bSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 101401458bSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 111401458bSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 121401458bSopenharmony_ci * See the License for the specific language governing permissions and 131401458bSopenharmony_ci * limitations under the License. 141401458bSopenharmony_ci */ 151401458bSopenharmony_ci 161401458bSopenharmony_ci#ifndef OHOS_HIVIEWDFX_SYS_EVENT_RULE_H 171401458bSopenharmony_ci#define OHOS_HIVIEWDFX_SYS_EVENT_RULE_H 181401458bSopenharmony_ci 191401458bSopenharmony_ci#include <cstdint> 201401458bSopenharmony_ci#include <iosfwd> 211401458bSopenharmony_ci#include <string> 221401458bSopenharmony_ci 231401458bSopenharmony_ci#include "parcel.h" 241401458bSopenharmony_ci#include "rule_type.h" 251401458bSopenharmony_ci 261401458bSopenharmony_cinamespace OHOS { 271401458bSopenharmony_cinamespace HiviewDFX { 281401458bSopenharmony_ciclass SysEventRule : public Parcelable { 291401458bSopenharmony_cipublic: 301401458bSopenharmony_ci SysEventRule() {}; 311401458bSopenharmony_ci SysEventRule(const std::string& domain, const std::string& eventName, 321401458bSopenharmony_ci const std::string& tag, uint32_t ruleType = RuleType::WHOLE_WORD, uint32_t eventType = 0) 331401458bSopenharmony_ci : domain(domain), eventName(eventName), tag(tag), ruleType(ruleType), eventType(eventType) {} 341401458bSopenharmony_ci SysEventRule(const std::string& domain, const std::string& eventName, 351401458bSopenharmony_ci uint32_t ruleType = RuleType::WHOLE_WORD, uint32_t eventType = 0) 361401458bSopenharmony_ci : SysEventRule(domain, eventName, "", ruleType, eventType) {} 371401458bSopenharmony_ci SysEventRule(const std::string& tag, uint32_t ruleType = RuleType::WHOLE_WORD, uint32_t eventType = 0) 381401458bSopenharmony_ci : SysEventRule("", "", tag, ruleType, eventType) {} 391401458bSopenharmony_ci ~SysEventRule() = default; 401401458bSopenharmony_ci 411401458bSopenharmony_ci bool Marshalling(Parcel& parcel) const override; 421401458bSopenharmony_ci static SysEventRule* Unmarshalling(Parcel& parcel); 431401458bSopenharmony_ci 441401458bSopenharmony_ci std::string domain; 451401458bSopenharmony_ci std::string eventName; 461401458bSopenharmony_ci std::string tag; 471401458bSopenharmony_ci uint32_t ruleType = RuleType::WHOLE_WORD; 481401458bSopenharmony_ci uint32_t eventType = 0; 491401458bSopenharmony_ci}; 501401458bSopenharmony_ci} // namespace HiviewDFX 511401458bSopenharmony_ci} // namespace OHOS 521401458bSopenharmony_ci 531401458bSopenharmony_ci#endif // OHOS_HIVIEWDFX_SYS_EVENT_RULE_H 54