1020a203aSopenharmony_ci/* 2020a203aSopenharmony_ci * Copyright (c) 2021 Huawei Device Co., Ltd. 3020a203aSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4020a203aSopenharmony_ci * you may not use this file except in compliance with the License. 5020a203aSopenharmony_ci * You may obtain a copy of the License at 6020a203aSopenharmony_ci * 7020a203aSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8020a203aSopenharmony_ci * 9020a203aSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10020a203aSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11020a203aSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12020a203aSopenharmony_ci * See the License for the specific language governing permissions and 13020a203aSopenharmony_ci * limitations under the License. 14020a203aSopenharmony_ci */ 15020a203aSopenharmony_ci#include "faultlog_info.h" 16020a203aSopenharmony_ci 17020a203aSopenharmony_ci#include <cstdint> 18020a203aSopenharmony_ci#include <string> 19020a203aSopenharmony_ci 20020a203aSopenharmony_ci#include <unistd.h> 21020a203aSopenharmony_ci 22020a203aSopenharmony_ci#include "faultlogger_client.h" 23020a203aSopenharmony_cinamespace OHOS { 24020a203aSopenharmony_cinamespace HiviewDFX { 25020a203aSopenharmony_ciFaultLogInfo::~FaultLogInfo() 26020a203aSopenharmony_ci{ 27020a203aSopenharmony_ci if (fd_ >= 0) { 28020a203aSopenharmony_ci close(fd_); 29020a203aSopenharmony_ci fd_ = -1; 30020a203aSopenharmony_ci } 31020a203aSopenharmony_ci} 32020a203aSopenharmony_ci 33020a203aSopenharmony_ciuint32_t FaultLogInfo::GetId() const 34020a203aSopenharmony_ci{ 35020a203aSopenharmony_ci return uid_; 36020a203aSopenharmony_ci} 37020a203aSopenharmony_ci 38020a203aSopenharmony_ciint32_t FaultLogInfo::GetProcessId() const 39020a203aSopenharmony_ci{ 40020a203aSopenharmony_ci return pid_; 41020a203aSopenharmony_ci} 42020a203aSopenharmony_ci 43020a203aSopenharmony_ciint32_t FaultLogInfo::GetRawFileDescriptor() const 44020a203aSopenharmony_ci{ 45020a203aSopenharmony_ci return fd_; 46020a203aSopenharmony_ci} 47020a203aSopenharmony_ci 48020a203aSopenharmony_ciint32_t FaultLogInfo::GetFaultType() const 49020a203aSopenharmony_ci{ 50020a203aSopenharmony_ci return type_; 51020a203aSopenharmony_ci} 52020a203aSopenharmony_ci 53020a203aSopenharmony_ciint64_t FaultLogInfo::GetTimeStamp() const 54020a203aSopenharmony_ci{ 55020a203aSopenharmony_ci return ts_; 56020a203aSopenharmony_ci} 57020a203aSopenharmony_ci 58020a203aSopenharmony_cistd::string FaultLogInfo::GetModuleName() const 59020a203aSopenharmony_ci{ 60020a203aSopenharmony_ci return module_; 61020a203aSopenharmony_ci} 62020a203aSopenharmony_ci 63020a203aSopenharmony_cistd::string FaultLogInfo::GetFaultReason() const 64020a203aSopenharmony_ci{ 65020a203aSopenharmony_ci return reason_; 66020a203aSopenharmony_ci} 67020a203aSopenharmony_ci 68020a203aSopenharmony_cistd::string FaultLogInfo::GetFaultSummary() const 69020a203aSopenharmony_ci{ 70020a203aSopenharmony_ci return summary_; 71020a203aSopenharmony_ci} 72020a203aSopenharmony_ci 73020a203aSopenharmony_civoid FaultLogInfo::SetId(uint32_t id) 74020a203aSopenharmony_ci{ 75020a203aSopenharmony_ci uid_ = id; 76020a203aSopenharmony_ci} 77020a203aSopenharmony_ci 78020a203aSopenharmony_civoid FaultLogInfo::SetProcessId(int32_t pid) 79020a203aSopenharmony_ci{ 80020a203aSopenharmony_ci pid_ = pid; 81020a203aSopenharmony_ci} 82020a203aSopenharmony_ci 83020a203aSopenharmony_civoid FaultLogInfo::SetFaultType(int32_t faultType) 84020a203aSopenharmony_ci{ 85020a203aSopenharmony_ci type_ = faultType; 86020a203aSopenharmony_ci} 87020a203aSopenharmony_ci 88020a203aSopenharmony_civoid FaultLogInfo::SetRawFileDescriptor(int32_t fd) 89020a203aSopenharmony_ci{ 90020a203aSopenharmony_ci fd_ = fd; 91020a203aSopenharmony_ci} 92020a203aSopenharmony_ci 93020a203aSopenharmony_civoid FaultLogInfo::SetTimeStamp(int64_t ts) 94020a203aSopenharmony_ci{ 95020a203aSopenharmony_ci ts_ = ts; 96020a203aSopenharmony_ci} 97020a203aSopenharmony_ci 98020a203aSopenharmony_civoid FaultLogInfo::SetFaultReason(const std::string &reason) 99020a203aSopenharmony_ci{ 100020a203aSopenharmony_ci reason_ = reason; 101020a203aSopenharmony_ci} 102020a203aSopenharmony_ci 103020a203aSopenharmony_civoid FaultLogInfo::SetModuleName(const std::string &module) 104020a203aSopenharmony_ci{ 105020a203aSopenharmony_ci module_ = module; 106020a203aSopenharmony_ci} 107020a203aSopenharmony_ci 108020a203aSopenharmony_civoid FaultLogInfo::SetFaultSummary(const std::string &summary) 109020a203aSopenharmony_ci{ 110020a203aSopenharmony_ci summary_ = summary; 111020a203aSopenharmony_ci} 112020a203aSopenharmony_ci 113020a203aSopenharmony_cistd::string FaultLogInfo::GetStringFaultType() const 114020a203aSopenharmony_ci{ 115020a203aSopenharmony_ci switch (type_) { 116020a203aSopenharmony_ci case CPP_CRASH: 117020a203aSopenharmony_ci return "CppCrash"; 118020a203aSopenharmony_ci case JS_CRASH: 119020a203aSopenharmony_ci return "JsCrash"; 120020a203aSopenharmony_ci case APP_FREEZE: 121020a203aSopenharmony_ci return "AppFreeze"; 122020a203aSopenharmony_ci case SYS_FREEZE: 123020a203aSopenharmony_ci return "SysFreeze"; 124020a203aSopenharmony_ci case SYS_WARNING: 125020a203aSopenharmony_ci return "SysWarning"; 126020a203aSopenharmony_ci default: 127020a203aSopenharmony_ci return "UnknownFaultType"; 128020a203aSopenharmony_ci } 129020a203aSopenharmony_ci} 130020a203aSopenharmony_ci} // namespace HiviewDFX 131020a203aSopenharmony_ci} // namespace OHOS 132