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 "accessee.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 = "Accessee"; 26f8af9c48Sopenharmony_ci} 27f8af9c48Sopenharmony_ciAccessee::Accessee() 28f8af9c48Sopenharmony_ci : accesseeId_(0), 29f8af9c48Sopenharmony_ci accesseeDeviceId_(""), 30f8af9c48Sopenharmony_ci accesseeUserId_(-1), 31f8af9c48Sopenharmony_ci accesseeAccountId_(""), 32f8af9c48Sopenharmony_ci accesseeTokenId_(-1), 33f8af9c48Sopenharmony_ci accesseeBundleName_(""), 34f8af9c48Sopenharmony_ci accesseeHapSignature_(""), 35f8af9c48Sopenharmony_ci accesseeBindLevel_(static_cast<uint32_t>(BindLevel::MIN)) 36f8af9c48Sopenharmony_ci{ 37f8af9c48Sopenharmony_ci} 38f8af9c48Sopenharmony_ci 39f8af9c48Sopenharmony_ciint64_t Accessee::GetAccesseeId() 40f8af9c48Sopenharmony_ci{ 41f8af9c48Sopenharmony_ci return accesseeId_; 42f8af9c48Sopenharmony_ci} 43f8af9c48Sopenharmony_ci 44f8af9c48Sopenharmony_civoid Accessee::SetAccesseeId(int64_t accesseeId) 45f8af9c48Sopenharmony_ci{ 46f8af9c48Sopenharmony_ci accesseeId_ = accesseeId; 47f8af9c48Sopenharmony_ci} 48f8af9c48Sopenharmony_ci 49f8af9c48Sopenharmony_cistd::string Accessee::GetAccesseeDeviceId() const 50f8af9c48Sopenharmony_ci{ 51f8af9c48Sopenharmony_ci return accesseeDeviceId_; 52f8af9c48Sopenharmony_ci} 53f8af9c48Sopenharmony_ci 54f8af9c48Sopenharmony_civoid Accessee::SetAccesseeDeviceId(const std::string& accesseeDeviceId) 55f8af9c48Sopenharmony_ci{ 56f8af9c48Sopenharmony_ci accesseeDeviceId_ = accesseeDeviceId; 57f8af9c48Sopenharmony_ci} 58f8af9c48Sopenharmony_ci 59f8af9c48Sopenharmony_ciint32_t Accessee::GetAccesseeUserId() const 60f8af9c48Sopenharmony_ci{ 61f8af9c48Sopenharmony_ci return accesseeUserId_; 62f8af9c48Sopenharmony_ci} 63f8af9c48Sopenharmony_ci 64f8af9c48Sopenharmony_civoid Accessee::SetAccesseeUserId(int32_t accesseeUserId) 65f8af9c48Sopenharmony_ci{ 66f8af9c48Sopenharmony_ci accesseeUserId_ = accesseeUserId; 67f8af9c48Sopenharmony_ci} 68f8af9c48Sopenharmony_ci 69f8af9c48Sopenharmony_cistd::string Accessee::GetAccesseeAccountId() const 70f8af9c48Sopenharmony_ci{ 71f8af9c48Sopenharmony_ci return accesseeAccountId_; 72f8af9c48Sopenharmony_ci} 73f8af9c48Sopenharmony_ci 74f8af9c48Sopenharmony_civoid Accessee::SetAccesseeAccountId(const std::string& accesseeAccountId) 75f8af9c48Sopenharmony_ci{ 76f8af9c48Sopenharmony_ci accesseeAccountId_ = accesseeAccountId; 77f8af9c48Sopenharmony_ci} 78f8af9c48Sopenharmony_ci 79f8af9c48Sopenharmony_ciint64_t Accessee::GetAccesseeTokenId() const 80f8af9c48Sopenharmony_ci{ 81f8af9c48Sopenharmony_ci return accesseeTokenId_; 82f8af9c48Sopenharmony_ci} 83f8af9c48Sopenharmony_ci 84f8af9c48Sopenharmony_civoid Accessee::SetAccesseeTokenId(int64_t accesseeTokenId) 85f8af9c48Sopenharmony_ci{ 86f8af9c48Sopenharmony_ci accesseeTokenId_ = accesseeTokenId; 87f8af9c48Sopenharmony_ci} 88f8af9c48Sopenharmony_ci 89f8af9c48Sopenharmony_cistd::string Accessee::GetAccesseeBundleName() const 90f8af9c48Sopenharmony_ci{ 91f8af9c48Sopenharmony_ci return accesseeBundleName_; 92f8af9c48Sopenharmony_ci} 93f8af9c48Sopenharmony_ci 94f8af9c48Sopenharmony_civoid Accessee::SetAccesseeBundleName(const std::string& accesseeBundleName) 95f8af9c48Sopenharmony_ci{ 96f8af9c48Sopenharmony_ci accesseeBundleName_ = accesseeBundleName; 97f8af9c48Sopenharmony_ci} 98f8af9c48Sopenharmony_ci 99f8af9c48Sopenharmony_cistd::string Accessee::GetAccesseeHapSignature() const 100f8af9c48Sopenharmony_ci{ 101f8af9c48Sopenharmony_ci return accesseeHapSignature_; 102f8af9c48Sopenharmony_ci} 103f8af9c48Sopenharmony_ci 104f8af9c48Sopenharmony_civoid Accessee::SetAccesseeHapSignature(const std::string& accesseeHapSignature) 105f8af9c48Sopenharmony_ci{ 106f8af9c48Sopenharmony_ci accesseeHapSignature_ = accesseeHapSignature; 107f8af9c48Sopenharmony_ci} 108f8af9c48Sopenharmony_ci 109f8af9c48Sopenharmony_ciuint32_t Accessee::GetAccesseeBindLevel() const 110f8af9c48Sopenharmony_ci{ 111f8af9c48Sopenharmony_ci return accesseeBindLevel_; 112f8af9c48Sopenharmony_ci} 113f8af9c48Sopenharmony_ci 114f8af9c48Sopenharmony_civoid Accessee::SetAccesseeBindLevel(uint32_t accesseeBindLevel) 115f8af9c48Sopenharmony_ci{ 116f8af9c48Sopenharmony_ci accesseeBindLevel_ = accesseeBindLevel; 117f8af9c48Sopenharmony_ci} 118f8af9c48Sopenharmony_ci 119f8af9c48Sopenharmony_cibool Accessee::Marshalling(MessageParcel& parcel) const 120f8af9c48Sopenharmony_ci{ 121f8af9c48Sopenharmony_ci WRITE_HELPER_RET(parcel, Int64, accesseeId_, false); 122f8af9c48Sopenharmony_ci WRITE_HELPER_RET(parcel, String, accesseeDeviceId_, false); 123f8af9c48Sopenharmony_ci WRITE_HELPER_RET(parcel, Int32, accesseeUserId_, false); 124f8af9c48Sopenharmony_ci WRITE_HELPER_RET(parcel, String, accesseeAccountId_, false); 125f8af9c48Sopenharmony_ci WRITE_HELPER_RET(parcel, Int64, accesseeTokenId_, false); 126f8af9c48Sopenharmony_ci WRITE_HELPER_RET(parcel, String, accesseeBundleName_, false); 127f8af9c48Sopenharmony_ci WRITE_HELPER_RET(parcel, String, accesseeHapSignature_, false); 128f8af9c48Sopenharmony_ci WRITE_HELPER_RET(parcel, Uint32, accesseeBindLevel_, false); 129f8af9c48Sopenharmony_ci return true; 130f8af9c48Sopenharmony_ci} 131f8af9c48Sopenharmony_ci 132f8af9c48Sopenharmony_cibool Accessee::UnMarshalling(MessageParcel& parcel) 133f8af9c48Sopenharmony_ci{ 134f8af9c48Sopenharmony_ci READ_HELPER_RET(parcel, Int64, accesseeId_, false); 135f8af9c48Sopenharmony_ci READ_HELPER_RET(parcel, String, accesseeDeviceId_, false); 136f8af9c48Sopenharmony_ci READ_HELPER_RET(parcel, Int32, accesseeUserId_, false); 137f8af9c48Sopenharmony_ci READ_HELPER_RET(parcel, String, accesseeAccountId_, false); 138f8af9c48Sopenharmony_ci READ_HELPER_RET(parcel, Int64, accesseeTokenId_, false); 139f8af9c48Sopenharmony_ci READ_HELPER_RET(parcel, String, accesseeBundleName_, false); 140f8af9c48Sopenharmony_ci READ_HELPER_RET(parcel, String, accesseeHapSignature_, false); 141f8af9c48Sopenharmony_ci READ_HELPER_RET(parcel, Uint32, accesseeBindLevel_, false); 142f8af9c48Sopenharmony_ci return true; 143f8af9c48Sopenharmony_ci} 144f8af9c48Sopenharmony_ci 145f8af9c48Sopenharmony_cistd::string Accessee::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, ACCESSEE_ID.c_str(), accesseeId_); 153f8af9c48Sopenharmony_ci cJSON_AddStringToObject(json, ACCESSEE_DEVICE_ID.c_str(), 154f8af9c48Sopenharmony_ci ProfileUtils::GetAnonyString(accesseeDeviceId_).c_str()); 155f8af9c48Sopenharmony_ci cJSON_AddStringToObject(json, ACCESSEE_USER_ID.c_str(), 156f8af9c48Sopenharmony_ci ProfileUtils::GetAnonyString(std::to_string(accesseeUserId_)).c_str()); 157f8af9c48Sopenharmony_ci cJSON_AddStringToObject(json, ACCESSEE_ACCOUNT_ID.c_str(), 158f8af9c48Sopenharmony_ci ProfileUtils::GetAnonyString(accesseeAccountId_).c_str()); 159f8af9c48Sopenharmony_ci cJSON_AddNumberToObject(json, ACCESSEE_TOKEN_ID.c_str(), accesseeTokenId_); 160f8af9c48Sopenharmony_ci cJSON_AddStringToObject(json, ACCESSEE_BUNDLE_NAME.c_str(), accesseeBundleName_.c_str()); 161f8af9c48Sopenharmony_ci cJSON_AddStringToObject(json, ACCESSEE_HAP_SIGNATURE.c_str(), accesseeHapSignature_.c_str()); 162f8af9c48Sopenharmony_ci cJSON_AddNumberToObject(json, ACCESSEE_BIND_LEVEL.c_str(), accesseeBindLevel_); 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