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