1 /*
2 * Copyright (c) 2022-2023 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 "avsession_descriptor.h"
17 #include "avsession_log.h"
18
19 namespace OHOS::AVSession {
WriteToParcel(Parcel & out) const20 bool AVHistoryDescriptor::WriteToParcel(Parcel& out) const
21 {
22 CHECK_AND_RETURN_RET_LOG(out.WriteString(sessionId_), false, "write sessionId failed");
23 CHECK_AND_RETURN_RET_LOG(out.WriteString(bundleName_), false, "write bundleName failed");
24 CHECK_AND_RETURN_RET_LOG(out.WriteString(abilityName_), false, "write abilityName failed");
25 return true;
26 }
27
ReadFromParcel(Parcel & in)28 bool AVHistoryDescriptor::ReadFromParcel(Parcel& in)
29 {
30 CHECK_AND_RETURN_RET_LOG(in.ReadString(sessionId_), false, "Read sessionId failed");
31 CHECK_AND_RETURN_RET_LOG(in.ReadString(bundleName_), false, "Read bundleName failed");
32 CHECK_AND_RETURN_RET_LOG(in.ReadString(abilityName_), false, "Read abilityName failed");
33 return true;
34 }
35
WriteToParcel(Parcel & out) const36 bool AVSessionDescriptor::WriteToParcel(Parcel& out) const
37 {
38 CHECK_AND_RETURN_RET_LOG(out.WriteString(sessionId_), false, "write sessionId failed");
39 CHECK_AND_RETURN_RET_LOG(out.WriteInt32(sessionType_), false, "write sessionType failed");
40 CHECK_AND_RETURN_RET_LOG(out.WriteString(sessionTag_), false, "write sessionTag failed");
41 CHECK_AND_RETURN_RET_LOG(out.WriteInt32(pid_), false, "write pid failed");
42 CHECK_AND_RETURN_RET_LOG(out.WriteInt32(uid_), false, "write uid failed");
43 CHECK_AND_RETURN_RET_LOG(out.WriteBool(isActive_), false, "write isActive failed");
44 CHECK_AND_RETURN_RET_LOG(out.WriteBool(isTopSession_), false, "write isTopSession failed");
45
46 int32_t deviceInfoSize = outputDeviceInfo_.deviceInfos_.size();
47 CHECK_AND_RETURN_RET_LOG(out.WriteInt32(deviceInfoSize), false, "write deviceInfoSize failed");
48 for (DeviceInfo deviceInfo : outputDeviceInfo_.deviceInfos_) {
49 CHECK_AND_RETURN_RET_LOG(out.WriteInt32(deviceInfo.castCategory_), false, "write castCategory failed");
50 CHECK_AND_RETURN_RET_LOG(out.WriteString(deviceInfo.deviceId_), false, "write deviceId failed");
51 CHECK_AND_RETURN_RET_LOG(out.WriteString(deviceInfo.deviceName_), false, "write deviceName failed");
52 CHECK_AND_RETURN_RET_LOG(out.WriteInt32(deviceInfo.deviceType_), false, "write deviceType failed");
53 CHECK_AND_RETURN_RET_LOG(out.WriteString(deviceInfo.ipAddress_), false, "write ipAddress failed");
54 CHECK_AND_RETURN_RET_LOG(out.WriteInt32(deviceInfo.providerId_), false, "write providerId failed");
55 }
56 CHECK_AND_RETURN_RET_LOG(out.WriteParcelable(&elementName_), false, "write elementName failed");
57 return true;
58 }
59
ReadFromParcel(Parcel & in)60 bool AVSessionDescriptor::ReadFromParcel(Parcel& in)
61 {
62 CHECK_AND_RETURN_RET_LOG(in.ReadString(sessionId_), false, "Read sessionId failed");
63 CHECK_AND_RETURN_RET_LOG(in.ReadInt32(sessionType_), false, "Read sessionType failed");
64 CHECK_AND_RETURN_RET_LOG(in.ReadString(sessionTag_), false, "Read sessionTag failed");
65 CHECK_AND_RETURN_RET_LOG(in.ReadInt32(pid_), false, "Read pid failed");
66 CHECK_AND_RETURN_RET_LOG(in.ReadInt32(uid_), false, "Read uid failed");
67 CHECK_AND_RETURN_RET_LOG(in.ReadBool(isActive_), false, "Read isActive failed");
68 CHECK_AND_RETURN_RET_LOG(in.ReadBool(isTopSession_), false, "Read isTopSession failed");
69
70 int32_t deviceInfoSize;
71 CHECK_AND_RETURN_RET_LOG(in.ReadInt32(deviceInfoSize), false, "write deviceInfoSize failed");
72 for (int i = 0; i < deviceInfoSize; i++) {
73 DeviceInfo deviceInfo;
74 CHECK_AND_RETURN_RET_LOG(in.ReadInt32(deviceInfo.castCategory_), false, "Read castCategory failed");
75 CHECK_AND_RETURN_RET_LOG(in.ReadString(deviceInfo.deviceId_), false, "Read deviceId failed");
76 CHECK_AND_RETURN_RET_LOG(in.ReadString(deviceInfo.deviceName_), false, "Read deviceName failed");
77 CHECK_AND_RETURN_RET_LOG(in.ReadInt32(deviceInfo.deviceType_), false, "Read deviceType failed");
78 CHECK_AND_RETURN_RET_LOG(in.ReadString(deviceInfo.ipAddress_), false, "Read ipAddress failed");
79 CHECK_AND_RETURN_RET_LOG(in.ReadInt32(deviceInfo.providerId_), false, "Read providerId failed");
80 outputDeviceInfo_.deviceInfos_.emplace_back(deviceInfo);
81 }
82
83 sptr elementName = in.ReadParcelable<AppExecFwk::ElementName>();
84 if (elementName == nullptr) {
85 SLOGE("read element name failed");
86 return false;
87 }
88 elementName_ = *elementName;
89 return true;
90 }
91
WriteToParcel(Parcel & out) const92 bool DeviceInfo::WriteToParcel(Parcel& out) const
93 {
94 CHECK_AND_RETURN_RET_LOG(out.WriteInt32(castCategory_), false, "write castCategory failed");
95 CHECK_AND_RETURN_RET_LOG(out.WriteString(deviceId_), false, "write deviceId failed");
96 CHECK_AND_RETURN_RET_LOG(out.WriteString(deviceName_), false, "write deviceName failed");
97 CHECK_AND_RETURN_RET_LOG(out.WriteInt32(deviceType_), false, "write deviceType failed");
98 CHECK_AND_RETURN_RET_LOG(out.WriteString(ipAddress_), false, "write ipAddress failed");
99 CHECK_AND_RETURN_RET_LOG(out.WriteInt32(providerId_), false, "write providerId failed");
100
101 return true;
102 }
103
ReadFromParcel(Parcel & in)104 bool DeviceInfo::ReadFromParcel(Parcel& in)
105 {
106 CHECK_AND_RETURN_RET_LOG(in.ReadInt32(castCategory_), false, "Read castCategory failed");
107 CHECK_AND_RETURN_RET_LOG(in.ReadString(deviceId_), false, "Read deviceId failed");
108 CHECK_AND_RETURN_RET_LOG(in.ReadString(deviceName_), false, "Read deviceName failed");
109 CHECK_AND_RETURN_RET_LOG(in.ReadInt32(deviceType_), false, "Read deviceType failed");
110 CHECK_AND_RETURN_RET_LOG(in.ReadString(ipAddress_), false, "Read ipAddress failed");
111 CHECK_AND_RETURN_RET_LOG(in.ReadInt32(providerId_), false, "Read providerId failed");
112
113 return true;
114 }
115
WriteToParcel(Parcel & out) const116 bool OutputDeviceInfo::WriteToParcel(Parcel& out) const
117 {
118 int32_t deviceInfoSize = deviceInfos_.size();
119 CHECK_AND_RETURN_RET_LOG(out.WriteInt32(deviceInfoSize), false, "write deviceInfoSize failed");
120 for (DeviceInfo deviceInfo : deviceInfos_) {
121 CHECK_AND_RETURN_RET_LOG(out.WriteInt32(deviceInfo.castCategory_), false, "write castCategory failed");
122 CHECK_AND_RETURN_RET_LOG(out.WriteString(deviceInfo.deviceId_), false, "write deviceId failed");
123 CHECK_AND_RETURN_RET_LOG(out.WriteString(deviceInfo.deviceName_), false, "write deviceName failed");
124 CHECK_AND_RETURN_RET_LOG(out.WriteInt32(deviceInfo.deviceType_), false, "write deviceType failed");
125 CHECK_AND_RETURN_RET_LOG(out.WriteString(deviceInfo.ipAddress_), false, "write ipAddress failed");
126 CHECK_AND_RETURN_RET_LOG(out.WriteInt32(deviceInfo.providerId_), false, "write providerId failed");
127 }
128 return true;
129 }
130
ReadFromParcel(Parcel & in)131 bool OutputDeviceInfo::ReadFromParcel(Parcel& in)
132 {
133 int32_t deviceInfoSize;
134 CHECK_AND_RETURN_RET_LOG(in.ReadInt32(deviceInfoSize), false, "write deviceInfoSize failed");
135 for (int i = 0; i < deviceInfoSize; i++) {
136 DeviceInfo deviceInfo;
137 CHECK_AND_RETURN_RET_LOG(in.ReadInt32(deviceInfo.castCategory_), false, "Read castCategory failed");
138 CHECK_AND_RETURN_RET_LOG(in.ReadString(deviceInfo.deviceId_), false, "Read deviceId failed");
139 CHECK_AND_RETURN_RET_LOG(in.ReadString(deviceInfo.deviceName_), false, "Read deviceName failed");
140 CHECK_AND_RETURN_RET_LOG(in.ReadInt32(deviceInfo.deviceType_), false, "Read deviceType failed");
141 CHECK_AND_RETURN_RET_LOG(in.ReadString(deviceInfo.ipAddress_), false, "Read ipAddress failed");
142 CHECK_AND_RETURN_RET_LOG(in.ReadInt32(deviceInfo.providerId_), false, "Read providerId failed");
143 deviceInfos_.emplace_back(deviceInfo);
144 }
145 return true;
146 }
147 } // namespace OHOS::AVSession
148