1e0e9324cSopenharmony_ci/* 2e0e9324cSopenharmony_ci * Copyright (c) 2023 Shenzhen Kaihong Digital Industry Development Co., Ltd. 3e0e9324cSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4e0e9324cSopenharmony_ci * you may not use this file except in compliance with the License. 5e0e9324cSopenharmony_ci * You may obtain a copy of the License at 6e0e9324cSopenharmony_ci * 7e0e9324cSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8e0e9324cSopenharmony_ci * 9e0e9324cSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10e0e9324cSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11e0e9324cSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12e0e9324cSopenharmony_ci * See the License for the specific language governing permissions and 13e0e9324cSopenharmony_ci * limitations under the License. 14e0e9324cSopenharmony_ci */ 15e0e9324cSopenharmony_ci 16e0e9324cSopenharmony_ci#include "sharing_data.h" 17e0e9324cSopenharmony_ci#include "common/media_log.h" 18e0e9324cSopenharmony_ci 19e0e9324cSopenharmony_cinamespace OHOS { 20e0e9324cSopenharmony_cinamespace Sharing { 21e0e9324cSopenharmony_cibool SharingValue::IsInt32() 22e0e9324cSopenharmony_ci{ 23e0e9324cSopenharmony_ci SHARING_LOGD("trace."); 24e0e9324cSopenharmony_ci if (data_.index() == static_cast<std::size_t>(SharingIndex::VALUE_INDEX_INT32)) { 25e0e9324cSopenharmony_ci return true; 26e0e9324cSopenharmony_ci } 27e0e9324cSopenharmony_ci 28e0e9324cSopenharmony_ci return false; 29e0e9324cSopenharmony_ci} 30e0e9324cSopenharmony_ci 31e0e9324cSopenharmony_cibool SharingValue::IsBool() 32e0e9324cSopenharmony_ci{ 33e0e9324cSopenharmony_ci SHARING_LOGD("trace."); 34e0e9324cSopenharmony_ci if (data_.index() == static_cast<std::size_t>(SharingIndex::VALUE_INDEX_BOOL)) { 35e0e9324cSopenharmony_ci return true; 36e0e9324cSopenharmony_ci } 37e0e9324cSopenharmony_ci 38e0e9324cSopenharmony_ci return false; 39e0e9324cSopenharmony_ci} 40e0e9324cSopenharmony_ci 41e0e9324cSopenharmony_cibool SharingValue::IsString() 42e0e9324cSopenharmony_ci{ 43e0e9324cSopenharmony_ci SHARING_LOGD("trace."); 44e0e9324cSopenharmony_ci if (data_.index() == static_cast<std::size_t>(SharingIndex::VALUE_INDEX_STRING)) { 45e0e9324cSopenharmony_ci return true; 46e0e9324cSopenharmony_ci } 47e0e9324cSopenharmony_ci 48e0e9324cSopenharmony_ci return false; 49e0e9324cSopenharmony_ci} 50e0e9324cSopenharmony_ci 51e0e9324cSopenharmony_cibool SharingValue::IsVector() 52e0e9324cSopenharmony_ci{ 53e0e9324cSopenharmony_ci SHARING_LOGD("trace."); 54e0e9324cSopenharmony_ci if (data_.index() == static_cast<std::size_t>(SharingIndex::VALUE_INDEX_VECTOR)) { 55e0e9324cSopenharmony_ci return true; 56e0e9324cSopenharmony_ci } 57e0e9324cSopenharmony_ci 58e0e9324cSopenharmony_ci return false; 59e0e9324cSopenharmony_ci} 60e0e9324cSopenharmony_ci 61e0e9324cSopenharmony_civoid SharingValue::Print() 62e0e9324cSopenharmony_ci{ 63e0e9324cSopenharmony_ci SHARING_LOGD("trace."); 64e0e9324cSopenharmony_ci if (IsInt32()) { 65e0e9324cSopenharmony_ci int32_t value = 0; 66e0e9324cSopenharmony_ci GetValue(value); 67e0e9324cSopenharmony_ci SHARING_LOGD("print %{public}d.", value); 68e0e9324cSopenharmony_ci } else if (IsBool()) { 69e0e9324cSopenharmony_ci bool value = 0; 70e0e9324cSopenharmony_ci GetValue(value); 71e0e9324cSopenharmony_ci SHARING_LOGD("print %{public}d.", value); 72e0e9324cSopenharmony_ci } else if (IsString()) { 73e0e9324cSopenharmony_ci std::string value(""); 74e0e9324cSopenharmony_ci GetValue(value); 75e0e9324cSopenharmony_ci SHARING_LOGD("print %{public}s.", value.c_str()); 76e0e9324cSopenharmony_ci } else if (IsVector()) { 77e0e9324cSopenharmony_ci std::vector<int32_t> value{}; 78e0e9324cSopenharmony_ci GetValue(value); 79e0e9324cSopenharmony_ci for (auto &item : value) { 80e0e9324cSopenharmony_ci SHARING_LOGD("print %{public}d.", item); 81e0e9324cSopenharmony_ci } 82e0e9324cSopenharmony_ci } 83e0e9324cSopenharmony_ci} 84e0e9324cSopenharmony_ci 85e0e9324cSopenharmony_ciint32_t SharingDataGroupByTag::PutSharingValue(const std::string &key, const SharingValue::Ptr value) 86e0e9324cSopenharmony_ci{ 87e0e9324cSopenharmony_ci SHARING_LOGD("trace."); 88e0e9324cSopenharmony_ci auto iter = datas_.find(key); 89e0e9324cSopenharmony_ci if (iter == datas_.end()) { 90e0e9324cSopenharmony_ci datas_.emplace(key, value); 91e0e9324cSopenharmony_ci } else { 92e0e9324cSopenharmony_ci iter->second = value; 93e0e9324cSopenharmony_ci } 94e0e9324cSopenharmony_ci 95e0e9324cSopenharmony_ci return CONFIGURE_ERROR_NONE; 96e0e9324cSopenharmony_ci} 97e0e9324cSopenharmony_ci 98e0e9324cSopenharmony_ciint32_t SharingDataGroupByTag::PutSharingValues(const std::unordered_map<std::string, SharingValue::Ptr> &values) 99e0e9324cSopenharmony_ci{ 100e0e9324cSopenharmony_ci SHARING_LOGD("trace."); 101e0e9324cSopenharmony_ci datas_ = values; 102e0e9324cSopenharmony_ci return CONFIGURE_ERROR_NONE; 103e0e9324cSopenharmony_ci} 104e0e9324cSopenharmony_ci 105e0e9324cSopenharmony_ciSharingValue::Ptr SharingDataGroupByTag::GetSharingValue(const std::string &key) 106e0e9324cSopenharmony_ci{ 107e0e9324cSopenharmony_ci SHARING_LOGD("trace."); 108e0e9324cSopenharmony_ci SharingValue::Ptr value = nullptr; 109e0e9324cSopenharmony_ci auto iter = datas_.find(key); 110e0e9324cSopenharmony_ci if (iter != datas_.end()) { 111e0e9324cSopenharmony_ci value = iter->second; 112e0e9324cSopenharmony_ci } 113e0e9324cSopenharmony_ci 114e0e9324cSopenharmony_ci return value; 115e0e9324cSopenharmony_ci} 116e0e9324cSopenharmony_ci 117e0e9324cSopenharmony_ciint32_t SharingDataGroupByTag::GetSharingValues(std::unordered_map<std::string, SharingValue::Ptr> &values) 118e0e9324cSopenharmony_ci{ 119e0e9324cSopenharmony_ci SHARING_LOGD("trace."); 120e0e9324cSopenharmony_ci values = datas_; 121e0e9324cSopenharmony_ci return CONFIGURE_ERROR_NONE; 122e0e9324cSopenharmony_ci} 123e0e9324cSopenharmony_ci 124e0e9324cSopenharmony_cibool SharingDataGroupByTag::HasKey(const std::string &key) 125e0e9324cSopenharmony_ci{ 126e0e9324cSopenharmony_ci SHARING_LOGD("trace."); 127e0e9324cSopenharmony_ci return datas_.find(key) != datas_.end(); 128e0e9324cSopenharmony_ci} 129e0e9324cSopenharmony_ci 130e0e9324cSopenharmony_civoid SharingDataGroupByTag::ForEach(Each each) 131e0e9324cSopenharmony_ci{ 132e0e9324cSopenharmony_ci SHARING_LOGD("trace."); 133e0e9324cSopenharmony_ci auto iter = datas_.begin(); 134e0e9324cSopenharmony_ci while (iter != datas_.end()) { 135e0e9324cSopenharmony_ci std::string key = iter->first; 136e0e9324cSopenharmony_ci each(key, iter->second); 137e0e9324cSopenharmony_ci iter++; 138e0e9324cSopenharmony_ci } 139e0e9324cSopenharmony_ci} 140e0e9324cSopenharmony_ci 141e0e9324cSopenharmony_civoid SharingDataGroupByTag::Print() 142e0e9324cSopenharmony_ci{ 143e0e9324cSopenharmony_ci SHARING_LOGD("trace."); 144e0e9324cSopenharmony_ci auto iter = datas_.begin(); 145e0e9324cSopenharmony_ci while (iter != datas_.end()) { 146e0e9324cSopenharmony_ci std::string key = iter->first; 147e0e9324cSopenharmony_ci SharingValue::Ptr value = iter->second; 148e0e9324cSopenharmony_ci value->Print(); 149e0e9324cSopenharmony_ci iter++; 150e0e9324cSopenharmony_ci } 151e0e9324cSopenharmony_ci} 152e0e9324cSopenharmony_ci 153e0e9324cSopenharmony_ciint32_t SharingDataGroupByModule::PutSharingValue(const std::string &tag, const std::string &key, 154e0e9324cSopenharmony_ci const SharingValue::Ptr value) 155e0e9324cSopenharmony_ci{ 156e0e9324cSopenharmony_ci SHARING_LOGD("trace."); 157e0e9324cSopenharmony_ci auto iter = datass_.find(tag); 158e0e9324cSopenharmony_ci if (iter == datass_.end()) { 159e0e9324cSopenharmony_ci auto grpData = std::make_shared<SharingDataGroupByTag>(tag); 160e0e9324cSopenharmony_ci if (grpData == nullptr) { 161e0e9324cSopenharmony_ci SHARING_LOGE("CONFIGURE_ERROR_NOT_FIND."); 162e0e9324cSopenharmony_ci return CONFIGURE_ERROR_NOT_FIND; 163e0e9324cSopenharmony_ci } 164e0e9324cSopenharmony_ci grpData->PutSharingValue(key, value); 165e0e9324cSopenharmony_ci datass_.emplace(std::make_pair(tag, grpData)); 166e0e9324cSopenharmony_ci return CONFIGURE_ERROR_NONE; 167e0e9324cSopenharmony_ci } 168e0e9324cSopenharmony_ci 169e0e9324cSopenharmony_ci return iter->second->PutSharingValue(key, value); 170e0e9324cSopenharmony_ci} 171e0e9324cSopenharmony_ci 172e0e9324cSopenharmony_ciint32_t SharingDataGroupByModule::PutSharingValues(const std::string &tag, 173e0e9324cSopenharmony_ci const std::unordered_map<std::string, SharingValue::Ptr> &values) 174e0e9324cSopenharmony_ci{ 175e0e9324cSopenharmony_ci SHARING_LOGD("trace."); 176e0e9324cSopenharmony_ci auto iter = datass_.find(tag); 177e0e9324cSopenharmony_ci if (iter == datass_.end()) { 178e0e9324cSopenharmony_ci auto grpData = std::make_shared<SharingDataGroupByTag>(tag); 179e0e9324cSopenharmony_ci if (grpData == nullptr) { 180e0e9324cSopenharmony_ci SHARING_LOGE("CONFIGURE_ERROR_NOT_FIND."); 181e0e9324cSopenharmony_ci return CONFIGURE_ERROR_NOT_FIND; 182e0e9324cSopenharmony_ci } 183e0e9324cSopenharmony_ci grpData->PutSharingValues(values); 184e0e9324cSopenharmony_ci datass_.emplace(std::make_pair(tag, grpData)); 185e0e9324cSopenharmony_ci return CONFIGURE_ERROR_NONE; 186e0e9324cSopenharmony_ci } 187e0e9324cSopenharmony_ci 188e0e9324cSopenharmony_ci return iter->second->PutSharingValues(values); 189e0e9324cSopenharmony_ci} 190e0e9324cSopenharmony_ci 191e0e9324cSopenharmony_ciint32_t SharingDataGroupByModule::PutSharingValues(const std::string &tag, const SharingDataGroupByTag::Ptr &value) 192e0e9324cSopenharmony_ci{ 193e0e9324cSopenharmony_ci SHARING_LOGD("trace."); 194e0e9324cSopenharmony_ci auto iter = datass_.find(tag); 195e0e9324cSopenharmony_ci if (iter == datass_.end()) { 196e0e9324cSopenharmony_ci datass_.emplace(std::make_pair(tag, value)); 197e0e9324cSopenharmony_ci return CONFIGURE_ERROR_NONE; 198e0e9324cSopenharmony_ci } 199e0e9324cSopenharmony_ci 200e0e9324cSopenharmony_ci iter->second = value; 201e0e9324cSopenharmony_ci return CONFIGURE_ERROR_NONE; 202e0e9324cSopenharmony_ci} 203e0e9324cSopenharmony_ci 204e0e9324cSopenharmony_ciSharingValue::Ptr SharingDataGroupByModule::GetSharingValue(const std::string &tag, const std::string &key) 205e0e9324cSopenharmony_ci{ 206e0e9324cSopenharmony_ci SHARING_LOGD("trace."); 207e0e9324cSopenharmony_ci auto iter = datass_.find(tag); 208e0e9324cSopenharmony_ci if (iter == datass_.end()) { 209e0e9324cSopenharmony_ci SHARING_LOGE("nullptr."); 210e0e9324cSopenharmony_ci return nullptr; 211e0e9324cSopenharmony_ci } 212e0e9324cSopenharmony_ci 213e0e9324cSopenharmony_ci return iter->second->GetSharingValue(key); 214e0e9324cSopenharmony_ci} 215e0e9324cSopenharmony_ci 216e0e9324cSopenharmony_ciint32_t SharingDataGroupByModule::GetSharingValues(const std::string &tag, 217e0e9324cSopenharmony_ci std::unordered_map<std::string, SharingValue::Ptr> &values) 218e0e9324cSopenharmony_ci{ 219e0e9324cSopenharmony_ci SHARING_LOGD("trace."); 220e0e9324cSopenharmony_ci auto iter = datass_.find(tag); 221e0e9324cSopenharmony_ci if (iter == datass_.end()) { 222e0e9324cSopenharmony_ci SHARING_LOGE("CONFIGURE_ERROR_NOT_FIND."); 223e0e9324cSopenharmony_ci return CONFIGURE_ERROR_NOT_FIND; 224e0e9324cSopenharmony_ci } 225e0e9324cSopenharmony_ci 226e0e9324cSopenharmony_ci return iter->second->GetSharingValues(values); 227e0e9324cSopenharmony_ci} 228e0e9324cSopenharmony_ci 229e0e9324cSopenharmony_ciint32_t SharingDataGroupByModule::GetSharingValues(const std::string &tag, SharingDataGroupByTag::Ptr &value) 230e0e9324cSopenharmony_ci{ 231e0e9324cSopenharmony_ci SHARING_LOGD("trace."); 232e0e9324cSopenharmony_ci auto iter = datass_.find(tag); 233e0e9324cSopenharmony_ci if (iter == datass_.end()) { 234e0e9324cSopenharmony_ci SHARING_LOGE("CONFIGURE_ERROR_NOT_FIND."); 235e0e9324cSopenharmony_ci return CONFIGURE_ERROR_NOT_FIND; 236e0e9324cSopenharmony_ci } 237e0e9324cSopenharmony_ci 238e0e9324cSopenharmony_ci value = iter->second; 239e0e9324cSopenharmony_ci return CONFIGURE_ERROR_NONE; 240e0e9324cSopenharmony_ci} 241e0e9324cSopenharmony_ci 242e0e9324cSopenharmony_cibool SharingDataGroupByModule::HasKey(const std::string &tag, const std::string &key) 243e0e9324cSopenharmony_ci{ 244e0e9324cSopenharmony_ci SHARING_LOGD("trace."); 245e0e9324cSopenharmony_ci auto iter = datass_.find(tag); 246e0e9324cSopenharmony_ci if (iter == datass_.end()) { 247e0e9324cSopenharmony_ci return false; 248e0e9324cSopenharmony_ci } 249e0e9324cSopenharmony_ci 250e0e9324cSopenharmony_ci return iter->second->HasKey(key); 251e0e9324cSopenharmony_ci} 252e0e9324cSopenharmony_ci 253e0e9324cSopenharmony_cibool SharingDataGroupByModule::HasTag(const std::string &tag) 254e0e9324cSopenharmony_ci{ 255e0e9324cSopenharmony_ci SHARING_LOGD("trace."); 256e0e9324cSopenharmony_ci return datass_.find(tag) != datass_.end(); 257e0e9324cSopenharmony_ci} 258e0e9324cSopenharmony_ci 259e0e9324cSopenharmony_civoid SharingDataGroupByModule::ForEach(Each each) 260e0e9324cSopenharmony_ci{ 261e0e9324cSopenharmony_ci SHARING_LOGD("trace."); 262e0e9324cSopenharmony_ci auto iter = datass_.begin(); 263e0e9324cSopenharmony_ci while (iter != datass_.end()) { 264e0e9324cSopenharmony_ci std::string key = iter->first; 265e0e9324cSopenharmony_ci each(key, iter->second); 266e0e9324cSopenharmony_ci iter++; 267e0e9324cSopenharmony_ci } 268e0e9324cSopenharmony_ci} 269e0e9324cSopenharmony_ci 270e0e9324cSopenharmony_civoid SharingDataGroupByModule::Print() 271e0e9324cSopenharmony_ci{ 272e0e9324cSopenharmony_ci SHARING_LOGD("trace."); 273e0e9324cSopenharmony_ci auto iter = datass_.begin(); 274e0e9324cSopenharmony_ci while (iter != datass_.end()) { 275e0e9324cSopenharmony_ci SHARING_LOGD("forEach print %{public}s.", iter->first.c_str()); 276e0e9324cSopenharmony_ci SharingDataGroupByTag::Ptr value = iter->second; 277e0e9324cSopenharmony_ci value->Print(); 278e0e9324cSopenharmony_ci iter++; 279e0e9324cSopenharmony_ci } 280e0e9324cSopenharmony_ci} 281e0e9324cSopenharmony_ci 282e0e9324cSopenharmony_ciint32_t SharingData::PutSharingValue(const std::string &key, const SharingValue::Ptr value, const std::string &module, 283e0e9324cSopenharmony_ci const std::string &tag) 284e0e9324cSopenharmony_ci{ 285e0e9324cSopenharmony_ci SHARING_LOGD("trace."); 286e0e9324cSopenharmony_ci auto iter = datass_.find(module); 287e0e9324cSopenharmony_ci if (iter == datass_.end()) { 288e0e9324cSopenharmony_ci auto moduleData = std::make_shared<SharingDataGroupByModule>(module); 289e0e9324cSopenharmony_ci if (moduleData == nullptr) { 290e0e9324cSopenharmony_ci SHARING_LOGE("CONFIGURE_ERROR_NOT_FIND."); 291e0e9324cSopenharmony_ci return CONFIGURE_ERROR_NOT_FIND; 292e0e9324cSopenharmony_ci } 293e0e9324cSopenharmony_ci moduleData->PutSharingValue(tag, key, value); 294e0e9324cSopenharmony_ci datass_.emplace(std::make_pair(module, moduleData)); 295e0e9324cSopenharmony_ci return CONFIGURE_ERROR_NONE; 296e0e9324cSopenharmony_ci } 297e0e9324cSopenharmony_ci 298e0e9324cSopenharmony_ci return iter->second->PutSharingValue(tag, key, value); 299e0e9324cSopenharmony_ci} 300e0e9324cSopenharmony_ciint32_t SharingData::PutSharingValues(const SharingDataGroupByModule::Ptr &values, const std::string &module) 301e0e9324cSopenharmony_ci{ 302e0e9324cSopenharmony_ci SHARING_LOGD("trace."); 303e0e9324cSopenharmony_ci auto iter = datass_.find(module); 304e0e9324cSopenharmony_ci if (iter == datass_.end()) { 305e0e9324cSopenharmony_ci datass_.emplace(std::make_pair(module, values)); 306e0e9324cSopenharmony_ci return CONFIGURE_ERROR_NONE; 307e0e9324cSopenharmony_ci } 308e0e9324cSopenharmony_ci 309e0e9324cSopenharmony_ci iter->second = values; 310e0e9324cSopenharmony_ci return CONFIGURE_ERROR_NONE; 311e0e9324cSopenharmony_ci} 312e0e9324cSopenharmony_ci 313e0e9324cSopenharmony_ciint32_t SharingData::PutSharingValues(const std::unordered_map<std::string, SharingValue::Ptr> &values, 314e0e9324cSopenharmony_ci const std::string &module, const std::string &tag) 315e0e9324cSopenharmony_ci{ 316e0e9324cSopenharmony_ci SHARING_LOGD("trace."); 317e0e9324cSopenharmony_ci auto iter = datass_.find(module); 318e0e9324cSopenharmony_ci if (iter == datass_.end()) { 319e0e9324cSopenharmony_ci auto moduleData = std::make_shared<SharingDataGroupByModule>(module); 320e0e9324cSopenharmony_ci if (moduleData == nullptr) { 321e0e9324cSopenharmony_ci SHARING_LOGE("CONFIGURE_ERROR_NOT_FIND."); 322e0e9324cSopenharmony_ci return CONFIGURE_ERROR_NOT_FIND; 323e0e9324cSopenharmony_ci } 324e0e9324cSopenharmony_ci moduleData->PutSharingValues(tag, values); 325e0e9324cSopenharmony_ci datass_.emplace(std::make_pair(module, moduleData)); 326e0e9324cSopenharmony_ci return CONFIGURE_ERROR_NONE; 327e0e9324cSopenharmony_ci } 328e0e9324cSopenharmony_ci 329e0e9324cSopenharmony_ci return iter->second->PutSharingValues(tag, values); 330e0e9324cSopenharmony_ci} 331e0e9324cSopenharmony_ci 332e0e9324cSopenharmony_ciSharingValue::Ptr SharingData::GetSharingValue(const std::string &key, const std::string &module, 333e0e9324cSopenharmony_ci const std::string &tag) 334e0e9324cSopenharmony_ci{ 335e0e9324cSopenharmony_ci SHARING_LOGD("trace."); 336e0e9324cSopenharmony_ci auto iter = datass_.find(module); 337e0e9324cSopenharmony_ci if (iter == datass_.end()) { 338e0e9324cSopenharmony_ci return nullptr; 339e0e9324cSopenharmony_ci } 340e0e9324cSopenharmony_ci 341e0e9324cSopenharmony_ci return iter->second->GetSharingValue(tag, key); 342e0e9324cSopenharmony_ci} 343e0e9324cSopenharmony_ci 344e0e9324cSopenharmony_ciint32_t SharingData::GetSharingValues(SharingDataGroupByModule::Ptr &values, const std::string &module) 345e0e9324cSopenharmony_ci{ 346e0e9324cSopenharmony_ci SHARING_LOGD("trace."); 347e0e9324cSopenharmony_ci auto iter = datass_.find(module); 348e0e9324cSopenharmony_ci if (iter == datass_.end()) { 349e0e9324cSopenharmony_ci return CONFIGURE_ERROR_NOT_FIND; 350e0e9324cSopenharmony_ci } 351e0e9324cSopenharmony_ci 352e0e9324cSopenharmony_ci values = iter->second; 353e0e9324cSopenharmony_ci return CONFIGURE_ERROR_NONE; 354e0e9324cSopenharmony_ci} 355e0e9324cSopenharmony_ci 356e0e9324cSopenharmony_ciint32_t SharingData::GetSharingValues(std::unordered_map<std::string, SharingValue::Ptr> &values, 357e0e9324cSopenharmony_ci const std::string &module, const std::string &tag) 358e0e9324cSopenharmony_ci{ 359e0e9324cSopenharmony_ci SHARING_LOGD("trace."); 360e0e9324cSopenharmony_ci auto iter = datass_.find(module); 361e0e9324cSopenharmony_ci if (iter == datass_.end()) { 362e0e9324cSopenharmony_ci return CONFIGURE_ERROR_NOT_FIND; 363e0e9324cSopenharmony_ci } 364e0e9324cSopenharmony_ci 365e0e9324cSopenharmony_ci return iter->second->GetSharingValues(tag, values); 366e0e9324cSopenharmony_ci} 367e0e9324cSopenharmony_ci 368e0e9324cSopenharmony_ciint32_t SharingData::GetSharingValues(SharingDataGroupByTag::Ptr &value, const std::string &module, 369e0e9324cSopenharmony_ci const std::string &tag) 370e0e9324cSopenharmony_ci{ 371e0e9324cSopenharmony_ci SHARING_LOGD("trace."); 372e0e9324cSopenharmony_ci auto iter = datass_.find(module); 373e0e9324cSopenharmony_ci if (iter == datass_.end()) { 374e0e9324cSopenharmony_ci return CONFIGURE_ERROR_NOT_FIND; 375e0e9324cSopenharmony_ci } 376e0e9324cSopenharmony_ci 377e0e9324cSopenharmony_ci return iter->second->GetSharingValues(tag, value); 378e0e9324cSopenharmony_ci} 379e0e9324cSopenharmony_ci 380e0e9324cSopenharmony_cibool SharingData::HasKey(const std::string &key, const std::string &module, const std::string &tag) 381e0e9324cSopenharmony_ci{ 382e0e9324cSopenharmony_ci SHARING_LOGD("trace."); 383e0e9324cSopenharmony_ci auto iter = datass_.find(module); 384e0e9324cSopenharmony_ci if (iter == datass_.end()) { 385e0e9324cSopenharmony_ci return false; 386e0e9324cSopenharmony_ci } 387e0e9324cSopenharmony_ci 388e0e9324cSopenharmony_ci return iter->second->HasKey(tag, key); 389e0e9324cSopenharmony_ci} 390e0e9324cSopenharmony_ci 391e0e9324cSopenharmony_cibool SharingData::HasModule(const std::string &module) 392e0e9324cSopenharmony_ci{ 393e0e9324cSopenharmony_ci SHARING_LOGD("trace."); 394e0e9324cSopenharmony_ci return datass_.find(module) != datass_.end(); 395e0e9324cSopenharmony_ci} 396e0e9324cSopenharmony_ci 397e0e9324cSopenharmony_cibool SharingData::HasTag(const std::string &module, const std::string &tag) 398e0e9324cSopenharmony_ci{ 399e0e9324cSopenharmony_ci SHARING_LOGD("trace."); 400e0e9324cSopenharmony_ci auto iter = datass_.find(module); 401e0e9324cSopenharmony_ci if (iter == datass_.end()) { 402e0e9324cSopenharmony_ci return false; 403e0e9324cSopenharmony_ci } 404e0e9324cSopenharmony_ci 405e0e9324cSopenharmony_ci return iter->second->HasTag(tag); 406e0e9324cSopenharmony_ci} 407e0e9324cSopenharmony_ci 408e0e9324cSopenharmony_civoid SharingData::ForEach(Each each) 409e0e9324cSopenharmony_ci{ 410e0e9324cSopenharmony_ci SHARING_LOGD("trace."); 411e0e9324cSopenharmony_ci auto iter = datass_.begin(); 412e0e9324cSopenharmony_ci while (iter != datass_.end()) { 413e0e9324cSopenharmony_ci std::string key = iter->first; 414e0e9324cSopenharmony_ci SHARING_LOGD("forEach %{public}s.", key.c_str()); 415e0e9324cSopenharmony_ci each(key, iter->second); 416e0e9324cSopenharmony_ci iter++; 417e0e9324cSopenharmony_ci } 418e0e9324cSopenharmony_ci} 419e0e9324cSopenharmony_ci 420e0e9324cSopenharmony_civoid SharingData::Print() 421e0e9324cSopenharmony_ci{ 422e0e9324cSopenharmony_ci SHARING_LOGD("trace."); 423e0e9324cSopenharmony_ci auto iter = datass_.begin(); 424e0e9324cSopenharmony_ci while (iter != datass_.end()) { 425e0e9324cSopenharmony_ci SHARING_LOGD("forEach print %{public}s.", iter->first.c_str()); 426e0e9324cSopenharmony_ci SharingDataGroupByModule::Ptr value = iter->second; 427e0e9324cSopenharmony_ci value->Print(); 428e0e9324cSopenharmony_ci iter++; 429e0e9324cSopenharmony_ci } 430e0e9324cSopenharmony_ci} 431e0e9324cSopenharmony_ci 432e0e9324cSopenharmony_ci} // namespace Sharing 433e0e9324cSopenharmony_ci} // namespace OHOS