195489c19Sopenharmony_ci/* 295489c19Sopenharmony_ci * Copyright (C) 2022 Huawei Device Co., Ltd. 395489c19Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 495489c19Sopenharmony_ci * you may not use this file except in compliance with the License. 595489c19Sopenharmony_ci * You may obtain a copy of the License at 695489c19Sopenharmony_ci * 795489c19Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 895489c19Sopenharmony_ci * 995489c19Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1095489c19Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1195489c19Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1295489c19Sopenharmony_ci * See the License for the specific language governing permissions and 1395489c19Sopenharmony_ci * limitations under the License. 1495489c19Sopenharmony_ci */ 1595489c19Sopenharmony_ci 1695489c19Sopenharmony_ci#include "bluetooth_proxy_manager.h" 1795489c19Sopenharmony_ci 1895489c19Sopenharmony_ci#include "bluetooth_ble_central_manager.h" 1995489c19Sopenharmony_ci#include "bluetooth_def.h" 2095489c19Sopenharmony_ci#include "bluetooth_host.h" 2195489c19Sopenharmony_ci#include "bluetooth_log.h" 2295489c19Sopenharmony_ci#include "bluetooth_profile_manager.h" 2395489c19Sopenharmony_ci#include "i_bluetooth_ble_central_manager.h" 2495489c19Sopenharmony_ci 2595489c19Sopenharmony_cinamespace OHOS { 2695489c19Sopenharmony_cinamespace Bluetooth { 2795489c19Sopenharmony_ciBluetoothProxyManager& BluetoothProxyManager::GetInstance() 2895489c19Sopenharmony_ci{ 2995489c19Sopenharmony_ci#ifdef DTFUZZ_TEST 3095489c19Sopenharmony_ci static BluetoothNoDestructor<BluetoothProxyManager> instance; 3195489c19Sopenharmony_ci return *instance; 3295489c19Sopenharmony_ci#else 3395489c19Sopenharmony_ci static BluetoothProxyManager instance; 3495489c19Sopenharmony_ci return instance; 3595489c19Sopenharmony_ci#endif 3695489c19Sopenharmony_ci} 3795489c19Sopenharmony_ci 3895489c19Sopenharmony_cibool BluetoothProxyManager::FreezeByRss(std::set<int> pidSet, bool isProxy) 3995489c19Sopenharmony_ci{ 4095489c19Sopenharmony_ci if (!IS_BLE_ENABLED()) { 4195489c19Sopenharmony_ci HILOGD("bluetooth is off."); 4295489c19Sopenharmony_ci return false; 4395489c19Sopenharmony_ci } 4495489c19Sopenharmony_ci sptr<IBluetoothBleCentralManager> proxy = 4595489c19Sopenharmony_ci GetRemoteProxy<IBluetoothBleCentralManager>(BLE_CENTRAL_MANAGER_SERVER); 4695489c19Sopenharmony_ci CHECK_AND_RETURN_LOG_RET(proxy, false, "failed: no proxy"); 4795489c19Sopenharmony_ci return proxy->FreezeByRss(pidSet, isProxy); 4895489c19Sopenharmony_ci} 4995489c19Sopenharmony_ci 5095489c19Sopenharmony_cibool BluetoothProxyManager::ResetAllProxy() 5195489c19Sopenharmony_ci{ 5295489c19Sopenharmony_ci HILOGI("ResetAllProxy start."); 5395489c19Sopenharmony_ci if (!IS_BLE_ENABLED()) { 5495489c19Sopenharmony_ci HILOGD("bluetooth is off."); 5595489c19Sopenharmony_ci return false; 5695489c19Sopenharmony_ci } 5795489c19Sopenharmony_ci sptr<IBluetoothBleCentralManager> proxy = 5895489c19Sopenharmony_ci GetRemoteProxy<IBluetoothBleCentralManager>(BLE_CENTRAL_MANAGER_SERVER); 5995489c19Sopenharmony_ci CHECK_AND_RETURN_LOG_RET(proxy, false, "failed: no proxy"); 6095489c19Sopenharmony_ci return proxy->ResetAllProxy(); 6195489c19Sopenharmony_ci} 6295489c19Sopenharmony_ci} // namespace Bluetooth 6395489c19Sopenharmony_ci} // namespace OHOS