From 16dc13fa38ff13ac277298e5f4de4c11a3ce9d75 Mon Sep 17 00:00:00 2001 From: renguang1116 Date: Mon, 7 Mar 2022 21:07:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=97=A0=E6=B3=95=E4=B8=8A?= =?UTF-8?q?=E6=8A=A5=E5=A4=9A=E4=B8=AA=E8=AE=BE=E5=A4=87=E9=97=AE=E9=A2=98?= =?UTF-8?q?=20Signed-off-by:=20renguang1116=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kits/js/include/native_devicemanager_js.h | 6 +++ .../kits/js/src/native_devicemanager_js.cpp | 50 ++++++++----------- 2 files changed, 26 insertions(+), 30 deletions(-) diff --git a/interfaces/kits/js/include/native_devicemanager_js.h b/interfaces/kits/js/include/native_devicemanager_js.h index 96a8871ec..9d895b1c6 100644 --- a/interfaces/kits/js/include/native_devicemanager_js.h +++ b/interfaces/kits/js/include/native_devicemanager_js.h @@ -128,6 +128,7 @@ public: private: napi_env env_; std::string bundleName_; + std::unique_ptr jsCallback_; }; class DmNapiDeviceStateCallback : public OHOS::DistributedHardware::DeviceStateCallback { @@ -144,6 +145,7 @@ public: private: napi_env env_; std::string bundleName_; + std::unique_ptr jsCallback_; }; class DmNapiDiscoveryCallback : public OHOS::DistributedHardware::DiscoveryCallback { @@ -164,6 +166,7 @@ private: napi_env env_; std::atomic refCount_; std::string bundleName_; + std::unique_ptr jsCallback_; }; class DmNapiDeviceManagerFaCallback : public OHOS::DistributedHardware::DeviceManagerFaCallback { @@ -177,6 +180,7 @@ public: private: napi_env env_; std::string bundleName_; + std::unique_ptr jsCallback_; }; class DmNapiAuthenticateCallback : public OHOS::DistributedHardware::AuthenticateCallback { @@ -190,6 +194,7 @@ public: private: napi_env env_; std::string bundleName_; + std::unique_ptr jsCallback_; }; class DmNapiVerifyAuthCallback : public OHOS::DistributedHardware::VerifyAuthCallback { @@ -203,6 +208,7 @@ public: private: napi_env env_; std::string bundleName_; + std::unique_ptr jsCallback_; }; class DeviceManagerNapi : public DmNativeEvent { diff --git a/interfaces/kits/js/src/native_devicemanager_js.cpp b/interfaces/kits/js/src/native_devicemanager_js.cpp index 7ac949775..b6cec4792 100644 --- a/interfaces/kits/js/src/native_devicemanager_js.cpp +++ b/interfaces/kits/js/src/native_devicemanager_js.cpp @@ -74,9 +74,8 @@ void DmNapiInitCallback::OnRemoteDied() } DmDeviceInfo info; - std::unique_ptr jsCallback = - std::make_unique(bundleName_, 0, 0, info); - work->data = reinterpret_cast(jsCallback.get()); + jsCallback_ = std::make_unique(bundleName_, 0, 0, info); + work->data = reinterpret_cast(jsCallback_.get()); int ret = uv_queue_work(loop, work, [] (uv_work_t *work) {}, [] (uv_work_t *work, int status) { DmNapiStateJsCallback *callback = reinterpret_cast(work->data); @@ -107,9 +106,8 @@ void DmNapiDeviceStateCallback::OnDeviceOnline(const DmDeviceInfo &deviceInfo) return; } - std::unique_ptr jsCallback = - std::make_unique(bundleName_, 0, 0, deviceInfo); - work->data = reinterpret_cast(jsCallback.get()); + jsCallback_ = std::make_unique(bundleName_, 0, 0, deviceInfo); + work->data = reinterpret_cast(jsCallback_.get()); int ret = uv_queue_work(loop, work, [] (uv_work_t *work) {}, [] (uv_work_t *work, int status) { DmNapiStateJsCallback *callback = reinterpret_cast(work->data); @@ -140,9 +138,8 @@ void DmNapiDeviceStateCallback::OnDeviceReady(const DmDeviceInfo &deviceInfo) return; } - std::unique_ptr jsCallback = - std::make_unique(bundleName_, 0, 0, deviceInfo); - work->data = reinterpret_cast(jsCallback.get()); + jsCallback_ = std::make_unique(bundleName_, 0, 0, deviceInfo); + work->data = reinterpret_cast(jsCallback_.get()); int ret = uv_queue_work(loop, work, [] (uv_work_t *work) {}, [] (uv_work_t *work, int status) { DmNapiStateJsCallback *callback = reinterpret_cast(work->data); @@ -173,9 +170,8 @@ void DmNapiDeviceStateCallback::OnDeviceOffline(const DmDeviceInfo &deviceInfo) return; } - std::unique_ptr jsCallback = - std::make_unique(bundleName_, 0, 0, deviceInfo); - work->data = reinterpret_cast(jsCallback.get()); + jsCallback_ = std::make_unique(bundleName_, 0, 0, deviceInfo); + work->data = reinterpret_cast(jsCallback_.get()); int ret = uv_queue_work(loop, work, [] (uv_work_t *work) {}, [] (uv_work_t *work, int status) { DmNapiStateJsCallback *callback = reinterpret_cast(work->data); @@ -206,9 +202,8 @@ void DmNapiDeviceStateCallback::OnDeviceChanged(const DmDeviceInfo &deviceInfo) return; } - std::unique_ptr jsCallback = - std::make_unique(bundleName_, 0, 0, deviceInfo); - work->data = reinterpret_cast(jsCallback.get()); + jsCallback_ = std::make_unique(bundleName_, 0, 0, deviceInfo); + work->data = reinterpret_cast(jsCallback_.get()); int ret = uv_queue_work(loop, work, [] (uv_work_t *work) {}, [] (uv_work_t *work, int status) { DmNapiStateJsCallback *callback = reinterpret_cast(work->data); @@ -241,9 +236,8 @@ void DmNapiDiscoveryCallback::OnDeviceFound(uint16_t subscribeId, const DmDevice return; } - std::unique_ptr jsCallback = - std::make_unique(bundleName_, subscribeId, 0, deviceInfo); - work->data = reinterpret_cast(jsCallback.get()); + jsCallback_ = std::make_unique(bundleName_, subscribeId, 0, deviceInfo); + work->data = reinterpret_cast(jsCallback_.get()); int ret = uv_queue_work(loop, work, [] (uv_work_t *work) {}, [] (uv_work_t *work, int status) { DmNapiStateJsCallback *callback = reinterpret_cast(work->data); @@ -277,9 +271,8 @@ void DmNapiDiscoveryCallback::OnDiscoveryFailed(uint16_t subscribeId, int32_t fa } DmDeviceInfo info; - std::unique_ptr jsCallback = - std::make_unique(bundleName_, subscribeId, failedReason, info); - work->data = reinterpret_cast(jsCallback.get()); + jsCallback_ = std::make_unique(bundleName_, subscribeId, failedReason, info); + work->data = reinterpret_cast(jsCallback_.get()); int ret = uv_queue_work(loop, work, [] (uv_work_t *work) {}, [] (uv_work_t *work, int status) { DmNapiStateJsCallback *callback = reinterpret_cast(work->data); @@ -336,9 +329,8 @@ void DmNapiAuthenticateCallback::OnAuthResult(const std::string &deviceId, const return; } - std::unique_ptr jsCallback = - std::make_unique(bundleName_, deviceId, token, status, reason); - work->data = reinterpret_cast(jsCallback.get()); + jsCallback_ = std::make_unique(bundleName_, deviceId, token, status, reason); + work->data = reinterpret_cast(jsCallback_.get()); int ret = uv_queue_work(loop, work, [] (uv_work_t *work) {}, [] (uv_work_t *work, int status) { DmNapiAuthJsCallback *callback = reinterpret_cast(work->data); @@ -369,9 +361,8 @@ void DmNapiVerifyAuthCallback::OnVerifyAuthResult(const std::string &deviceId, i return; } - std::unique_ptr jsCallback = - std::make_unique(bundleName_, deviceId, resultCode, flag); - work->data = reinterpret_cast(jsCallback.get()); + jsCallback_ = std::make_unique(bundleName_, deviceId, resultCode, flag); + work->data = reinterpret_cast(jsCallback_.get()); int ret = uv_queue_work(loop, work, [] (uv_work_t *work) {}, [] (uv_work_t *work, int status) { DmNapiVerifyJsCallback *callback = reinterpret_cast(work->data); @@ -1041,9 +1032,8 @@ void DmNapiDeviceManagerFaCallback::OnCall(const std::string ¶mJson) return; } - std::unique_ptr jsCallback = - std::make_unique(bundleName_, "", paramJson, 0, 0); - work->data = reinterpret_cast(jsCallback.get()); + jsCallback_ = std::make_unique(bundleName_, "", paramJson, 0, 0); + work->data = reinterpret_cast(jsCallback_.get()); int ret = uv_queue_work(loop, work, [] (uv_work_t *work) {}, [] (uv_work_t *work, int status) { DmNapiAuthJsCallback *callback = reinterpret_cast(work->data); -- Gitee