1f8af9c48Sopenharmony_ci/* 2f8af9c48Sopenharmony_ci * Copyright (c) 2023-2024 Huawei Device Co., Ltd. 3f8af9c48Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4f8af9c48Sopenharmony_ci * you may not use this file except in compliance with the License. 5f8af9c48Sopenharmony_ci * You may obtain a copy of the License at 6f8af9c48Sopenharmony_ci * 7f8af9c48Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8f8af9c48Sopenharmony_ci * 9f8af9c48Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10f8af9c48Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11f8af9c48Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12f8af9c48Sopenharmony_ci * See the License for the specific language governing permissions and 13f8af9c48Sopenharmony_ci * limitations under the License. 14f8af9c48Sopenharmony_ci */ 15f8af9c48Sopenharmony_ci 16f8af9c48Sopenharmony_ci#include "accesser.h" 17f8af9c48Sopenharmony_ci#include "cJSON.h" 18f8af9c48Sopenharmony_ci#include "distributed_device_profile_constants.h" 19f8af9c48Sopenharmony_ci#include "macro_utils.h" 20f8af9c48Sopenharmony_ci#include "profile_utils.h" 21f8af9c48Sopenharmony_ci 22f8af9c48Sopenharmony_cinamespace OHOS { 23f8af9c48Sopenharmony_cinamespace DistributedDeviceProfile { 24f8af9c48Sopenharmony_cinamespace { 25f8af9c48Sopenharmony_ci const std::string TAG = "Accesser"; 26f8af9c48Sopenharmony_ci} 27f8af9c48Sopenharmony_ciAccesser::Accesser() 28f8af9c48Sopenharmony_ci : accesserId_(0), 29f8af9c48Sopenharmony_ci accesserDeviceId_(""), 30f8af9c48Sopenharmony_ci accesserUserId_(-1), 31f8af9c48Sopenharmony_ci accesserAccountId_(""), 32f8af9c48Sopenharmony_ci accesserTokenId_(-1), 33f8af9c48Sopenharmony_ci accesserBundleName_(""), 34f8af9c48Sopenharmony_ci accesserHapSignature_(""), 35f8af9c48Sopenharmony_ci accesserBindLevel_(static_cast<uint32_t>(BindLevel::MIN)) 36f8af9c48Sopenharmony_ci{ 37f8af9c48Sopenharmony_ci} 38f8af9c48Sopenharmony_ci 39f8af9c48Sopenharmony_ciint64_t Accesser::GetAccesserId() 40f8af9c48Sopenharmony_ci{ 41f8af9c48Sopenharmony_ci return accesserId_; 42f8af9c48Sopenharmony_ci} 43f8af9c48Sopenharmony_ci 44f8af9c48Sopenharmony_civoid Accesser::SetAccesserId(int64_t accesserId) 45f8af9c48Sopenharmony_ci{ 46f8af9c48Sopenharmony_ci accesserId_ = accesserId; 47f8af9c48Sopenharmony_ci} 48f8af9c48Sopenharmony_ci 49f8af9c48Sopenharmony_cistd::string Accesser::GetAccesserDeviceId() const 50f8af9c48Sopenharmony_ci{ 51f8af9c48Sopenharmony_ci return accesserDeviceId_; 52f8af9c48Sopenharmony_ci} 53f8af9c48Sopenharmony_ci 54f8af9c48Sopenharmony_civoid Accesser::SetAccesserDeviceId(const std::string& accesserDeviceId) 55f8af9c48Sopenharmony_ci{ 56f8af9c48Sopenharmony_ci accesserDeviceId_ = accesserDeviceId; 57f8af9c48Sopenharmony_ci} 58f8af9c48Sopenharmony_ci 59f8af9c48Sopenharmony_ciint32_t Accesser::GetAccesserUserId() const 60f8af9c48Sopenharmony_ci{ 61f8af9c48Sopenharmony_ci return accesserUserId_; 62f8af9c48Sopenharmony_ci} 63f8af9c48Sopenharmony_ci 64f8af9c48Sopenharmony_civoid Accesser::SetAccesserUserId(int32_t accesserUserId) 65f8af9c48Sopenharmony_ci{ 66f8af9c48Sopenharmony_ci accesserUserId_ = accesserUserId; 67f8af9c48Sopenharmony_ci} 68f8af9c48Sopenharmony_ci 69f8af9c48Sopenharmony_cistd::string Accesser::GetAccesserAccountId() const 70f8af9c48Sopenharmony_ci{ 71f8af9c48Sopenharmony_ci return accesserAccountId_; 72f8af9c48Sopenharmony_ci} 73f8af9c48Sopenharmony_ci 74f8af9c48Sopenharmony_civoid Accesser::SetAccesserAccountId(const std::string& accesserAccountId) 75f8af9c48Sopenharmony_ci{ 76f8af9c48Sopenharmony_ci accesserAccountId_ = accesserAccountId; 77f8af9c48Sopenharmony_ci} 78f8af9c48Sopenharmony_ci 79f8af9c48Sopenharmony_ciint64_t Accesser::GetAccesserTokenId() const 80f8af9c48Sopenharmony_ci{ 81f8af9c48Sopenharmony_ci return accesserTokenId_; 82f8af9c48Sopenharmony_ci} 83f8af9c48Sopenharmony_ci 84f8af9c48Sopenharmony_civoid Accesser::SetAccesserTokenId(int64_t accesserTokenId) 85f8af9c48Sopenharmony_ci{ 86f8af9c48Sopenharmony_ci accesserTokenId_ = accesserTokenId; 87f8af9c48Sopenharmony_ci} 88f8af9c48Sopenharmony_ci 89f8af9c48Sopenharmony_cistd::string Accesser::GetAccesserBundleName() const 90f8af9c48Sopenharmony_ci{ 91f8af9c48Sopenharmony_ci return accesserBundleName_; 92f8af9c48Sopenharmony_ci} 93f8af9c48Sopenharmony_ci 94f8af9c48Sopenharmony_civoid Accesser::SetAccesserBundleName(const std::string& accesserBundleName) 95f8af9c48Sopenharmony_ci{ 96f8af9c48Sopenharmony_ci accesserBundleName_ = accesserBundleName; 97f8af9c48Sopenharmony_ci} 98f8af9c48Sopenharmony_ci 99f8af9c48Sopenharmony_cistd::string Accesser::GetAccesserHapSignature() const 100f8af9c48Sopenharmony_ci{ 101f8af9c48Sopenharmony_ci return accesserHapSignature_; 102f8af9c48Sopenharmony_ci} 103f8af9c48Sopenharmony_ci 104f8af9c48Sopenharmony_civoid Accesser::SetAccesserHapSignature(const std::string& accesserHapSignature) 105f8af9c48Sopenharmony_ci{ 106f8af9c48Sopenharmony_ci accesserHapSignature_ = accesserHapSignature; 107f8af9c48Sopenharmony_ci} 108f8af9c48Sopenharmony_ci 109f8af9c48Sopenharmony_ciuint32_t Accesser::GetAccesserBindLevel() const 110f8af9c48Sopenharmony_ci{ 111f8af9c48Sopenharmony_ci return accesserBindLevel_; 112f8af9c48Sopenharmony_ci} 113f8af9c48Sopenharmony_ci 114f8af9c48Sopenharmony_civoid Accesser::SetAccesserBindLevel(uint32_t accesserBindLevel) 115f8af9c48Sopenharmony_ci{ 116f8af9c48Sopenharmony_ci accesserBindLevel_ = accesserBindLevel; 117f8af9c48Sopenharmony_ci} 118f8af9c48Sopenharmony_ci 119f8af9c48Sopenharmony_cibool Accesser::Marshalling(MessageParcel& parcel) const 120f8af9c48Sopenharmony_ci{ 121f8af9c48Sopenharmony_ci WRITE_HELPER_RET(parcel, Int64, accesserId_, false); 122f8af9c48Sopenharmony_ci WRITE_HELPER_RET(parcel, String, accesserDeviceId_, false); 123f8af9c48Sopenharmony_ci WRITE_HELPER_RET(parcel, Int32, accesserUserId_, false); 124f8af9c48Sopenharmony_ci WRITE_HELPER_RET(parcel, String, accesserAccountId_, false); 125f8af9c48Sopenharmony_ci WRITE_HELPER_RET(parcel, Int64, accesserTokenId_, false); 126f8af9c48Sopenharmony_ci WRITE_HELPER_RET(parcel, String, accesserBundleName_, false); 127f8af9c48Sopenharmony_ci WRITE_HELPER_RET(parcel, String, accesserHapSignature_, false); 128f8af9c48Sopenharmony_ci WRITE_HELPER_RET(parcel, Uint32, accesserBindLevel_, false); 129f8af9c48Sopenharmony_ci return true; 130f8af9c48Sopenharmony_ci} 131f8af9c48Sopenharmony_ci 132f8af9c48Sopenharmony_cibool Accesser::UnMarshalling(MessageParcel& parcel) 133f8af9c48Sopenharmony_ci{ 134f8af9c48Sopenharmony_ci READ_HELPER_RET(parcel, Int64, accesserId_, false); 135f8af9c48Sopenharmony_ci READ_HELPER_RET(parcel, String, accesserDeviceId_, false); 136f8af9c48Sopenharmony_ci READ_HELPER_RET(parcel, Int32, accesserUserId_, false); 137f8af9c48Sopenharmony_ci READ_HELPER_RET(parcel, String, accesserAccountId_, false); 138f8af9c48Sopenharmony_ci READ_HELPER_RET(parcel, Int64, accesserTokenId_, false); 139f8af9c48Sopenharmony_ci READ_HELPER_RET(parcel, String, accesserBundleName_, false); 140f8af9c48Sopenharmony_ci READ_HELPER_RET(parcel, String, accesserHapSignature_, false); 141f8af9c48Sopenharmony_ci READ_HELPER_RET(parcel, Uint32, accesserBindLevel_, false); 142f8af9c48Sopenharmony_ci return true; 143f8af9c48Sopenharmony_ci} 144f8af9c48Sopenharmony_ci 145f8af9c48Sopenharmony_cistd::string Accesser::dump() const 146f8af9c48Sopenharmony_ci{ 147f8af9c48Sopenharmony_ci cJSON* json = cJSON_CreateObject(); 148f8af9c48Sopenharmony_ci if (!cJSON_IsObject(json)) { 149f8af9c48Sopenharmony_ci cJSON_Delete(json); 150f8af9c48Sopenharmony_ci return EMPTY_STRING; 151f8af9c48Sopenharmony_ci } 152f8af9c48Sopenharmony_ci cJSON_AddNumberToObject(json, ACCESSER_ID.c_str(), accesserId_); 153f8af9c48Sopenharmony_ci cJSON_AddStringToObject(json, ACCESSER_DEVICE_ID.c_str(), 154f8af9c48Sopenharmony_ci ProfileUtils::GetAnonyString(accesserDeviceId_).c_str()); 155f8af9c48Sopenharmony_ci cJSON_AddStringToObject(json, ACCESSER_USER_ID.c_str(), 156f8af9c48Sopenharmony_ci ProfileUtils::GetAnonyString(std::to_string(accesserUserId_)).c_str()); 157f8af9c48Sopenharmony_ci cJSON_AddStringToObject(json, ACCESSER_ACCOUNT_ID.c_str(), 158f8af9c48Sopenharmony_ci ProfileUtils::GetAnonyString(accesserAccountId_).c_str()); 159f8af9c48Sopenharmony_ci cJSON_AddNumberToObject(json, ACCESSER_TOKEN_ID.c_str(), accesserTokenId_); 160f8af9c48Sopenharmony_ci cJSON_AddStringToObject(json, ACCESSER_BUNDLE_NAME.c_str(), accesserBundleName_.c_str()); 161f8af9c48Sopenharmony_ci cJSON_AddStringToObject(json, ACCESSER_HAP_SIGNATURE.c_str(), accesserHapSignature_.c_str()); 162f8af9c48Sopenharmony_ci cJSON_AddNumberToObject(json, ACCESSER_BIND_LEVEL.c_str(), accesserBindLevel_); 163f8af9c48Sopenharmony_ci char* jsonChars = cJSON_PrintUnformatted(json); 164f8af9c48Sopenharmony_ci if (jsonChars == NULL) { 165f8af9c48Sopenharmony_ci cJSON_Delete(json); 166f8af9c48Sopenharmony_ci HILOGE("cJSON formatted to string failed!"); 167f8af9c48Sopenharmony_ci return EMPTY_STRING; 168f8af9c48Sopenharmony_ci } 169f8af9c48Sopenharmony_ci std::string jsonStr = jsonChars; 170f8af9c48Sopenharmony_ci cJSON_Delete(json); 171f8af9c48Sopenharmony_ci cJSON_free(jsonChars); 172f8af9c48Sopenharmony_ci return jsonStr; 173f8af9c48Sopenharmony_ci} 174f8af9c48Sopenharmony_ci} // namespace DistributedDeviceProfile 175f8af9c48Sopenharmony_ci} // namespace OHOS