1b1b8bc3fSopenharmony_ci/* 2b1b8bc3fSopenharmony_ci * Copyright (c) 2021-2023 Huawei Device Co., Ltd. 3b1b8bc3fSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4b1b8bc3fSopenharmony_ci * you may not use this file except in compliance with the License. 5b1b8bc3fSopenharmony_ci * You may obtain a copy of the License at 6b1b8bc3fSopenharmony_ci * 7b1b8bc3fSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8b1b8bc3fSopenharmony_ci * 9b1b8bc3fSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10b1b8bc3fSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11b1b8bc3fSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12b1b8bc3fSopenharmony_ci * See the License for the specific language governing permissions and 13b1b8bc3fSopenharmony_ci * limitations under the License. 14b1b8bc3fSopenharmony_ci */ 15b1b8bc3fSopenharmony_ci#include "broadcast_manager.h" 16b1b8bc3fSopenharmony_ci 17b1b8bc3fSopenharmony_ci#include "common_event_manager.h" 18b1b8bc3fSopenharmony_ci#include "common_event_support.h" 19b1b8bc3fSopenharmony_ci#include "want.h" 20b1b8bc3fSopenharmony_ci 21b1b8bc3fSopenharmony_ci#include "net_mgr_log_wrapper.h" 22b1b8bc3fSopenharmony_ci 23b1b8bc3fSopenharmony_cinamespace OHOS { 24b1b8bc3fSopenharmony_cinamespace NetManagerStandard { 25b1b8bc3fSopenharmony_ciBroadcastManager::BroadcastManager() {} 26b1b8bc3fSopenharmony_ci 27b1b8bc3fSopenharmony_ciBroadcastManager::~BroadcastManager() {} 28b1b8bc3fSopenharmony_ci 29b1b8bc3fSopenharmony_cibool BroadcastManager::SendBroadcast(const BroadcastInfo &info, const std::map<std::string, bool> ¶m) 30b1b8bc3fSopenharmony_ci{ 31b1b8bc3fSopenharmony_ci return SendBroadcastEx(info, param); 32b1b8bc3fSopenharmony_ci} 33b1b8bc3fSopenharmony_ci 34b1b8bc3fSopenharmony_cibool BroadcastManager::SendBroadcast(const BroadcastInfo &info, const std::map<std::string, int32_t> ¶m) 35b1b8bc3fSopenharmony_ci{ 36b1b8bc3fSopenharmony_ci return SendBroadcastEx(info, param); 37b1b8bc3fSopenharmony_ci} 38b1b8bc3fSopenharmony_ci 39b1b8bc3fSopenharmony_cibool BroadcastManager::SendBroadcast(const BroadcastInfo &info, const std::map<std::string, int64_t> ¶m) 40b1b8bc3fSopenharmony_ci{ 41b1b8bc3fSopenharmony_ci return SendBroadcastEx(info, param); 42b1b8bc3fSopenharmony_ci} 43b1b8bc3fSopenharmony_ci 44b1b8bc3fSopenharmony_cibool BroadcastManager::SendBroadcast(const BroadcastInfo &info, const std::map<std::string, std::string> ¶m) 45b1b8bc3fSopenharmony_ci{ 46b1b8bc3fSopenharmony_ci return SendBroadcastEx(info, param); 47b1b8bc3fSopenharmony_ci} 48b1b8bc3fSopenharmony_ci 49b1b8bc3fSopenharmony_citemplate <typename T> 50b1b8bc3fSopenharmony_cibool BroadcastManager::SendBroadcastEx(const BroadcastInfo &info, const std::map<std::string, T> ¶m) 51b1b8bc3fSopenharmony_ci{ 52b1b8bc3fSopenharmony_ci if (info.action.empty()) { 53b1b8bc3fSopenharmony_ci NETMGR_LOG_E("The parameter of action is empty"); 54b1b8bc3fSopenharmony_ci return false; 55b1b8bc3fSopenharmony_ci } 56b1b8bc3fSopenharmony_ci NETMGR_LOG_I("Net Send broadcast: %{public}s", info.action.c_str()); 57b1b8bc3fSopenharmony_ci AAFwk::Want want; 58b1b8bc3fSopenharmony_ci want.SetAction(info.action); 59b1b8bc3fSopenharmony_ci for (const auto &x : param) { 60b1b8bc3fSopenharmony_ci want.SetParam(x.first, x.second); 61b1b8bc3fSopenharmony_ci } 62b1b8bc3fSopenharmony_ci 63b1b8bc3fSopenharmony_ci EventFwk::CommonEventData eventData; 64b1b8bc3fSopenharmony_ci eventData.SetWant(want); 65b1b8bc3fSopenharmony_ci eventData.SetCode(info.code); 66b1b8bc3fSopenharmony_ci eventData.SetData(info.data); 67b1b8bc3fSopenharmony_ci EventFwk::CommonEventPublishInfo publishInfo; 68b1b8bc3fSopenharmony_ci publishInfo.SetOrdered(info.ordered); 69b1b8bc3fSopenharmony_ci if (!info.permission.empty()) { 70b1b8bc3fSopenharmony_ci publishInfo.SetSubscriberPermissions({info.permission}); 71b1b8bc3fSopenharmony_ci } 72b1b8bc3fSopenharmony_ci 73b1b8bc3fSopenharmony_ci bool publishResult = EventFwk::CommonEventManager::PublishCommonEvent(eventData, publishInfo, nullptr); 74b1b8bc3fSopenharmony_ci if (publishResult) { 75b1b8bc3fSopenharmony_ci NETMGR_LOG_D("Send broadcast is successfull"); 76b1b8bc3fSopenharmony_ci } else { 77b1b8bc3fSopenharmony_ci NETMGR_LOG_D("Send broadcast is failed"); 78b1b8bc3fSopenharmony_ci } 79b1b8bc3fSopenharmony_ci 80b1b8bc3fSopenharmony_ci return publishResult; 81b1b8bc3fSopenharmony_ci} 82b1b8bc3fSopenharmony_ci} // namespace NetManagerStandard 83b1b8bc3fSopenharmony_ci} // namespace OHOS 84