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