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