1 /* 2 * Copyright (c) 2021-2022 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 "hap_info_parcel.h" 17 #include "parcel_utils.h" 18 19 namespace OHOS { 20 namespace Security { 21 namespace AccessToken { Marshalling(Parcel & out) const22bool HapInfoParcel::Marshalling(Parcel& out) const 23 { 24 RETURN_IF_FALSE(out.WriteInt32(this->hapInfoParameter.userID)); 25 RETURN_IF_FALSE(out.WriteString(this->hapInfoParameter.bundleName)); 26 RETURN_IF_FALSE(out.WriteInt32(this->hapInfoParameter.instIndex)); 27 RETURN_IF_FALSE(out.WriteInt32(this->hapInfoParameter.dlpType)); 28 RETURN_IF_FALSE(out.WriteString(this->hapInfoParameter.appIDDesc)); 29 RETURN_IF_FALSE(out.WriteInt32(this->hapInfoParameter.apiVersion)); 30 return true; 31 } 32 Unmarshalling(Parcel & in)33HapInfoParcel* HapInfoParcel::Unmarshalling(Parcel& in) 34 { 35 auto* hapInfoParcel = new (std::nothrow) HapInfoParcel(); 36 if (hapInfoParcel == nullptr) { 37 return nullptr; 38 } 39 RELEASE_IF_FALSE(in.ReadInt32(hapInfoParcel->hapInfoParameter.userID), hapInfoParcel); 40 hapInfoParcel->hapInfoParameter.bundleName = in.ReadString(); 41 RELEASE_IF_FALSE(in.ReadInt32(hapInfoParcel->hapInfoParameter.instIndex), hapInfoParcel); 42 RELEASE_IF_FALSE(in.ReadInt32(hapInfoParcel->hapInfoParameter.dlpType), hapInfoParcel); 43 hapInfoParcel->hapInfoParameter.appIDDesc = in.ReadString(); 44 RELEASE_IF_FALSE(in.ReadInt32(hapInfoParcel->hapInfoParameter.apiVersion), hapInfoParcel); 45 46 return hapInfoParcel; 47 } 48 } // namespace AccessToken 49 } // namespace Security 50 } // namespace OHOS 51