• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021-2023 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 
16 #include "mission_info.h"
17 
18 namespace OHOS {
19 namespace AAFwk {
ReadFromParcel(Parcel & parcel)20 bool MissionInfo::ReadFromParcel(Parcel &parcel)
21 {
22     id = parcel.ReadInt32();
23     runningState = parcel.ReadInt32();
24     lockedState = parcel.ReadBool();
25     continuable = parcel.ReadBool();
26     time = Str16ToStr8(parcel.ReadString16());
27     label = Str16ToStr8(parcel.ReadString16());
28     iconPath = Str16ToStr8(parcel.ReadString16());
29     std::unique_ptr<Want> parcelWant(parcel.ReadParcelable<Want>());
30     if (parcelWant == nullptr) {
31         return false;
32     }
33     want = *parcelWant;
34     want.CloseAllFd();
35     abilityState = parcel.ReadInt32();
36     unclearable = parcel.ReadBool();
37     continueState = static_cast<AAFwk::ContinueState>(parcel.ReadInt32());
38     return true;
39 }
40 
Unmarshalling(Parcel & parcel)41 MissionInfo *MissionInfo::Unmarshalling(Parcel &parcel)
42 {
43     MissionInfo *info = new MissionInfo();
44     if (!info->ReadFromParcel(parcel)) {
45         delete info;
46         info = nullptr;
47     }
48     return info;
49 }
50 
Marshalling(Parcel & parcel) const51 bool MissionInfo::Marshalling(Parcel &parcel) const
52 {
53     if (!parcel.WriteInt32(id)) {
54         return false;
55     }
56 
57     if (!parcel.WriteInt32(runningState)) {
58         return false;
59     }
60 
61     if (!parcel.WriteBool(lockedState)) {
62         return false;
63     }
64 
65     if (!parcel.WriteBool(continuable)) {
66         return false;
67     }
68 
69     if (!parcel.WriteString16(Str8ToStr16(time))) {
70         return false;
71     }
72 
73     if (!parcel.WriteString16(Str8ToStr16(label))) {
74         return false;
75     }
76 
77     if (!parcel.WriteString16(Str8ToStr16(iconPath))) {
78         return false;
79     }
80 
81     if (!parcel.WriteParcelable(&want)) {
82         return false;
83     }
84 
85     if (!parcel.WriteInt32(abilityState)) {
86         return false;
87     }
88 
89     if (!parcel.WriteBool(unclearable)) {
90         return false;
91     }
92 
93     if (!parcel.WriteInt32(static_cast<int32_t>(continueState))) {
94         return false;
95     }
96     return true;
97 }
98 
ReadFromParcel(Parcel & parcel)99 bool MissionValidResult::ReadFromParcel(Parcel &parcel)
100 {
101     missionId = parcel.ReadInt32();
102     isValid = parcel.ReadBool();
103     return true;
104 }
105 
Marshalling(Parcel & parcel) const106 bool MissionValidResult::Marshalling(Parcel &parcel) const
107 {
108     if (!parcel.WriteInt32(missionId)) {
109         return false;
110     }
111 
112     if (!parcel.WriteBool(isValid)) {
113         return false;
114     }
115 
116     return true;
117 }
118 
Unmarshalling(Parcel & parcel)119 MissionValidResult *MissionValidResult::Unmarshalling(Parcel &parcel)
120 {
121     std::unique_ptr<MissionValidResult> info = std::make_unique<MissionValidResult>();
122     if (!info->ReadFromParcel(parcel)) {
123         return nullptr;
124     }
125     return info.release();
126 }
127 }  // namespace AAFwk
128 }  // namespace OHOS
129