1 /*
2  * Copyright (c) 2021 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 "net_supplier_info.h"
17 
18 #include "parcel.h"
19 #include "refbase.h"
20 
21 #include "net_mgr_log_wrapper.h"
22 namespace OHOS {
23 namespace NetManagerStandard {
Marshalling(Parcel & parcel) const24 bool NetSupplierInfo::Marshalling(Parcel &parcel) const
25 {
26     if (!parcel.WriteBool(isAvailable_)) {
27         return false;
28     }
29     if (!parcel.WriteBool(isRoaming_)) {
30         return false;
31     }
32     if (!parcel.WriteInt8(strength_)) {
33         return false;
34     }
35     if (!parcel.WriteUint32(frequency_)) {
36         return false;
37     }
38     if (!parcel.WriteUint32(linkUpBandwidthKbps_)) {
39         return false;
40     }
41     if (!parcel.WriteUint32(linkDownBandwidthKbps_)) {
42         return false;
43     }
44     if (!parcel.WriteInt32(uid_)) {
45         return false;
46     }
47     if (!parcel.WriteString(ident_)) {
48         return false;
49     }
50     return true;
51 }
52 
Unmarshalling(Parcel & parcel)53 sptr<NetSupplierInfo> NetSupplierInfo::Unmarshalling(Parcel &parcel)
54 {
55     sptr<NetSupplierInfo> ptr = new (std::nothrow) NetSupplierInfo();
56     if (ptr == nullptr) {
57         NETMGR_LOG_E("make_unique<NetSupplierInfo>() failed");
58         return nullptr;
59     }
60     if (!parcel.ReadBool(ptr->isAvailable_)) {
61         return nullptr;
62     }
63     if (!parcel.ReadBool(ptr->isRoaming_)) {
64         return nullptr;
65     }
66     if (!parcel.ReadInt8(ptr->strength_)) {
67         NETMGR_LOG_E("read strength_ from parcel failed");
68         return nullptr;
69     }
70     if (!parcel.ReadUint32(ptr->frequency_)) {
71         return nullptr;
72     }
73     if (!parcel.ReadUint32(ptr->linkUpBandwidthKbps_)) {
74         return nullptr;
75     }
76     if (!parcel.ReadUint32(ptr->linkDownBandwidthKbps_)) {
77         return nullptr;
78     }
79     if (!parcel.ReadInt32(ptr->uid_)) {
80         return nullptr;
81     }
82     if (!parcel.ReadString(ptr->ident_)) {
83         return nullptr;
84     }
85     return ptr;
86 }
87 
Marshalling(Parcel & parcel,const sptr<NetSupplierInfo> & object)88 bool NetSupplierInfo::Marshalling(Parcel &parcel, const sptr<NetSupplierInfo> &object)
89 {
90     if (object == nullptr) {
91         NETMGR_LOG_E("NetSupplierInfo object ptr is nullptr");
92         return false;
93     }
94     if (!parcel.WriteBool(object->isAvailable_)) {
95         return false;
96     }
97     if (!parcel.WriteBool(object->isRoaming_)) {
98         return false;
99     }
100     if (!parcel.WriteInt8(object->strength_)) {
101         return false;
102     }
103     if (!parcel.WriteUint32(object->frequency_)) {
104         return false;
105     }
106     if (!parcel.WriteUint32(object->linkUpBandwidthKbps_)) {
107         return false;
108     }
109     if (!parcel.WriteUint32(object->linkDownBandwidthKbps_)) {
110         return false;
111     }
112     if (!parcel.WriteInt32(object->uid_)) {
113         return false;
114     }
115     if (!parcel.WriteString(object->ident_)) {
116         return false;
117     }
118     return true;
119 }
120 
ToString(const std::string & tab) const121 std::string NetSupplierInfo::ToString(const std::string &tab) const
122 {
123     std::string str;
124     str.append(tab);
125     str.append("[NetSupplierInfo]");
126 
127     str.append(tab);
128     str.append("isAvailable_ = ");
129     str.append(std::to_string(isAvailable_));
130 
131     str.append(tab);
132     str.append("isRoaming_ = ");
133     str.append(std::to_string(isRoaming_));
134 
135     str.append(tab);
136     str.append("strength_ = ");
137     str.append(std::to_string(strength_));
138 
139     str.append(tab);
140     str.append("frequency_ = ");
141     str.append(std::to_string(frequency_));
142 
143     str.append(tab);
144     str.append("linkUpBandwidthKbps_ = ");
145     str.append(std::to_string(linkUpBandwidthKbps_));
146 
147     str.append(tab);
148     str.append("linkDownBandwidthKbps_ = ");
149     str.append(std::to_string(linkDownBandwidthKbps_));
150 
151     str.append(tab);
152     str.append("uid_ = ");
153     str.append(std::to_string(uid_));
154 
155     str.append(tab);
156     str.append("ident_ = ");
157     str.append(ident_);
158 
159     return str;
160 }
161 } // namespace NetManagerStandard
162 } // namespace OHOS