• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2024 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 "boomerang_params.h"
17 
18 #include "fi_log.h"
19 
20 #undef LOG_TAG
21 #define LOG_TAG "BoomerangParams"
22 
23 namespace OHOS {
24 namespace Msdp {
25 namespace DeviceStatus {
26 
SubscribeBoomerangParam(BoomerangType type,std::string bundleName,sptr<IRemoteBoomerangCallback> callback)27 SubscribeBoomerangParam::SubscribeBoomerangParam(BoomerangType type, std::string bundleName,
28     sptr<IRemoteBoomerangCallback> callback) : type_(type), bundleName_(bundleName), callback_(callback)
29 {}
30 
Marshalling(MessageParcel & parcel) const31 bool SubscribeBoomerangParam::Marshalling(MessageParcel &parcel) const
32 {
33     return (
34         parcel.WriteInt32(type_) &&
35         parcel.WriteString(bundleName_) &&
36         (callback_ != nullptr) &&
37         parcel.WriteRemoteObject(callback_->AsObject())
38     );
39 }
40 
Unmarshalling(MessageParcel & parcel)41 bool SubscribeBoomerangParam::Unmarshalling(MessageParcel &parcel)
42 {
43     int32_t type {};
44     bool result =  parcel.ReadInt32(type) && parcel.ReadString(bundleName_);
45     if (!result) {
46         return false;
47     }
48     sptr<IRemoteObject> obj = parcel.ReadRemoteObject();
49     if (obj == nullptr) {
50         return false;
51     }
52     callback_ = iface_cast<IRemoteBoomerangCallback>(obj);
53     return (callback_ != nullptr);
54 }
55 
NotifyMetadataParam(std::string bundleName,sptr<IRemoteBoomerangCallback> callback)56 NotifyMetadataParam::NotifyMetadataParam(std::string bundleName, sptr<IRemoteBoomerangCallback> callback)
57     : bundleName_(bundleName), callback_(callback)
58 {}
59 
Marshalling(MessageParcel & parcel) const60 bool NotifyMetadataParam::Marshalling(MessageParcel &parcel) const
61 {
62     return (
63         parcel.WriteString(bundleName_) &&
64         (callback_ != nullptr) &&
65         parcel.WriteRemoteObject(callback_->AsObject())
66     );
67 }
68 
Unmarshalling(MessageParcel & parcel)69 bool NotifyMetadataParam::Unmarshalling(MessageParcel &parcel)
70 {
71     bool result = parcel.ReadString(bundleName_);
72     if (!result) {
73         return false;
74     }
75     sptr<IRemoteObject> obj = parcel.ReadRemoteObject();
76     if (obj == nullptr) {
77         return false;
78     }
79     callback_ = iface_cast<IRemoteBoomerangCallback>(obj);
80     return (callback_ != nullptr);
81 }
82 
MetadataParam(std::string metadata)83 MetadataParam::MetadataParam(std::string metadata) : metadata_(metadata)
84 {}
85 
Marshalling(MessageParcel & parcel) const86 bool MetadataParam::Marshalling(MessageParcel &parcel) const
87 {
88     return parcel.WriteString(metadata_);
89 }
90 
Unmarshalling(MessageParcel & parcel)91 bool MetadataParam::Unmarshalling(MessageParcel &parcel)
92 {
93     return parcel.ReadString(metadata_);
94 }
95 
EncodeImageParam(std::shared_ptr<Media::PixelMap> pixelMap,std::string metadata,sptr<IRemoteBoomerangCallback> callback)96 EncodeImageParam::EncodeImageParam(std::shared_ptr<Media::PixelMap> pixelMap, std::string metadata,
97     sptr<IRemoteBoomerangCallback> callback) : pixelMap_(pixelMap), metadata_(metadata),
98     callback_(callback)
99 {}
100 
Marshalling(MessageParcel & parcel) const101 bool EncodeImageParam::Marshalling(MessageParcel &parcel) const
102 {
103     return (
104         (pixelMap_ != nullptr) && pixelMap_->Marshalling(parcel) &&
105         parcel.WriteString(metadata_) &&
106         (callback_ != nullptr) &&
107         parcel.WriteRemoteObject(callback_->AsObject())
108     );
109 }
110 
Unmarshalling(MessageParcel & parcel)111 bool EncodeImageParam::Unmarshalling(MessageParcel &parcel)
112 {
113     Media::PixelMap *rawPixelMap = OHOS::Media::PixelMap::Unmarshalling(parcel);
114     if (rawPixelMap == nullptr) {
115         return false;
116     }
117     pixelMap_ = std::shared_ptr<Media::PixelMap>(rawPixelMap);
118     bool result = parcel.ReadString(metadata_);
119     if (!result) {
120         return false;
121     }
122     sptr<IRemoteObject> obj = parcel.ReadRemoteObject();
123     if (obj == nullptr) {
124         return false;
125     }
126     callback_ = iface_cast<IRemoteBoomerangCallback>(obj);
127     return (callback_ != nullptr);
128 }
129 
DecodeImageParam(std::shared_ptr<Media::PixelMap> pixelMap,sptr<IRemoteBoomerangCallback> callback)130 DecodeImageParam::DecodeImageParam(std::shared_ptr<Media::PixelMap> pixelMap,
131     sptr<IRemoteBoomerangCallback> callback) : pixelMap_(pixelMap),
132     callback_(callback)
133 {}
134 
Marshalling(MessageParcel & parcel) const135 bool DecodeImageParam::Marshalling(MessageParcel &parcel) const
136 {
137     return (
138         (pixelMap_ != nullptr) && pixelMap_->Marshalling(parcel) &&
139         (callback_ != nullptr) &&
140         parcel.WriteRemoteObject(callback_->AsObject())
141     );
142 }
143 
Unmarshalling(MessageParcel & parcel)144 bool DecodeImageParam::Unmarshalling(MessageParcel &parcel)
145 {
146     Media::PixelMap *rawPixelMap = OHOS::Media::PixelMap::Unmarshalling(parcel);
147     if (rawPixelMap == nullptr) {
148         return false;
149     }
150     pixelMap_ = std::shared_ptr<Media::PixelMap>(rawPixelMap);
151     sptr<IRemoteObject> obj = parcel.ReadRemoteObject();
152     if (obj == nullptr) {
153         return false;
154     }
155     callback_ = iface_cast<IRemoteBoomerangCallback>(obj);
156     return (callback_ != nullptr);
157 }
158 } // namespace DeviceStatus
159 } // namespace Msdp
160 } // namespace OHOS