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 "accesser.h" 17#include "cJSON.h" 18#include "distributed_device_profile_constants.h" 19#include "macro_utils.h" 20#include "profile_utils.h" 21 22namespace OHOS { 23namespace DistributedDeviceProfile { 24namespace { 25 const std::string TAG = "Accesser"; 26} 27Accesser::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{ 37} 38 39int64_t Accesser::GetAccesserId() 40{ 41 return accesserId_; 42} 43 44void Accesser::SetAccesserId(int64_t accesserId) 45{ 46 accesserId_ = accesserId; 47} 48 49std::string Accesser::GetAccesserDeviceId() const 50{ 51 return accesserDeviceId_; 52} 53 54void Accesser::SetAccesserDeviceId(const std::string& accesserDeviceId) 55{ 56 accesserDeviceId_ = accesserDeviceId; 57} 58 59int32_t Accesser::GetAccesserUserId() const 60{ 61 return accesserUserId_; 62} 63 64void Accesser::SetAccesserUserId(int32_t accesserUserId) 65{ 66 accesserUserId_ = accesserUserId; 67} 68 69std::string Accesser::GetAccesserAccountId() const 70{ 71 return accesserAccountId_; 72} 73 74void Accesser::SetAccesserAccountId(const std::string& accesserAccountId) 75{ 76 accesserAccountId_ = accesserAccountId; 77} 78 79int64_t Accesser::GetAccesserTokenId() const 80{ 81 return accesserTokenId_; 82} 83 84void Accesser::SetAccesserTokenId(int64_t accesserTokenId) 85{ 86 accesserTokenId_ = accesserTokenId; 87} 88 89std::string Accesser::GetAccesserBundleName() const 90{ 91 return accesserBundleName_; 92} 93 94void Accesser::SetAccesserBundleName(const std::string& accesserBundleName) 95{ 96 accesserBundleName_ = accesserBundleName; 97} 98 99std::string Accesser::GetAccesserHapSignature() const 100{ 101 return accesserHapSignature_; 102} 103 104void Accesser::SetAccesserHapSignature(const std::string& accesserHapSignature) 105{ 106 accesserHapSignature_ = accesserHapSignature; 107} 108 109uint32_t Accesser::GetAccesserBindLevel() const 110{ 111 return accesserBindLevel_; 112} 113 114void Accesser::SetAccesserBindLevel(uint32_t accesserBindLevel) 115{ 116 accesserBindLevel_ = accesserBindLevel; 117} 118 119bool Accesser::Marshalling(MessageParcel& parcel) const 120{ 121 WRITE_HELPER_RET(parcel, Int64, accesserId_, false); 122 WRITE_HELPER_RET(parcel, String, accesserDeviceId_, false); 123 WRITE_HELPER_RET(parcel, Int32, accesserUserId_, false); 124 WRITE_HELPER_RET(parcel, String, accesserAccountId_, false); 125 WRITE_HELPER_RET(parcel, Int64, accesserTokenId_, false); 126 WRITE_HELPER_RET(parcel, String, accesserBundleName_, false); 127 WRITE_HELPER_RET(parcel, String, accesserHapSignature_, false); 128 WRITE_HELPER_RET(parcel, Uint32, accesserBindLevel_, false); 129 return true; 130} 131 132bool Accesser::UnMarshalling(MessageParcel& parcel) 133{ 134 READ_HELPER_RET(parcel, Int64, accesserId_, false); 135 READ_HELPER_RET(parcel, String, accesserDeviceId_, false); 136 READ_HELPER_RET(parcel, Int32, accesserUserId_, false); 137 READ_HELPER_RET(parcel, String, accesserAccountId_, false); 138 READ_HELPER_RET(parcel, Int64, accesserTokenId_, false); 139 READ_HELPER_RET(parcel, String, accesserBundleName_, false); 140 READ_HELPER_RET(parcel, String, accesserHapSignature_, false); 141 READ_HELPER_RET(parcel, Uint32, accesserBindLevel_, false); 142 return true; 143} 144 145std::string Accesser::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, ACCESSER_ID.c_str(), accesserId_); 153 cJSON_AddStringToObject(json, ACCESSER_DEVICE_ID.c_str(), 154 ProfileUtils::GetAnonyString(accesserDeviceId_).c_str()); 155 cJSON_AddStringToObject(json, ACCESSER_USER_ID.c_str(), 156 ProfileUtils::GetAnonyString(std::to_string(accesserUserId_)).c_str()); 157 cJSON_AddStringToObject(json, ACCESSER_ACCOUNT_ID.c_str(), 158 ProfileUtils::GetAnonyString(accesserAccountId_).c_str()); 159 cJSON_AddNumberToObject(json, ACCESSER_TOKEN_ID.c_str(), accesserTokenId_); 160 cJSON_AddStringToObject(json, ACCESSER_BUNDLE_NAME.c_str(), accesserBundleName_.c_str()); 161 cJSON_AddStringToObject(json, ACCESSER_HAP_SIGNATURE.c_str(), accesserHapSignature_.c_str()); 162 cJSON_AddNumberToObject(json, ACCESSER_BIND_LEVEL.c_str(), accesserBindLevel_); 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