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 "accesser.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 = "Accesser";
26 }
Accesser()27 Accesser::Accesser()
28 : accesserId_(0),
29 accesserDeviceId_(""),
30 accesserUserId_(-1),
31 accesserAccountId_(""),
32 accesserTokenId_(-1),
33 accesserBundleName_(""),
34 accesserHapSignature_(""),
35 accesserBindLevel_(static_cast<uint32_t>(BindLevel::MIN)),
36 accesserDeviceName_(""),
37 accesserServiceName_(""),
38 accesserCredentialId_(-1),
39 accesserCredentialIdStr_(""),
40 accesserStatus_(static_cast<int32_t>(Status::MIN)),
41 accesserSessionKeyId_(-1),
42 accesserSKTimeStamp_(-1)
43 {}
44
GetAccesserId()45 int64_t Accesser::GetAccesserId()
46 {
47 return accesserId_;
48 }
49
SetAccesserId(int64_t accesserId)50 void Accesser::SetAccesserId(int64_t accesserId)
51 {
52 accesserId_ = accesserId;
53 }
54
GetAccesserDeviceId() const55 std::string Accesser::GetAccesserDeviceId() const
56 {
57 return accesserDeviceId_;
58 }
59
SetAccesserDeviceId(const std::string & accesserDeviceId)60 void Accesser::SetAccesserDeviceId(const std::string& accesserDeviceId)
61 {
62 accesserDeviceId_ = accesserDeviceId;
63 }
64
GetAccesserUserId() const65 int32_t Accesser::GetAccesserUserId() const
66 {
67 return accesserUserId_;
68 }
69
SetAccesserUserId(int32_t accesserUserId)70 void Accesser::SetAccesserUserId(int32_t accesserUserId)
71 {
72 accesserUserId_ = accesserUserId;
73 }
74
GetAccesserAccountId() const75 std::string Accesser::GetAccesserAccountId() const
76 {
77 return accesserAccountId_;
78 }
79
SetAccesserAccountId(const std::string & accesserAccountId)80 void Accesser::SetAccesserAccountId(const std::string& accesserAccountId)
81 {
82 accesserAccountId_ = accesserAccountId;
83 }
84
GetAccesserTokenId() const85 int64_t Accesser::GetAccesserTokenId() const
86 {
87 return accesserTokenId_;
88 }
89
SetAccesserTokenId(int64_t accesserTokenId)90 void Accesser::SetAccesserTokenId(int64_t accesserTokenId)
91 {
92 accesserTokenId_ = accesserTokenId;
93 }
94
GetAccesserBundleName() const95 std::string Accesser::GetAccesserBundleName() const
96 {
97 return accesserBundleName_;
98 }
99
SetAccesserBundleName(const std::string & accesserBundleName)100 void Accesser::SetAccesserBundleName(const std::string& accesserBundleName)
101 {
102 accesserBundleName_ = accesserBundleName;
103 }
104
GetAccesserHapSignature() const105 std::string Accesser::GetAccesserHapSignature() const
106 {
107 return accesserHapSignature_;
108 }
109
SetAccesserHapSignature(const std::string & accesserHapSignature)110 void Accesser::SetAccesserHapSignature(const std::string& accesserHapSignature)
111 {
112 accesserHapSignature_ = accesserHapSignature;
113 }
114
GetAccesserBindLevel() const115 uint32_t Accesser::GetAccesserBindLevel() const
116 {
117 return accesserBindLevel_;
118 }
119
SetAccesserBindLevel(uint32_t accesserBindLevel)120 void Accesser::SetAccesserBindLevel(uint32_t accesserBindLevel)
121 {
122 accesserBindLevel_ = accesserBindLevel;
123 }
124
GetAccesserDeviceName() const125 std::string Accesser::GetAccesserDeviceName() const
126 {
127 return accesserDeviceName_;
128 }
129
SetAccesserDeviceName(const std::string & accesserDeviceName)130 void Accesser::SetAccesserDeviceName(const std::string& accesserDeviceName)
131 {
132 accesserDeviceName_ = accesserDeviceName;
133 }
134
GetAccesserServiceName() const135 std::string Accesser::GetAccesserServiceName() const
136 {
137 return accesserServiceName_;
138 }
139
SetAccesserServiceName(const std::string & accesserServiceName)140 void Accesser::SetAccesserServiceName(const std::string& accesserServiceName)
141 {
142 accesserServiceName_ = accesserServiceName;
143 }
144
GetAccesserCredentialId() const145 int32_t Accesser::GetAccesserCredentialId() const
146 {
147 return accesserCredentialId_;
148 }
149
SetAccesserCredentialId(int32_t accesserCredentialId)150 void Accesser::SetAccesserCredentialId(int32_t accesserCredentialId)
151 {
152 accesserCredentialId_ = accesserCredentialId;
153 }
154
GetAccesserCredentialIdStr() const155 std::string Accesser::GetAccesserCredentialIdStr() const
156 {
157 return accesserCredentialIdStr_;
158 }
159
SetAccesserCredentialIdStr(const std::string & accesserCredentialIdStr)160 void Accesser::SetAccesserCredentialIdStr(const std::string& accesserCredentialIdStr)
161 {
162 accesserCredentialIdStr_ = accesserCredentialIdStr;
163 }
GetAccesserStatus() const164 int32_t Accesser::GetAccesserStatus() const
165 {
166 return accesserStatus_;
167 }
168
SetAccesserStatus(int32_t accesserStatus)169 void Accesser::SetAccesserStatus(int32_t accesserStatus)
170 {
171 accesserStatus_ = accesserStatus;
172 }
173
GetAccesserSessionKeyId() const174 int32_t Accesser::GetAccesserSessionKeyId() const
175 {
176 return accesserSessionKeyId_;
177 }
178
SetAccesserSessionKeyId(int32_t accesserSessionKeyId)179 void Accesser::SetAccesserSessionKeyId(int32_t accesserSessionKeyId)
180 {
181 accesserSessionKeyId_ = accesserSessionKeyId;
182 }
183
GetAccesserSKTimeStamp() const184 int64_t Accesser::GetAccesserSKTimeStamp() const
185 {
186 return accesserSKTimeStamp_;
187 }
188
SetAccesserSKTimeStamp(int64_t accesserSKTimeStamp)189 void Accesser::SetAccesserSKTimeStamp(int64_t accesserSKTimeStamp)
190 {
191 accesserSKTimeStamp_ = accesserSKTimeStamp;
192 }
193
GetAccesserExtraData() const194 std::string Accesser::GetAccesserExtraData() const
195 {
196 return accesserExtraData_;
197 }
198
SetAccesserExtraData(const std::string & accesserExtraData)199 void Accesser::SetAccesserExtraData(const std::string& accesserExtraData)
200 {
201 accesserExtraData_ = accesserExtraData;
202 }
203
Marshalling(MessageParcel & parcel) const204 bool Accesser::Marshalling(MessageParcel& parcel) const
205 {
206 WRITE_HELPER_RET(parcel, Int64, accesserId_, false);
207 WRITE_HELPER_RET(parcel, String, accesserDeviceId_, false);
208 WRITE_HELPER_RET(parcel, Int32, accesserUserId_, false);
209 WRITE_HELPER_RET(parcel, String, accesserAccountId_, false);
210 WRITE_HELPER_RET(parcel, Int64, accesserTokenId_, false);
211 WRITE_HELPER_RET(parcel, String, accesserBundleName_, false);
212 WRITE_HELPER_RET(parcel, String, accesserHapSignature_, false);
213 WRITE_HELPER_RET(parcel, Uint32, accesserBindLevel_, false);
214 WRITE_HELPER_RET(parcel, String, accesserDeviceName_, false);
215 WRITE_HELPER_RET(parcel, String, accesserServiceName_, false);
216 WRITE_HELPER_RET(parcel, Int32, accesserCredentialId_, false);
217 WRITE_HELPER_RET(parcel, String, accesserCredentialIdStr_, false);
218 WRITE_HELPER_RET(parcel, Int32, accesserStatus_, false);
219 WRITE_HELPER_RET(parcel, Int32, accesserSessionKeyId_, false);
220 WRITE_HELPER_RET(parcel, Int64, accesserSKTimeStamp_, false);
221 WRITE_HELPER_RET(parcel, String, accesserExtraData_, false);
222 return true;
223 }
224
UnMarshalling(MessageParcel & parcel)225 bool Accesser::UnMarshalling(MessageParcel& parcel)
226 {
227 READ_HELPER_RET(parcel, Int64, accesserId_, false);
228 READ_HELPER_RET(parcel, String, accesserDeviceId_, false);
229 READ_HELPER_RET(parcel, Int32, accesserUserId_, false);
230 READ_HELPER_RET(parcel, String, accesserAccountId_, false);
231 READ_HELPER_RET(parcel, Int64, accesserTokenId_, false);
232 READ_HELPER_RET(parcel, String, accesserBundleName_, false);
233 READ_HELPER_RET(parcel, String, accesserHapSignature_, false);
234 READ_HELPER_RET(parcel, Uint32, accesserBindLevel_, false);
235 READ_HELPER_RET(parcel, String, accesserDeviceName_, false);
236 READ_HELPER_RET(parcel, String, accesserServiceName_, false);
237 READ_HELPER_RET(parcel, Int32, accesserCredentialId_, false);
238 READ_HELPER_RET(parcel, String, accesserCredentialIdStr_, false);
239 READ_HELPER_RET(parcel, Int32, accesserStatus_, false);
240 READ_HELPER_RET(parcel, Int32, accesserSessionKeyId_, false);
241 READ_HELPER_RET(parcel, Int64, accesserSKTimeStamp_, false);
242 READ_HELPER_RET(parcel, String, accesserExtraData_, false);
243 return true;
244 }
245
dump() const246 std::string Accesser::dump() const
247 {
248 cJSON* json = cJSON_CreateObject();
249 if (!cJSON_IsObject(json)) {
250 cJSON_Delete(json);
251 return EMPTY_STRING;
252 }
253 cJSON_AddNumberToObject(json, ACCESSER_ID.c_str(), accesserId_);
254 cJSON_AddStringToObject(json, ACCESSER_DEVICE_ID.c_str(),
255 ProfileUtils::GetAnonyString(accesserDeviceId_).c_str());
256 cJSON_AddStringToObject(json, ACCESSER_USER_ID.c_str(),
257 ProfileUtils::GetAnonyString(std::to_string(accesserUserId_)).c_str());
258 cJSON_AddStringToObject(json, ACCESSER_ACCOUNT_ID.c_str(),
259 ProfileUtils::GetAnonyString(accesserAccountId_).c_str());
260 cJSON_AddNumberToObject(json, ACCESSER_TOKEN_ID.c_str(), accesserTokenId_);
261 cJSON_AddStringToObject(json, ACCESSER_BUNDLE_NAME.c_str(),
262 ProfileUtils::GetAnonyString(accesserBundleName_).c_str());
263 cJSON_AddStringToObject(json, ACCESSER_HAP_SIGNATURE.c_str(), accesserHapSignature_.c_str());
264 cJSON_AddNumberToObject(json, ACCESSER_BIND_LEVEL.c_str(), accesserBindLevel_);
265 cJSON_AddStringToObject(json, ACCESSER_DEVICE_NAME.c_str(),
266 ProfileUtils::GetAnonyString(accesserDeviceName_).c_str());
267 cJSON_AddStringToObject(json, ACCESSER_SERVICE_NAME.c_str(), accesserServiceName_.c_str());
268 cJSON_AddStringToObject(json, ACCESSER_CREDENTIAL_ID_STR.c_str(), accesserCredentialIdStr_.c_str());
269 cJSON_AddNumberToObject(json, ACCESSER_STATUS.c_str(), accesserStatus_);
270 cJSON_AddNumberToObject(json, ACCESSER_SESSION_KEY_ID.c_str(), accesserSessionKeyId_);
271 cJSON_AddNumberToObject(json, ACCESSER_SESSION_KEY_TIMESTAMP.c_str(), accesserSKTimeStamp_);
272 cJSON_AddStringToObject(json, ACCESSER_EXTRA_DATA.c_str(), accesserExtraData_.c_str());
273 char* jsonChars = cJSON_PrintUnformatted(json);
274 if (jsonChars == NULL) {
275 cJSON_Delete(json);
276 HILOGE("cJSON formatted to string failed!");
277 return EMPTY_STRING;
278 }
279 std::string jsonStr = jsonChars;
280 cJSON_Delete(json);
281 cJSON_free(jsonChars);
282 return jsonStr;
283 }
284 } // namespace DistributedDeviceProfile
285 } // namespace OHOS
286