1 /*
2 * Copyright (c) 2023-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 "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 {
37 }
38
GetAccesseeId()39 int64_t Accessee::GetAccesseeId()
40 {
41 return accesseeId_;
42 }
43
SetAccesseeId(int64_t accesseeId)44 void Accessee::SetAccesseeId(int64_t accesseeId)
45 {
46 accesseeId_ = accesseeId;
47 }
48
GetAccesseeDeviceId() const49 std::string Accessee::GetAccesseeDeviceId() const
50 {
51 return accesseeDeviceId_;
52 }
53
SetAccesseeDeviceId(const std::string & accesseeDeviceId)54 void Accessee::SetAccesseeDeviceId(const std::string& accesseeDeviceId)
55 {
56 accesseeDeviceId_ = accesseeDeviceId;
57 }
58
GetAccesseeUserId() const59 int32_t Accessee::GetAccesseeUserId() const
60 {
61 return accesseeUserId_;
62 }
63
SetAccesseeUserId(int32_t accesseeUserId)64 void Accessee::SetAccesseeUserId(int32_t accesseeUserId)
65 {
66 accesseeUserId_ = accesseeUserId;
67 }
68
GetAccesseeAccountId() const69 std::string Accessee::GetAccesseeAccountId() const
70 {
71 return accesseeAccountId_;
72 }
73
SetAccesseeAccountId(const std::string & accesseeAccountId)74 void Accessee::SetAccesseeAccountId(const std::string& accesseeAccountId)
75 {
76 accesseeAccountId_ = accesseeAccountId;
77 }
78
GetAccesseeTokenId() const79 int64_t Accessee::GetAccesseeTokenId() const
80 {
81 return accesseeTokenId_;
82 }
83
SetAccesseeTokenId(int64_t accesseeTokenId)84 void Accessee::SetAccesseeTokenId(int64_t accesseeTokenId)
85 {
86 accesseeTokenId_ = accesseeTokenId;
87 }
88
GetAccesseeBundleName() const89 std::string Accessee::GetAccesseeBundleName() const
90 {
91 return accesseeBundleName_;
92 }
93
SetAccesseeBundleName(const std::string & accesseeBundleName)94 void Accessee::SetAccesseeBundleName(const std::string& accesseeBundleName)
95 {
96 accesseeBundleName_ = accesseeBundleName;
97 }
98
GetAccesseeHapSignature() const99 std::string Accessee::GetAccesseeHapSignature() const
100 {
101 return accesseeHapSignature_;
102 }
103
SetAccesseeHapSignature(const std::string & accesseeHapSignature)104 void Accessee::SetAccesseeHapSignature(const std::string& accesseeHapSignature)
105 {
106 accesseeHapSignature_ = accesseeHapSignature;
107 }
108
GetAccesseeBindLevel() const109 uint32_t Accessee::GetAccesseeBindLevel() const
110 {
111 return accesseeBindLevel_;
112 }
113
SetAccesseeBindLevel(uint32_t accesseeBindLevel)114 void Accessee::SetAccesseeBindLevel(uint32_t accesseeBindLevel)
115 {
116 accesseeBindLevel_ = accesseeBindLevel;
117 }
118
Marshalling(MessageParcel & parcel) const119 bool Accessee::Marshalling(MessageParcel& parcel) const
120 {
121 WRITE_HELPER_RET(parcel, Int64, accesseeId_, false);
122 WRITE_HELPER_RET(parcel, String, accesseeDeviceId_, false);
123 WRITE_HELPER_RET(parcel, Int32, accesseeUserId_, false);
124 WRITE_HELPER_RET(parcel, String, accesseeAccountId_, false);
125 WRITE_HELPER_RET(parcel, Int64, accesseeTokenId_, false);
126 WRITE_HELPER_RET(parcel, String, accesseeBundleName_, false);
127 WRITE_HELPER_RET(parcel, String, accesseeHapSignature_, false);
128 WRITE_HELPER_RET(parcel, Uint32, accesseeBindLevel_, false);
129 return true;
130 }
131
UnMarshalling(MessageParcel & parcel)132 bool Accessee::UnMarshalling(MessageParcel& parcel)
133 {
134 READ_HELPER_RET(parcel, Int64, accesseeId_, false);
135 READ_HELPER_RET(parcel, String, accesseeDeviceId_, false);
136 READ_HELPER_RET(parcel, Int32, accesseeUserId_, false);
137 READ_HELPER_RET(parcel, String, accesseeAccountId_, false);
138 READ_HELPER_RET(parcel, Int64, accesseeTokenId_, false);
139 READ_HELPER_RET(parcel, String, accesseeBundleName_, false);
140 READ_HELPER_RET(parcel, String, accesseeHapSignature_, false);
141 READ_HELPER_RET(parcel, Uint32, accesseeBindLevel_, false);
142 return true;
143 }
144
dump() const145 std::string Accessee::dump() const
146 {
147 cJSON* json = cJSON_CreateObject();
148 if (!cJSON_IsObject(json)) {
149 cJSON_Delete(json);
150 return EMPTY_STRING;
151 }
152 cJSON_AddNumberToObject(json, ACCESSEE_ID.c_str(), accesseeId_);
153 cJSON_AddStringToObject(json, ACCESSEE_DEVICE_ID.c_str(),
154 ProfileUtils::GetAnonyString(accesseeDeviceId_).c_str());
155 cJSON_AddStringToObject(json, ACCESSEE_USER_ID.c_str(),
156 ProfileUtils::GetAnonyString(std::to_string(accesseeUserId_)).c_str());
157 cJSON_AddStringToObject(json, ACCESSEE_ACCOUNT_ID.c_str(),
158 ProfileUtils::GetAnonyString(accesseeAccountId_).c_str());
159 cJSON_AddNumberToObject(json, ACCESSEE_TOKEN_ID.c_str(), accesseeTokenId_);
160 cJSON_AddStringToObject(json, ACCESSEE_BUNDLE_NAME.c_str(), accesseeBundleName_.c_str());
161 cJSON_AddStringToObject(json, ACCESSEE_HAP_SIGNATURE.c_str(), accesseeHapSignature_.c_str());
162 cJSON_AddNumberToObject(json, ACCESSEE_BIND_LEVEL.c_str(), accesseeBindLevel_);
163 char* jsonChars = cJSON_PrintUnformatted(json);
164 if (jsonChars == NULL) {
165 cJSON_Delete(json);
166 HILOGE("cJSON formatted to string failed!");
167 return EMPTY_STRING;
168 }
169 std::string jsonStr = jsonChars;
170 cJSON_Delete(json);
171 cJSON_free(jsonChars);
172 return jsonStr;
173 }
174 } // namespace DistributedDeviceProfile
175 } // namespace OHOS