158ec469eSopenharmony_ci/*
258ec469eSopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd.
358ec469eSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
458ec469eSopenharmony_ci * you may not use this file except in compliance with the License.
558ec469eSopenharmony_ci * You may obtain a copy of the License at
658ec469eSopenharmony_ci *
758ec469eSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
858ec469eSopenharmony_ci *
958ec469eSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1058ec469eSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1158ec469eSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1258ec469eSopenharmony_ci * See the License for the specific language governing permissions and
1358ec469eSopenharmony_ci * limitations under the License.
1458ec469eSopenharmony_ci */
1558ec469eSopenharmony_ci
1658ec469eSopenharmony_ci#include "light_info_ipc.h"
1758ec469eSopenharmony_ci
1858ec469eSopenharmony_ci#include "sensors_errors.h"
1958ec469eSopenharmony_ci
2058ec469eSopenharmony_ci#undef LOG_TAG
2158ec469eSopenharmony_ci#define LOG_TAG "LightInfoIPC"
2258ec469eSopenharmony_ci
2358ec469eSopenharmony_cinamespace OHOS {
2458ec469eSopenharmony_cinamespace Sensors {
2558ec469eSopenharmony_cistd::string LightInfoIPC::GetLightName() const
2658ec469eSopenharmony_ci{
2758ec469eSopenharmony_ci    return lightName_;
2858ec469eSopenharmony_ci}
2958ec469eSopenharmony_ci
3058ec469eSopenharmony_civoid LightInfoIPC::SetLightName(const std::string &lightName)
3158ec469eSopenharmony_ci{
3258ec469eSopenharmony_ci    lightName_ = lightName;
3358ec469eSopenharmony_ci}
3458ec469eSopenharmony_ci
3558ec469eSopenharmony_ciint32_t LightInfoIPC::GetLightId() const
3658ec469eSopenharmony_ci{
3758ec469eSopenharmony_ci    return lightId_;
3858ec469eSopenharmony_ci}
3958ec469eSopenharmony_ci
4058ec469eSopenharmony_civoid LightInfoIPC::SetLightId(int32_t lightId)
4158ec469eSopenharmony_ci{
4258ec469eSopenharmony_ci    lightId_ = lightId;
4358ec469eSopenharmony_ci}
4458ec469eSopenharmony_ci
4558ec469eSopenharmony_ciint32_t LightInfoIPC::GetLightNumber() const
4658ec469eSopenharmony_ci{
4758ec469eSopenharmony_ci    return lightNumber_;
4858ec469eSopenharmony_ci}
4958ec469eSopenharmony_ci
5058ec469eSopenharmony_civoid LightInfoIPC::SetLightNumber(int32_t lightNumber)
5158ec469eSopenharmony_ci{
5258ec469eSopenharmony_ci    lightNumber_ = lightNumber;
5358ec469eSopenharmony_ci}
5458ec469eSopenharmony_ci
5558ec469eSopenharmony_ciint32_t LightInfoIPC::GetLightType() const
5658ec469eSopenharmony_ci{
5758ec469eSopenharmony_ci    return lightType_;
5858ec469eSopenharmony_ci}
5958ec469eSopenharmony_ci
6058ec469eSopenharmony_civoid LightInfoIPC::SetLightType(int32_t lightType)
6158ec469eSopenharmony_ci{
6258ec469eSopenharmony_ci    lightType_ = lightType;
6358ec469eSopenharmony_ci}
6458ec469eSopenharmony_ci
6558ec469eSopenharmony_cibool LightInfoIPC::Marshalling(Parcel &parcel) const
6658ec469eSopenharmony_ci{
6758ec469eSopenharmony_ci    if (!parcel.WriteString(lightName_)) {
6858ec469eSopenharmony_ci        MISC_HILOGE("Failed, write lightName failed");
6958ec469eSopenharmony_ci        return false;
7058ec469eSopenharmony_ci    }
7158ec469eSopenharmony_ci    if (!parcel.WriteInt32(lightId_)) {
7258ec469eSopenharmony_ci        MISC_HILOGE("Failed, write lightId failed");
7358ec469eSopenharmony_ci        return false;
7458ec469eSopenharmony_ci    }
7558ec469eSopenharmony_ci    if (!parcel.WriteInt32(lightNumber_)) {
7658ec469eSopenharmony_ci        MISC_HILOGE("Failed, write lightNumber failed");
7758ec469eSopenharmony_ci        return false;
7858ec469eSopenharmony_ci    }
7958ec469eSopenharmony_ci    if (!parcel.WriteInt32(lightType_)) {
8058ec469eSopenharmony_ci        MISC_HILOGE("Failed, write lightType failed");
8158ec469eSopenharmony_ci        return false;
8258ec469eSopenharmony_ci    }
8358ec469eSopenharmony_ci    return true;
8458ec469eSopenharmony_ci}
8558ec469eSopenharmony_ci
8658ec469eSopenharmony_cistd::unique_ptr<LightInfoIPC> LightInfoIPC::Unmarshalling(Parcel &parcel)
8758ec469eSopenharmony_ci{
8858ec469eSopenharmony_ci    auto lightInfo = std::make_unique<LightInfoIPC>();
8958ec469eSopenharmony_ci    if (!lightInfo->ReadFromParcel(parcel)) {
9058ec469eSopenharmony_ci        MISC_HILOGE("ReadFromParcel is failed");
9158ec469eSopenharmony_ci        return nullptr;
9258ec469eSopenharmony_ci    }
9358ec469eSopenharmony_ci    return lightInfo;
9458ec469eSopenharmony_ci}
9558ec469eSopenharmony_ci
9658ec469eSopenharmony_cibool LightInfoIPC::ReadFromParcel(Parcel &parcel)
9758ec469eSopenharmony_ci{
9858ec469eSopenharmony_ci    return (parcel.ReadString(lightName_)) && (parcel.ReadInt32(lightId_)) &&
9958ec469eSopenharmony_ci        (parcel.ReadInt32(lightNumber_)) && (parcel.ReadInt32(lightType_));
10058ec469eSopenharmony_ci}
10158ec469eSopenharmony_ci} // namespace Sensors
10258ec469eSopenharmony_ci} // namespace OHOS