From 0eb5cce4f34f01b45d50990f797674b2c41cf0e5 Mon Sep 17 00:00:00 2001 From: Jemtaly Date: Thu, 31 Jul 2025 10:40:45 +0800 Subject: [PATCH] modify taihe overload method --- .../wifiManager/idl/ohos.wifiManager.taihe | 193 +++++++----------- .../wifiManager/src/ohos.wifiManager.impl.cpp | 99 +++++---- 2 files changed, 138 insertions(+), 154 deletions(-) diff --git a/wifi/frameworks/ets/taihe/wifiManager/idl/ohos.wifiManager.taihe b/wifi/frameworks/ets/taihe/wifiManager/idl/ohos.wifiManager.taihe index 15959b03b..d19ce3914 100644 --- a/wifi/frameworks/ets/taihe/wifiManager/idl/ohos.wifiManager.taihe +++ b/wifi/frameworks/ets/taihe/wifiManager/idl/ohos.wifiManager.taihe @@ -141,9 +141,11 @@ struct WifiP2pDevice { function IsConnected(): bool; function IsWifiActive(): bool; -@gen_async("getLinkedInfo") -@gen_promise("getLinkedInfo") function GetLinkedInfoSync(): WifiLinkedInfo; +@static_overload("getLinkedInfo") +@promise function GetLinkedInfoReturnsPromise(): WifiLinkedInfo; +@static_overload("getLinkedInfo") +@async function GetLinkedInfoWithCallback(): WifiLinkedInfo; function GetSignalLevel(rssi: f64, band: f64): f64; function GetIpInfo(): IpInfo; @@ -157,124 +159,81 @@ function EnableWifi(): void; function DisableWifi(): void; function EnableSemiWifi(): void; -@!sts_inject(""" -export function on(type: string, cb: (arg_0: NullishType) => void) { - switch(type) { - case "wifiStateChange": return onWifiStateChange(cb); - case "wifiConnectionChange": return onWifiConnectionChange(cb); - case "wifiScanStateChange": return onWifiScanStateChange(cb); - case "wifiRssiChange": return onWifiRssiChange(cb); - case "streamChange": return onStreamChange(cb); - case "deviceConfigChange": return onDeviceConfigChange(cb); - case "hotspotStateChange": return onHotspotStateChange(cb); - case "hotspotStaJoin": return onHotspotStaJoin(cb); - case "hotspotStaLeave": return onHotspotStaLeave(cb); - case "p2pStateChange": return onP2pStateChange(cb); - case "p2pConnectionChange": return onP2pConnectionChange(cb); - case "p2pDeviceChange": return onP2pDeviceChange(cb); - case "p2pPeerDeviceChange": return onP2pPeerDeviceChange(cb); - case "p2pPersistentGroupChange": return onP2pPersistentGroupChange(cb); - case "p2pDiscoveryChange": return onP2pDiscoveryChange(cb); - default: throw new Error(`Unknown type: ${type}`); - } -} -export function off(type: string, cb?: (arg_0: NullishType) => void) { - switch(type) { - case "wifiStateChange": return offWifiStateChange(cb as (((data: double) => void) | undefined)); - case "wifiConnectionChange": return offWifiConnectionChange(cb as (((data: double) => void) | undefined)); - case "wifiScanStateChange": return offWifiScanStateChange(cb as (((data: double) => void) | undefined)); - case "wifiRssiChange": return offWifiRssiChange((cb as (((data: double) => void)|undefined))); - case "streamChange": return offStreamChange(cb as (((data: double) => void) | undefined)); - case "deviceConfigChange": return offDeviceConfigChange(cb as (((data: double) => void) | undefined)); - case "hotspotStateChange": return offHotspotStateChange(cb as (((data: double) => void) | undefined)); - case "hotspotStaJoin": return offHotspotStaJoin(cb as (((data: StationInfo) => void) | undefined)); - case "hotspotStaLeave": return offHotspotStaLeave(cb as (((data: StationInfo) => void) | undefined)); - case "p2pStateChange": return offP2pStateChange(cb as (((data: double) => void) | undefined)); - case "p2pConnectionChange": return offP2pConnectionChange(cb as (((data: WifiP2pLinkedInfo) => void) | undefined)); - case "p2pDeviceChange": return offP2pDeviceChange(cb as (((data: WifiP2pDevice) => void) | undefined)); - case "p2pPeerDeviceChange": return offP2pPeerDeviceChange(cb as (((data: Array) => void) | undefined)); - case "p2pPersistentGroupChange": return offP2pPersistentGroupChange(cb as ((() => void) | undefined)); - case "p2pDiscoveryChange": return offP2pDiscoveryChange(cb as (((data: double) => void) | undefined)); - default: throw new Error(`Unknown type: ${type}`); - } -} -""") - -// @on_off("wifiStateChange") -function OnWifiStateChange(callback: (data: f64) => void): void; -// @on_off("wifiStateChange") -function OffWifiStateChange(callback: Optional<(data: f64) => void>): void; - -// @on_off("wifiConnectionChange") -function OnWifiConnectionChange(callback: (data: f64) => void): void; -// @on_off("wifiConnectionChange") -function OffWifiConnectionChange(callback: Optional<(data: f64) => void>): void; - -// @on_off("wifiScanStateChange") -function OnWifiScanStateChange(callback: (data: f64) => void): void; -// @on_off("wifiScanStateChange") -function OffWifiScanStateChange(callback: Optional<(data: f64) => void>): void; - -// @on_off("wifiRssiChange") -function OnWifiRssiChange(callback: (data: f64) => void): void; -// @on_off("wifiRssiChange") -function OffWifiRssiChange(callback: Optional<(data: f64) => void>): void; - -// @on_off("streamChange") -function OnStreamChange(callback: (data: f64) => void): void; -// @on_off("streamChange") -function OffStreamChange(callback: Optional<(data: f64) => void>): void; - -// @on_off("deviceConfigChange") -function OnDeviceConfigChange(callback: (data: f64) => void): void; -// @on_off("deviceConfigChange") -function OffDeviceConfigChange(callback: Optional<(data: f64) => void>): void; - -// @on_off("hotspotStateChange") -function OnHotspotStateChange(callback: (data: f64) => void): void; -// @on_off("hotspotStateChange") -function OffHotspotStateChange(callback: Optional<(data: f64) => void>): void; - -// @on_off("hotspotStaJoin") -function OnHotspotStaJoin(callback: (data: StationInfo) => void): void; -// @on_off("hotspotStaJoin") -function OffHotspotStaJoin(callback: Optional<(data: StationInfo) => void>): void; - -// @on_off("hotspotStaLeave") -function OnHotspotStaLeave(callback: (data: StationInfo) => void): void; -// @on_off("hotspotStaLeave") -function OffHotspotStaLeave(callback: Optional<(data: StationInfo) => void>): void; - -// @on_off("p2pStateChange") -function OnP2pStateChange(callback: (data: f64) => void): void; -// @on_off("p2pStateChange") -function OffP2pStateChange(callback: Optional<(data: f64) => void>): void; - -// @on_off("p2pConnectionChange") -function OnP2pConnectionChange(callback: (data: WifiP2pLinkedInfo) => void): void; -// @on_off("p2pConnectionChange") -function OffP2pConnectionChange(callback: Optional<(data: WifiP2pLinkedInfo) => void>): void; - -// @on_off("p2pDeviceChange") -function OnP2pDeviceChange(callback: (data: WifiP2pDevice) => void): void; -// @on_off("p2pDeviceChange") -function OffP2pDeviceChange(callback: Optional<(data: WifiP2pDevice) => void>): void; - -// @on_off("p2pPeerDeviceChange") -function OnP2pPeerDeviceChange(callback: (data: Array) => void): void; -// @on_off("p2pPeerDeviceChange") -function OffP2pPeerDeviceChange(callback:Optional<(data: Array) => void>): void; +@static_overload("on") +function OnWifiStateChange(type: String, callback: (data: f64) => void): void; +@static_overload("off") +function OffWifiStateChange(type: String, callback: Optional<(data: f64) => void>): void; + +@static_overload("on") +function OnWifiConnectionChange(type: String, callback: (data: f64) => void): void; +@static_overload("off") +function OffWifiConnectionChange(type: String, callback: Optional<(data: f64) => void>): void; + +@static_overload("on") +function OnWifiScanStateChange(type: String, callback: (data: f64) => void): void; +@static_overload("off") +function OffWifiScanStateChange(type: String, callback: Optional<(data: f64) => void>): void; + +@static_overload("on") +function OnWifiRssiChange(type: String, callback: (data: f64) => void): void; +@static_overload("off") +function OffWifiRssiChange(type: String, callback: Optional<(data: f64) => void>): void; + +@static_overload("on") +function OnStreamChange(type: String, callback: (data: f64) => void): void; +@static_overload("off") +function OffStreamChange(type: String, callback: Optional<(data: f64) => void>): void; + +@static_overload("on") +function OnDeviceConfigChange(type: String, callback: (data: f64) => void): void; +@static_overload("off") +function OffDeviceConfigChange(type: String, callback: Optional<(data: f64) => void>): void; + +@static_overload("on") +function OnHotspotStateChange(type: String, callback: (data: f64) => void): void; +@static_overload("off") +function OffHotspotStateChange(type: String, callback: Optional<(data: f64) => void>): void; + +@static_overload("on") +function OnHotspotStaJoin(type: String, callback: (data: StationInfo) => void): void; +@static_overload("off") +function OffHotspotStaJoin(type: String, callback: Optional<(data: StationInfo) => void>): void; + +@static_overload("on") +function OnHotspotStaLeave(type: String, callback: (data: StationInfo) => void): void; +@static_overload("off") +function OffHotspotStaLeave(type: String, callback: Optional<(data: StationInfo) => void>): void; + +@static_overload("on") +function OnP2pStateChange(type: String, callback: (data: f64) => void): void; +@static_overload("off") +function OffP2pStateChange(type: String, callback: Optional<(data: f64) => void>): void; + +@static_overload("on") +function OnP2pConnectionChange(type: String, callback: (data: WifiP2pLinkedInfo) => void): void; +@static_overload("off") +function OffP2pConnectionChange(type: String, callback: Optional<(data: WifiP2pLinkedInfo) => void>): void; + +@static_overload("on") +function OnP2pDeviceChange(type: String, callback: (data: WifiP2pDevice) => void): void; +@static_overload("off") +function OffP2pDeviceChange(type: String, callback: Optional<(data: WifiP2pDevice) => void>): void; + +@static_overload("on") +function OnP2pPeerDeviceChange(type: String, callback: (data: Array) => void): void; +@static_overload("off") +function OffP2pPeerDeviceChange(type: String, callback:Optional<(data: Array) => void>): void; union UndefinedType { @undefined undefined; } -// @on_off("p2pPersistentGroupChange") -function OnP2pPersistentGroupChange(callback: (data: UndefinedType) => void): void; -// @on_off("p2pPersistentGroupChange") -function OffP2pPersistentGroupChange(callback: Optional<(data: UndefinedType) => void>): void; +@static_overload("on") +function OnP2pPersistentGroupChange(type: String, callback: (data: UndefinedType) => void): void; +@static_overload("off") +function OffP2pPersistentGroupChange(type: String, callback: Optional<(data: UndefinedType) => void>): void; -// @on_off("p2pDiscoveryChange") -function OnP2pDiscoveryChange(callback: (data: f64) => void): void; -// @on_off("p2pDiscoveryChange") -function OffP2pDiscoveryChange(callback: Optional<(data: f64) => void>): void; \ No newline at end of file +@static_overload("on") +function OnP2pDiscoveryChange(type: String, callback: (data: f64) => void): void; +@static_overload("off") +function OffP2pDiscoveryChange(type: String, callback: Optional<(data: f64) => void>): void; diff --git a/wifi/frameworks/ets/taihe/wifiManager/src/ohos.wifiManager.impl.cpp b/wifi/frameworks/ets/taihe/wifiManager/src/ohos.wifiManager.impl.cpp index ccb6a9d8e..8c59bca2a 100644 --- a/wifi/frameworks/ets/taihe/wifiManager/src/ohos.wifiManager.impl.cpp +++ b/wifi/frameworks/ets/taihe/wifiManager/src/ohos.wifiManager.impl.cpp @@ -280,7 +280,7 @@ void EnableSemiWifi() } OHOS::sptr wifiDeviceCallback = - OHOS::sptr(new (std::nothrow) WifiIdlDeviceEventCallback()); + OHOS::sptr(new (std::nothrow) WifiIdlDeviceEventCallback()); OHOS::sptr wifiScanCallback = OHOS::sptr(new (std::nothrow) WifiIdlScanEventCallback()); @@ -291,7 +291,8 @@ OHOS::sptr wifiHotspotCallback = OHOS::sptr wifiP2pCallback = OHOS::sptr(new (std::nothrow) WifiIdlP2pEventCallback()); -void OnWifiStateChange(::taihe::callback_view callback) +void OnWifiStateChange(taihe::string_view, + ::taihe::callback_view callback) { std::unique_lock guard(g_wifiStateChangeLock); auto wifiStateChangedCallback = @@ -312,7 +313,8 @@ void OnWifiStateChange(::taihe::callback_view callback) g_wifiStateChangeVec.emplace_back(wifiStateChangedCallback); } -void OffWifiStateChange(::taihe::optional_view<::taihe::callback> callback) +void OffWifiStateChange(taihe::string_view, + ::taihe::optional_view<::taihe::callback> callback) { std::unique_lock guard(g_wifiStateChangeLock); if (g_wifiStateChangeVec.empty()) { @@ -331,7 +333,8 @@ void OffWifiStateChange(::taihe::optional_view<::taihe::callback> } } -void OnWifiConnectionChange(::taihe::callback_view callback) +void OnWifiConnectionChange(taihe::string_view, + ::taihe::callback_view callback) { std::unique_lock guard(g_wifiConnectionChangeLock); auto wifiConnectionChangeCallback = @@ -353,7 +356,8 @@ void OnWifiConnectionChange(::taihe::callback_view callback) g_wifiConnectionChangeVec.emplace_back(wifiConnectionChangeCallback); } -void OffWifiConnectionChange(::taihe::optional_view<::taihe::callback> callback) +void OffWifiConnectionChange(taihe::string_view, + ::taihe::optional_view<::taihe::callback> callback) { std::unique_lock guard(g_wifiConnectionChangeLock); if (g_wifiConnectionChangeVec.empty()) { @@ -372,7 +376,8 @@ void OffWifiConnectionChange(::taihe::optional_view<::taihe::callback callback) +void OnWifiScanStateChange(taihe::string_view, + ::taihe::callback_view callback) { std::unique_lock guard(g_wifiScanStateChangeLock); auto wifiScanStateChangeCallback = @@ -394,7 +399,8 @@ void OnWifiScanStateChange(::taihe::callback_view callback) g_wifiScanStateChangeVec.emplace_back(wifiScanStateChangeCallback); } -void OffWifiScanStateChange(::taihe::optional_view<::taihe::callback> callback) +void OffWifiScanStateChange(taihe::string_view, + ::taihe::optional_view<::taihe::callback> callback) { std::unique_lock guard(g_wifiScanStateChangeLock); if (g_wifiScanStateChangeVec.empty()) { @@ -412,8 +418,9 @@ void OffWifiScanStateChange(::taihe::optional_view<::taihe::callback callback) + +void OnWifiRssiChange(taihe::string_view, + ::taihe::callback_view callback) { std::unique_lock guard(g_wifiRssiChangeLock); auto wifiRssiChangeCallback = @@ -434,8 +441,9 @@ void OnWifiRssiChange(::taihe::callback_view callback) } g_wifiRssiChangeVec.emplace_back(wifiRssiChangeCallback); } - -void OffWifiRssiChange(::taihe::optional_view<::taihe::callback> callback) + +void OffWifiRssiChange(taihe::string_view, + ::taihe::optional_view<::taihe::callback> callback) { std::unique_lock guard(g_wifiRssiChangeLock); if (g_wifiRssiChangeVec.empty()) { @@ -454,7 +462,8 @@ void OffWifiRssiChange(::taihe::optional_view<::taihe::callback> c } } -void OnStreamChange(::taihe::callback_view callback) +void OnStreamChange(taihe::string_view, + ::taihe::callback_view callback) { std::unique_lock guard(g_wifiStreamChangeLock); auto wifiRssiChangeCallback = @@ -476,7 +485,8 @@ void OnStreamChange(::taihe::callback_view callback) g_wifiStreamChangeVec.emplace_back(wifiRssiChangeCallback); } -void OffStreamChange(::taihe::optional_view<::taihe::callback> callback) +void OffStreamChange(taihe::string_view, + ::taihe::optional_view<::taihe::callback> callback) { std::unique_lock guard(g_wifiStreamChangeLock); if (g_wifiStreamChangeVec.empty()) { @@ -495,7 +505,8 @@ void OffStreamChange(::taihe::optional_view<::taihe::callback> cal } } -void OnDeviceConfigChange(::taihe::callback_view callback) +void OnDeviceConfigChange(taihe::string_view, + ::taihe::callback_view callback) { std::unique_lock guard(g_wifiDeviceConfigChangeLock); auto wifiDeviceConfigChangeCallback = @@ -517,7 +528,8 @@ void OnDeviceConfigChange(::taihe::callback_view callback) g_wifiDeviceConfigChangeVec.emplace_back(wifiDeviceConfigChangeCallback); } -void OffDeviceConfigChange(::taihe::optional_view<::taihe::callback> callback) +void OffDeviceConfigChange(taihe::string_view, + ::taihe::optional_view<::taihe::callback> callback) { std::unique_lock guard(g_wifiDeviceConfigChangeLock); if (g_wifiDeviceConfigChangeVec.empty()) { @@ -536,7 +548,8 @@ void OffDeviceConfigChange(::taihe::optional_view<::taihe::callback callback) +void OnHotspotStateChange(taihe::string_view, + ::taihe::callback_view callback) { std::unique_lock guard(g_wifiHotspotStateChangeLock); auto wifiHotspotStateChangeCallback = @@ -558,7 +571,8 @@ void OnHotspotStateChange(::taihe::callback_view callback) g_wifiHotspotStateChangeVec.emplace_back(wifiHotspotStateChangeCallback); } -void OffHotspotStateChange(::taihe::optional_view<::taihe::callback> callback) +void OffHotspotStateChange(taihe::string_view, + ::taihe::optional_view<::taihe::callback> callback) { std::unique_lock guard(g_wifiHotspotStateChangeLock); if (g_wifiHotspotStateChangeVec.empty()) { @@ -577,7 +591,8 @@ void OffHotspotStateChange(::taihe::optional_view<::taihe::callback callback) +void OnHotspotStaJoin(taihe::string_view, + ::taihe::callback_view callback) { std::unique_lock guard(g_wifiHotspotStaJoinLock); auto wifiHotspotStaJoinCallback = ::taihe::optional<::taihe::callback> callback) { std::unique_lock guard(g_wifiHotspotStaJoinLock); @@ -619,7 +634,8 @@ void OffHotspotStaJoin( } } -void OnHotspotStaLeave(::taihe::callback_view callback) +void OnHotspotStaLeave(taihe::string_view, + ::taihe::callback_view callback) { std::unique_lock guard(g_wifiHotspotStaLeaveLock); auto wifiHotspotStaLeaveCallback = ::taihe::optional<::taihe::callback> callback) { std::unique_lock guard(g_wifiHotspotStaLeaveLock); @@ -661,7 +677,8 @@ void OffHotspotStaLeave( } } -void OnP2pStateChange(::taihe::callback_view callback) +void OnP2pStateChange(taihe::string_view, + ::taihe::callback_view callback) { std::unique_lock guard(g_wifiP2pStateChangeLock); auto wifiP2pStateChangeCallback = @@ -683,7 +700,8 @@ void OnP2pStateChange(::taihe::callback_view callback) g_wifiP2pStateChangeVec.emplace_back(wifiP2pStateChangeCallback); } -void OffP2pStateChange(::taihe::optional_view<::taihe::callback> callback) +void OffP2pStateChange(taihe::string_view, + ::taihe::optional_view<::taihe::callback> callback) { std::unique_lock guard(g_wifiP2pStateChangeLock); if (g_wifiP2pStateChangeVec.empty()) { @@ -702,7 +720,8 @@ void OffP2pStateChange(::taihe::optional_view<::taihe::callback> c } } -void OnP2pConnectionChange(::taihe::callback_view callback) +void OnP2pConnectionChange(taihe::string_view, + ::taihe::callback_view callback) { std::unique_lock guard(g_wifiP2pConnectionChangeLock); auto wifiP2pConnectionChangeCallback = ::taihe::optional<::taihe::callback> callback) { std::unique_lock guard(g_wifiP2pConnectionChangeLock); @@ -744,7 +763,8 @@ void OffP2pConnectionChange( } } -void OnP2pDeviceChange(::taihe::callback_view callback) +void OnP2pDeviceChange(taihe::string_view, + ::taihe::callback_view callback) { std::unique_lock guard(g_wifiP2pDeviceChangeLock); auto wifiP2pDeviceChangeCallback = ::taihe::optional<::taihe::callback> callback) +void OffP2pDeviceChange(taihe::string_view, + ::taihe::optional_view<::taihe::callback> callback) { std::unique_lock guard(g_wifiP2pDeviceChangeLock); if (g_wifiP2pDeviceChangeVec.empty()) { @@ -786,8 +806,8 @@ void OffP2pDeviceChange(::taihe::optional_view<::taihe::callback)> callback) +void OnP2pPeerDeviceChange(taihe::string_view, + ::taihe::callback_view)> callback) { std::unique_lock guard(g_wifiP2pPeerDeviceChangeLock); auto wifiP2pPeerDeviceChangeCallback = @@ -810,8 +830,8 @@ void OnP2pPeerDeviceChange(::taihe::callback_view)>> callback) +void OffP2pPeerDeviceChange(taihe::string_view, + ::taihe::optional_view<::taihe::callback)>> callback) { std::unique_lock guard(g_wifiP2pPeerDeviceChangeLock); if (g_wifiP2pPeerDeviceChangeVec.empty()) { @@ -830,7 +850,8 @@ void OffP2pPeerDeviceChange(::taihe::optional_view<::taihe::callback callback) +void OnP2pPersistentGroupChange(taihe::string_view, + ::taihe::callback_view callback) { std::unique_lock guard(g_wifiP2pPersistentGroupChangeLock); auto wifiP2pPersistentGroupChangeCallback = ::taihe::optional<::taihe::callback> callback) +void OffP2pPersistentGroupChange(taihe::string_view, + ::taihe::optional_view<::taihe::callback> callback) { std::unique_lock guard(g_wifiP2pPersistentGroupChangeLock); if (g_wifiP2pPersistentGroupChangeVec.empty()) { @@ -872,7 +893,8 @@ void OffP2pPersistentGroupChange(::taihe::optional_view<::taihe::callback callback) +void OnP2pDiscoveryChange(taihe::string_view, + ::taihe::callback_view callback) { std::unique_lock guard(g_wifiP2pDiscoveryChangeLock); auto wifiP2pDiscoveryChangeCallback = @@ -894,7 +916,8 @@ void OnP2pDiscoveryChange(::taihe::callback_view callback) g_wifiP2pDiscoveryChangeVec.emplace_back(wifiP2pDiscoveryChangeCallback); } -void OffP2pDiscoveryChange(::taihe::optional_view<::taihe::callback> callback) +void OffP2pDiscoveryChange(taihe::string_view, + ::taihe::optional_view<::taihe::callback> callback) { std::unique_lock guard(g_wifiP2pDiscoveryChangeLock); if (g_wifiP2pDiscoveryChangeVec.empty()) { @@ -917,6 +940,8 @@ void OffP2pDiscoveryChange(::taihe::optional_view<::taihe::callback