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 18namespace OHOS { 19namespace AAFwk { 20bool 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 41MissionInfo *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 51bool 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 99bool MissionValidResult::ReadFromParcel(Parcel &parcel) 100{ 101 missionId = parcel.ReadInt32(); 102 isValid = parcel.ReadBool(); 103 return true; 104} 105 106bool 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 119MissionValidResult *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