1 /*
2 * Copyright (c) 2023-2025 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 "accessee.h"
17 #include "cJSON.h"
18 #include "distributed_device_profile_constants.h"
19 #include "macro_utils.h"
20 #include "profile_utils.h"
21
22 namespace OHOS {
23 namespace DistributedDeviceProfile {
24 namespace {
25 const std::string TAG = "Accessee";
26 }
Accessee()27 Accessee::Accessee()
28 : accesseeId_(0),
29 accesseeDeviceId_(""),
30 accesseeUserId_(-1),
31 accesseeAccountId_(""),
32 accesseeTokenId_(-1),
33 accesseeBundleName_(""),
34 accesseeHapSignature_(""),
35 accesseeBindLevel_(static_cast<uint32_t>(BindLevel::MIN)),
36 accesseeDeviceName_(""),
37 accesseeServiceName_(""),
38 accesseeCredentialId_(-1),
39 accesseeCredentialIdStr_(""),
40 accesseeStatus_(static_cast<int32_t>(Status::MIN)),
41 accesseeSessionKeyId_(-1),
42 accesseeSKTimeStamp_(-1),
43 accesseeExtraData_("")
44 {}
45
GetAccesseeId()46 int64_t Accessee::GetAccesseeId()
47 {
48 return accesseeId_;
49 }
50
SetAccesseeId(int64_t accesseeId)51 void Accessee::SetAccesseeId(int64_t accesseeId)
52 {
53 accesseeId_ = accesseeId;
54 }
55
GetAccesseeDeviceId() const56 std::string Accessee::GetAccesseeDeviceId() const
57 {
58 return accesseeDeviceId_;
59 }
60
SetAccesseeDeviceId(const std::string & accesseeDeviceId)61 void Accessee::SetAccesseeDeviceId(const std::string& accesseeDeviceId)
62 {
63 accesseeDeviceId_ = accesseeDeviceId;
64 }
65
GetAccesseeUserId() const66 int32_t Accessee::GetAccesseeUserId() const
67 {
68 return accesseeUserId_;
69 }
70
SetAccesseeUserId(int32_t accesseeUserId)71 void Accessee::SetAccesseeUserId(int32_t accesseeUserId)
72 {
73 accesseeUserId_ = accesseeUserId;
74 }
75
GetAccesseeAccountId() const76 std::string Accessee::GetAccesseeAccountId() const
77 {
78 return accesseeAccountId_;
79 }
80
SetAccesseeAccountId(const std::string & accesseeAccountId)81 void Accessee::SetAccesseeAccountId(const std::string& accesseeAccountId)
82 {
83 accesseeAccountId_ = accesseeAccountId;
84 }
85
GetAccesseeTokenId() const86 int64_t Accessee::GetAccesseeTokenId() const
87 {
88 return accesseeTokenId_;
89 }
90
SetAccesseeTokenId(int64_t accesseeTokenId)91 void Accessee::SetAccesseeTokenId(int64_t accesseeTokenId)
92 {
93 accesseeTokenId_ = accesseeTokenId;
94 }
95
GetAccesseeBundleName() const96 std::string Accessee::GetAccesseeBundleName() const
97 {
98 return accesseeBundleName_;
99 }
100
SetAccesseeBundleName(const std::string & accesseeBundleName)101 void Accessee::SetAccesseeBundleName(const std::string& accesseeBundleName)
102 {
103 accesseeBundleName_ = accesseeBundleName;
104 }
105
GetAccesseeHapSignature() const106 std::string Accessee::GetAccesseeHapSignature() const
107 {
108 return accesseeHapSignature_;
109 }
110
SetAccesseeHapSignature(const std::string & accesseeHapSignature)111 void Accessee::SetAccesseeHapSignature(const std::string& accesseeHapSignature)
112 {
113 accesseeHapSignature_ = accesseeHapSignature;
114 }
115
GetAccesseeBindLevel() const116 uint32_t Accessee::GetAccesseeBindLevel() const
117 {
118 return accesseeBindLevel_;
119 }
120
SetAccesseeBindLevel(uint32_t accesseeBindLevel)121 void Accessee::SetAccesseeBindLevel(uint32_t accesseeBindLevel)
122 {
123 accesseeBindLevel_ = accesseeBindLevel;
124 }
125
GetAccesseeDeviceName() const126 std::string Accessee::GetAccesseeDeviceName() const
127 {
128 return accesseeDeviceName_;
129 }
130
SetAccesseeDeviceName(const std::string & accesseeDeviceName)131 void Accessee::SetAccesseeDeviceName(const std::string& accesseeDeviceName)
132 {
133 accesseeDeviceName_ = accesseeDeviceName;
134 }
135
GetAccesseeServiceName() const136 std::string Accessee::GetAccesseeServiceName() const
137 {
138 return accesseeServiceName_;
139 }
140
SetAccesseeServiceName(const std::string & accesseeServiceName)141 void Accessee::SetAccesseeServiceName(const std::string& accesseeServiceName)
142 {
143 accesseeServiceName_ = accesseeServiceName;
144 }
145
GetAccesseeCredentialId() const146 int32_t Accessee::GetAccesseeCredentialId() const
147 {
148 return accesseeCredentialId_;
149 }
150
SetAccesseeCredentialId(int32_t accesseeCredentialId)151 void Accessee::SetAccesseeCredentialId(int32_t accesseeCredentialId)
152 {
153 accesseeCredentialId_ = accesseeCredentialId;
154 }
155
GetAccesseeCredentialIdStr() const156 std::string Accessee::GetAccesseeCredentialIdStr() const
157 {
158 return accesseeCredentialIdStr_;
159 }
160
SetAccesseeCredentialIdStr(const std::string & accesseeCredentialIdStr)161 void Accessee::SetAccesseeCredentialIdStr(const std::string& accesseeCredentialIdStr)
162 {
163 accesseeCredentialIdStr_ = accesseeCredentialIdStr;
164 }
165
GetAccesseeStatus() const166 int32_t Accessee::GetAccesseeStatus() const
167 {
168 return accesseeStatus_;
169 }
170
SetAccesseeStatus(int32_t accesseeStatus)171 void Accessee::SetAccesseeStatus(int32_t accesseeStatus)
172 {
173 accesseeStatus_ = accesseeStatus;
174 }
175
GetAccesseeSessionKeyId() const176 int32_t Accessee::GetAccesseeSessionKeyId() const
177 {
178 return accesseeSessionKeyId_;
179 }
180
SetAccesseeSessionKeyId(int32_t accesseeSessionKeyId)181 void Accessee::SetAccesseeSessionKeyId(int32_t accesseeSessionKeyId)
182 {
183 accesseeSessionKeyId_ = accesseeSessionKeyId;
184 }
185
GetAccesseeSKTimeStamp() const186 int64_t Accessee::GetAccesseeSKTimeStamp() const
187 {
188 return accesseeSKTimeStamp_;
189 }
190
SetAccesseeSKTimeStamp(int64_t accesseeSKTimeStamp)191 void Accessee::SetAccesseeSKTimeStamp(int64_t accesseeSKTimeStamp)
192 {
193 accesseeSKTimeStamp_ = accesseeSKTimeStamp;
194 }
195
GetAccesseeExtraData() const196 std::string Accessee::GetAccesseeExtraData() const
197 {
198 return accesseeExtraData_;
199 }
200
SetAccesseeExtraData(const std::string & accesseeExtraData)201 void Accessee::SetAccesseeExtraData(const std::string& accesseeExtraData)
202 {
203 accesseeExtraData_ = accesseeExtraData;
204 }
205
Marshalling(MessageParcel & parcel) const206 bool Accessee::Marshalling(MessageParcel& parcel) const
207 {
208 WRITE_HELPER_RET(parcel, Int64, accesseeId_, false);
209 WRITE_HELPER_RET(parcel, String, accesseeDeviceId_, false);
210 WRITE_HELPER_RET(parcel, Int32, accesseeUserId_, false);
211 WRITE_HELPER_RET(parcel, String, accesseeAccountId_, false);
212 WRITE_HELPER_RET(parcel, Int64, accesseeTokenId_, false);
213 WRITE_HELPER_RET(parcel, String, accesseeBundleName_, false);
214 WRITE_HELPER_RET(parcel, String, accesseeHapSignature_, false);
215 WRITE_HELPER_RET(parcel, Uint32, accesseeBindLevel_, false);
216 WRITE_HELPER_RET(parcel, String, accesseeDeviceName_, false);
217 WRITE_HELPER_RET(parcel, String, accesseeServiceName_, false);
218 WRITE_HELPER_RET(parcel, Int32, accesseeCredentialId_, false);
219 WRITE_HELPER_RET(parcel, String, accesseeCredentialIdStr_, false);
220 WRITE_HELPER_RET(parcel, Int32, accesseeStatus_, false);
221 WRITE_HELPER_RET(parcel, Int32, accesseeSessionKeyId_, false);
222 WRITE_HELPER_RET(parcel, Int64, accesseeSKTimeStamp_, false);
223 WRITE_HELPER_RET(parcel, String, accesseeExtraData_, false);
224 return true;
225 }
226
UnMarshalling(MessageParcel & parcel)227 bool Accessee::UnMarshalling(MessageParcel& parcel)
228 {
229 READ_HELPER_RET(parcel, Int64, accesseeId_, false);
230 READ_HELPER_RET(parcel, String, accesseeDeviceId_, false);
231 READ_HELPER_RET(parcel, Int32, accesseeUserId_, false);
232 READ_HELPER_RET(parcel, String, accesseeAccountId_, false);
233 READ_HELPER_RET(parcel, Int64, accesseeTokenId_, false);
234 READ_HELPER_RET(parcel, String, accesseeBundleName_, false);
235 READ_HELPER_RET(parcel, String, accesseeHapSignature_, false);
236 READ_HELPER_RET(parcel, Uint32, accesseeBindLevel_, false);
237 READ_HELPER_RET(parcel, String, accesseeDeviceName_, false);
238 READ_HELPER_RET(parcel, String, accesseeServiceName_, false);
239 READ_HELPER_RET(parcel, Int32, accesseeCredentialId_, false);
240 READ_HELPER_RET(parcel, String, accesseeCredentialIdStr_, false);
241 READ_HELPER_RET(parcel, Int32, accesseeStatus_, false);
242 READ_HELPER_RET(parcel, Int32, accesseeSessionKeyId_, false);
243 READ_HELPER_RET(parcel, Int64, accesseeSKTimeStamp_, false);
244 READ_HELPER_RET(parcel, String, accesseeExtraData_, false);
245 return true;
246 }
247
dump() const248 std::string Accessee::dump() const
249 {
250 cJSON* json = cJSON_CreateObject();
251 if (!cJSON_IsObject(json)) {
252 cJSON_Delete(json);
253 return EMPTY_STRING;
254 }
255 cJSON_AddNumberToObject(json, ACCESSEE_ID.c_str(), accesseeId_);
256 cJSON_AddStringToObject(json, ACCESSEE_DEVICE_ID.c_str(),
257 ProfileUtils::GetAnonyString(accesseeDeviceId_).c_str());
258 cJSON_AddStringToObject(json, ACCESSEE_USER_ID.c_str(),
259 ProfileUtils::GetAnonyString(std::to_string(accesseeUserId_)).c_str());
260 cJSON_AddStringToObject(json, ACCESSEE_ACCOUNT_ID.c_str(),
261 ProfileUtils::GetAnonyString(accesseeAccountId_).c_str());
262 cJSON_AddNumberToObject(json, ACCESSEE_TOKEN_ID.c_str(), accesseeTokenId_);
263 cJSON_AddStringToObject(json, ACCESSEE_BUNDLE_NAME.c_str(),
264 ProfileUtils::GetAnonyString(accesseeBundleName_).c_str());
265 cJSON_AddStringToObject(json, ACCESSEE_HAP_SIGNATURE.c_str(), accesseeHapSignature_.c_str());
266 cJSON_AddNumberToObject(json, ACCESSEE_BIND_LEVEL.c_str(), accesseeBindLevel_);
267 cJSON_AddStringToObject(json, ACCESSEE_DEVICE_NAME.c_str(),
268 ProfileUtils::GetAnonyString(accesseeDeviceName_).c_str());
269 cJSON_AddStringToObject(json, ACCESSEE_SERVICE_NAME.c_str(), accesseeServiceName_.c_str());
270 cJSON_AddStringToObject(json, ACCESSEE_CREDENTIAL_ID_STR.c_str(), accesseeCredentialIdStr_.c_str());
271 cJSON_AddNumberToObject(json, ACCESSEE_STATUS.c_str(), accesseeStatus_);
272 cJSON_AddNumberToObject(json, ACCESSEE_SESSION_KEY_ID.c_str(), accesseeSessionKeyId_);
273 cJSON_AddNumberToObject(json, ACCESSEE_SESSION_KEY_TIMESTAMP.c_str(), accesseeSKTimeStamp_);
274 cJSON_AddStringToObject(json, ACCESSEE_EXTRA_DATA.c_str(), accesseeExtraData_.c_str());
275 char* jsonChars = cJSON_PrintUnformatted(json);
276 if (jsonChars == NULL) {
277 cJSON_Delete(json);
278 HILOGE("cJSON formatted to string failed!");
279 return EMPTY_STRING;
280 }
281 std::string jsonStr = jsonChars;
282 cJSON_Delete(json);
283 cJSON_free(jsonChars);
284 return jsonStr;
285 }
286 } // namespace DistributedDeviceProfile
287 } // namespace OHOS
288