/* * Copyright (C) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "beacon_fence.h" namespace OHOS { namespace Location { BeaconFence::BeaconFence() { identifier_ = ""; type_ = BEACON_MANUFACTURE_DATA; manufactureData_.manufactureId = 0; } BeaconFence::BeaconFence(BeaconFence& beaconFence) { identifier_ = beaconFence.GetIdentifier(); type_ = beaconFence.GetBeaconFenceInfoType(); manufactureData_ = beaconFence.GetBeaconManufactureData(); } BeaconFence::~BeaconFence() {} void BeaconFence::ReadFromParcel(Parcel& parcel) { std::unique_lock lock(beaconFenceMutex_); identifier_ = Str16ToStr8(parcel.ReadString16()); type_ = static_cast(parcel.ReadInt32()); manufactureData_.manufactureId = parcel.ReadInt32(); parcel.ReadUInt8Vector(&manufactureData_.manufactureData); parcel.ReadUInt8Vector(&manufactureData_.manufactureDataMask); } std::shared_ptr BeaconFence::UnmarshallingShared(Parcel& parcel) { std::unique_ptr beaconFence = std::make_unique(); beaconFence->ReadFromParcel(parcel); return beaconFence; } BeaconFence* BeaconFence::Unmarshalling(Parcel& parcel) { auto beaconFence = new BeaconFence(); beaconFence->ReadFromParcel(parcel); return beaconFence; } bool BeaconFence::Marshalling(Parcel& parcel) const { std::unique_lock lock(beaconFenceMutex_); return parcel.WriteString16(Str8ToStr16(identifier_)) && parcel.WriteInt32(static_cast(type_)) && parcel.WriteInt32(manufactureData_.manufactureId) && parcel.WriteUInt8Vector(manufactureData_.manufactureData) && parcel.WriteUInt8Vector(manufactureData_.manufactureDataMask); } } // namespace Location } // namespace OHOS