• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2025 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 #ifndef FAULTLOG_EVENT_BASE_H
16 #define FAULTLOG_EVENT_BASE_H
17 
18 #include "faultlog_event_interface.h"
19 
20 namespace OHOS {
21 namespace HiviewDFX {
22 class FaultLogEventBase : public FaultLogEventInterface {
23 public:
24     ~FaultLogEventBase() override = default;
25     bool ProcessFaultLogEvent(std::shared_ptr<Event>& event, const std::shared_ptr<EventLoop>& workLoop,
26         const std::shared_ptr<FaultLogManager>& faultLogManager) override;
27 protected:
ReportToAppEvent(std::shared_ptr<SysEvent> sysEvent,const FaultLogInfo & info)28     virtual bool ReportToAppEvent(std::shared_ptr<SysEvent> sysEvent, const FaultLogInfo& info) const {return false;}
29     virtual std::string GetFaultModule(SysEvent& sysEvent) const = 0;
FillSpecificFaultLogInfo(SysEvent & sysEvent,FaultLogInfo & info)30     virtual void FillSpecificFaultLogInfo(SysEvent& sysEvent, FaultLogInfo& info) const {}
31 private:
32     FaultLogInfo FillFaultLogInfo(SysEvent& sysEvent) const;
33     void FillCommonFaultLogInfo(SysEvent& sysEvent, FaultLogInfo& info) const;
34     void UpdateSysEvent(SysEvent& sysEvent, FaultLogInfo& info);
35     void FillTimestampInfo(const SysEvent& sysEvent, FaultLogInfo& info) const;
36 protected:
37     int32_t faultType_ {0};
38 };
39 } // namespace HiviewDFX
40 } // namespace OHOS
41 #endif
42