• 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     abilityState = parcel.ReadInt32();
35     unclearable = parcel.ReadBool();
36     continueState = static_cast<AAFwk::ContinueState>(parcel.ReadInt32());
37     return true;
38 }
39 
Unmarshalling(Parcel & parcel)40 MissionInfo *MissionInfo::Unmarshalling(Parcel &parcel)
41 {
42     MissionInfo *info = new MissionInfo();
43     if (!info->ReadFromParcel(parcel)) {
44         delete info;
45         info = nullptr;
46     }
47     return info;
48 }
49 
Marshalling(Parcel & parcel) const50 bool MissionInfo::Marshalling(Parcel &parcel) const
51 {
52     if (!parcel.WriteInt32(id)) {
53         return false;
54     }
55 
56     if (!parcel.WriteInt32(runningState)) {
57         return false;
58     }
59 
60     if (!parcel.WriteBool(lockedState)) {
61         return false;
62     }
63 
64     if (!parcel.WriteBool(continuable)) {
65         return false;
66     }
67 
68     if (!parcel.WriteString16(Str8ToStr16(time))) {
69         return false;
70     }
71 
72     if (!parcel.WriteString16(Str8ToStr16(label))) {
73         return false;
74     }
75 
76     if (!parcel.WriteString16(Str8ToStr16(iconPath))) {
77         return false;
78     }
79 
80     if (!parcel.WriteParcelable(&want)) {
81         return false;
82     }
83 
84     if (!parcel.WriteInt32(abilityState)) {
85         return false;
86     }
87 
88     if (!parcel.WriteBool(unclearable)) {
89         return false;
90     }
91 
92     if (!parcel.WriteInt32(static_cast<int32_t>(continueState))) {
93         return false;
94     }
95     return true;
96 }
97 
ReadFromParcel(Parcel & parcel)98 bool MissionValidResult::ReadFromParcel(Parcel &parcel)
99 {
100     missionId = parcel.ReadInt32();
101     isValid = parcel.ReadBool();
102     return true;
103 }
104 
Marshalling(Parcel & parcel) const105 bool MissionValidResult::Marshalling(Parcel &parcel) const
106 {
107     if (!parcel.WriteInt32(missionId)) {
108         return false;
109     }
110 
111     if (!parcel.WriteBool(isValid)) {
112         return false;
113     }
114 
115     return true;
116 }
117 
Unmarshalling(Parcel & parcel)118 MissionValidResult *MissionValidResult::Unmarshalling(Parcel &parcel)
119 {
120     std::unique_ptr<MissionValidResult> info = std::make_unique<MissionValidResult>();
121     if (!info->ReadFromParcel(parcel)) {
122         return nullptr;
123     }
124     return info.release();
125 }
126 
ReadFromParcel(Parcel & parcel)127 bool InnerMissionInfoDto::ReadFromParcel(Parcel &parcel)
128 {
129     std::unique_ptr<MissionInfo> missionInfoPtr(parcel.ReadParcelable<MissionInfo>());
130     if (!missionInfoPtr) {
131         return false;
132     }
133     missionInfo = *missionInfoPtr;
134     missionName = Str16ToStr8(parcel.ReadString16());
135     missionAffinity = Str16ToStr8(parcel.ReadString16());
136     launchMode = parcel.ReadInt32();
137     startMethod = parcel.ReadInt32();
138     bundleName = Str16ToStr8(parcel.ReadString16());
139     uid = parcel.ReadInt32();
140     isTemporary = parcel.ReadBool();
141     specifiedFlag = parcel.ReadInt32();
142     hasRecoverInfo = parcel.ReadBool();
143     collaboratorType = parcel.ReadInt32();
144     return true;
145 }
146 
Unmarshalling(Parcel & parcel)147 InnerMissionInfoDto *InnerMissionInfoDto::Unmarshalling(Parcel &parcel)
148 {
149     InnerMissionInfoDto *info = new InnerMissionInfoDto();
150     if (!info->ReadFromParcel(parcel)) {
151         delete info;
152         info = nullptr;
153     }
154     return info;
155 }
156 
Marshalling(Parcel & parcel) const157 bool InnerMissionInfoDto::Marshalling(Parcel &parcel) const
158 {
159     if (!(parcel).WriteParcelable(&missionInfo)) {
160         return false;
161     }
162 
163     if (!(parcel).WriteString16(Str8ToStr16(missionName))) {
164         return false;
165     }
166 
167     if (!(parcel).WriteString16(Str8ToStr16(missionAffinity))) {
168         return false;
169     }
170 
171     if (!(parcel).WriteInt32(launchMode)) {
172         return false;
173     }
174 
175     if (!(parcel).WriteInt32(startMethod)) {
176         return false;
177     }
178 
179     if (!(parcel).WriteString16(Str8ToStr16(bundleName))) {
180         return false;
181     }
182 
183     if (!(parcel).WriteInt32(uid)) {
184         return false;
185     }
186 
187     if (!(parcel).WriteBool(isTemporary)) {
188         return false;
189     }
190 
191     if (!(parcel).WriteString16(Str8ToStr16(specifiedFlag))) {
192         return false;
193     }
194 
195     if (!(parcel).WriteBool(hasRecoverInfo)) {
196         return false;
197     }
198 
199     if (!(parcel).WriteInt32(collaboratorType)) {
200         return false;
201     }
202     return true;
203 }
204 }  // namespace AAFwk
205 }  // namespace OHOS
206