diff --git a/interfaces/kits/taihe/idl/ohos.distributedDeviceManager.taihe b/interfaces/kits/taihe/idl/ohos.distributedDeviceManager.taihe index de55b938176571d493525ed0ac7e7f8247a2b587..7bebee0b1d6c7e75f1cee4ec308c18ce5261dbcf 100644 --- a/interfaces/kits/taihe/idl/ohos.distributedDeviceManager.taihe +++ b/interfaces/kits/taihe/idl/ohos.distributedDeviceManager.taihe @@ -40,6 +40,24 @@ enum DeviceStateChange: i32 { UNAVAILABLE = 2, } +struct DeviceResult { + deviceId: String; +} + +function MakeDeviceResult(deviceId: String): DeviceResult; + +struct DeviceResultNumber { + reason: i32; +} + +function MakeDeviceResultNumber(reason: i32): DeviceResultNumber; + +struct DeviceStateChangeAction { + device: DeviceBasicInfo; +} + +function MakeDeviceStateChangeAction(device: DeviceBasicInfo): DeviceStateChangeAction; + struct DeviceStateChangeData { deviceStateChange: DeviceStateChange; deviceBasicInfo: DeviceBasicInfo; @@ -55,57 +73,57 @@ interface DeviceManager { GetDeviceName(networkId: String): String; GetLocalDeviceNetworkId(): String; - @!sts_inject_into_interface("on(type: string, callback: (data: object)=> void): void;") + @!sts_inject_into_interface("on(type: string, callback: (data: object) => void): void;") @!sts_inject_into_class("""on(type: string, callback: object): void { if (type === "discoverSuccess") { - this.OnDiscoverSuccess_inner(callback as (data: DeviceBasicInfo)=> void); + this.OnDiscoverSuccess_inner(callback as (data: DeviceStateChangeAction) => void); } else if (type === "deviceStateChange") { - this.OnDeviceStateChange_inner(callback as (data: DeviceStateChangeData)=> void); + this.OnDeviceStateChange_inner(callback as (data: DeviceStateChangeData) => void); } else if (type === "replyResult") { - this.OnreplyResult_inner(callback as (data: string)=> void); + this.OnreplyResult_inner(callback as (data: DeviceResult) => void); } else if (type === "deviceNameChange") { - this.OnDeviceNameChange_inner(callback as (data: string)=> void); + this.OnDeviceNameChange_inner(callback as (data: DeviceResult) => void); } else if (type === "discoverFailure") { - this.OnDiscoverFailure_inner(callback as (data: int)=> void); + this.OnDiscoverFailure_inner(callback as (data: DeviceResultNumber) => void); } else if (type ==="serviceDie") { - this.OnServiceDie_inner(callback as ()=> void); + this.OnServiceDie_inner(callback as () => void); } else { throw new Error(`Unknown type: ${type}`); } } """) - @!sts_inject_into_interface("off(type: string, callback?: (data: object)=> void): void;") + @!sts_inject_into_interface("off(type: string, callback?: (data: object) => void): void;") @!sts_inject_into_class("""off(type: string, callback?: object): void { if (type === "discoverSuccess") { - this.OffDiscoverSuccess_inner(callback as (((data: DeviceBasicInfo)=> void) | undefined)); + this.OffDiscoverSuccess_inner(callback as (((data: DeviceStateChangeAction) => void) | undefined)); } else if (type === "deviceStateChange") { - this.OffDeviceStateChange_inner(callback as (((data: DeviceStateChangeData)=> void) | undefined)); + this.OffDeviceStateChange_inner(callback as (((data: DeviceStateChangeData) => void) | undefined)); } else if (type === "replyResult") { - this.OffreplyResult_inner(callback as (((data: string)=> void) | undefined)); + this.OffreplyResult_inner(callback as (((data: DeviceResult) => void) | undefined)); } else if (type === "deviceNameChange") { - this.OffDeviceNameChange_inner(callback as (((data: string)=> void) | undefined)); + this.OffDeviceNameChange_inner(callback as (((data: DeviceResult) => void) | undefined)); } else if (type === "discoverFailure"){ - this.OffDiscoverFailure_inner(callback as (((data: int)=> void) | undefined)); + this.OffDiscoverFailure_inner(callback as (((data: DeviceResultNumber) => void) | undefined)); } else if (type ==="serviceDie") { - this.OffServiceDie_inner(callback as ()=> void); + this.OffServiceDie_inner(callback as () => void); }else { throw new Error(`Unknown type: ${type}`); } } """) - OnDiscoverSuccess(onDiscoverSuccesscb: (device: DeviceBasicInfo) => void): void; - OffDiscoverSuccess(offDiscoverSuccesscb: Optional<(device: DeviceBasicInfo) => void>): void; + OnDiscoverSuccess(onDiscoverSuccesscb: (device: DeviceStateChangeAction) => void): void; + OffDiscoverSuccess(offDiscoverSuccesscb: Optional<(device: DeviceStateChangeAction) => void>): void; OnDeviceStateChange(onDeviceStateChangecb: (deviceStateChangeData: DeviceStateChangeData) => void): void; OffDeviceStateChange(offDeviceStateChangecb: Optional<(deviceStateChangeData: DeviceStateChangeData) => void>): void; - OnreplyResult(onreplyResultcb: (data: String)=> void): void; - OffreplyResult(offreplyResultcb: Optional<(data: String)=> void>): void; - OnDeviceNameChange(onDeviceNameChangecb: (deviceName: String) => void): void; - OffDeviceNameChange(offDeviceNameChangecb: Optional<(deviceName: String) => void>): void; - OnDiscoverFailure(onDiscoverFailurecb: (reason: i32) => void): void; - OffDiscoverFailure(offDiscoverFailurecb: Optional<(reason: i32) => void>): void; + OnreplyResult(onreplyResultcb: (data: DeviceResult) => void): void; + OffreplyResult(offreplyResultcb: Optional<(data: DeviceResult) => void>): void; + OnDeviceNameChange(onDeviceNameChangecb: (deviceName: DeviceResult) => void): void; + OffDeviceNameChange(offDeviceNameChangecb: Optional<(deviceName: DeviceResult) => void>): void; + OnDiscoverFailure(onDiscoverFailurecb: (reason: DeviceResultNumber) => void): void; + OffDiscoverFailure(offDiscoverFailurecb: Optional<(reason: DeviceResultNumber) => void>): void; OnServiceDie(onServiceDiecb: () => void): void; OffServiceDie(offServiceDiecb: Optional<() => void>): void; } diff --git a/interfaces/kits/taihe/include/dm_ani_callback.h b/interfaces/kits/taihe/include/dm_ani_callback.h index c044497be05cc4658026449a06dbada94fdb3a3e..019c42b6251272169700a2fa560323b89c853829 100644 --- a/interfaces/kits/taihe/include/dm_ani_callback.h +++ b/interfaces/kits/taihe/include/dm_ani_callback.h @@ -42,7 +42,8 @@ private: class DmAniDiscoverySuccessCallback : public OHOS::DistributedHardware::DiscoveryCallback { public: explicit DmAniDiscoverySuccessCallback(std::string &bundleName, - taihe::callback discoverSuccessCallback); + taihe::callback + discoverSuccessCallback); ~DmAniDiscoverySuccessCallback() override {}; void OnDeviceFound(uint16_t subscribeId, const OHOS::DistributedHardware::DmDeviceBasicInfo &deviceBasicInfo) override {} @@ -56,14 +57,14 @@ private: std::atomic refCount_; std::string bundleName_; std::shared_ptr> discoverSuccessCallback_; + ohos::distributedDeviceManager::DeviceStateChangeAction const&)>> discoverSuccessCallback_; std::mutex g_dmDiscoveryMutex; }; class DmAniDiscoveryFailedCallback : public OHOS::DistributedHardware::DiscoveryCallback { public: explicit DmAniDiscoveryFailedCallback(std::string &bundleName, - taihe::callback discoverFailedCallback); + taihe::callback discoverFailedCallback); ~DmAniDiscoveryFailedCallback() override {}; void OnDeviceFound(uint16_t subscribeId, const OHOS::DistributedHardware::DmDeviceBasicInfo &deviceBasicInfo) override {} @@ -76,14 +77,15 @@ public: private: std::atomic refCount_; std::string bundleName_; - std::shared_ptr> discoverFailedCallback_; + std::shared_ptr> discoverFailedCallback_; std::mutex g_dmDiscoveryMutex; }; class DmAniDeviceNameChangeCallback : public OHOS::DistributedHardware::DeviceStatusCallback { public: explicit DmAniDeviceNameChangeCallback(std::string &bundleName, - taihe::callback deviceNameChangeCallback); + taihe::callback deviceNameChangeCallback); ~DmAniDeviceNameChangeCallback() override {} void OnDeviceOnline(const OHOS::DistributedHardware::DmDeviceBasicInfo &deviceBasicInfo) override {} void OnDeviceReady(const OHOS::DistributedHardware::DmDeviceBasicInfo &deviceBasicInfo) override {} @@ -92,13 +94,14 @@ public: private: std::string bundleName_; - std::shared_ptr> deviceNameChangeCallback_; + std::shared_ptr> deviceNameChangeCallback_; }; class DmAniDeviceStateChangeDataCallback : public OHOS::DistributedHardware::DeviceStatusCallback { public: explicit DmAniDeviceStateChangeDataCallback(std::string &bundleName, - taihe::callback + taihe::callback deviceStateChangeDataCallback); ~DmAniDeviceStateChangeDataCallback() override {} void OnDeviceOnline(const OHOS::DistributedHardware::DmDeviceBasicInfo &deviceBasicInfo) override {} @@ -109,20 +112,21 @@ public: private: std::string bundleName_; std::shared_ptr> + ohos::distributedDeviceManager::DeviceStateChangeData const&)>> deviceStateChangeDataCallback_; }; class DmAniDeviceManagerUiCallback : public OHOS::DistributedHardware::DeviceManagerUiCallback { public: - explicit DmAniDeviceManagerUiCallback(taihe::callback replyResultCallback, + explicit DmAniDeviceManagerUiCallback(taihe::callback replyResultCallback, std::string &bundleName); ~DmAniDeviceManagerUiCallback() override {} void OnCall(const std::string ¶mJson) override; private: std::string bundleName_; - std::shared_ptr> replyResultCallback_; + std::shared_ptr> replyResultCallback_; }; #endif //OHOS_DM_ANI_CALLBACK_H diff --git a/interfaces/kits/taihe/include/ohos.distributedDeviceManager.h b/interfaces/kits/taihe/include/ohos.distributedDeviceManager.h index 5ad0b1eea6ed5181dceef3e3c68b8bc0a9cfca10..2d385544a06adfef5e81b2e4a955dacfd6b7f666 100644 --- a/interfaces/kits/taihe/include/ohos.distributedDeviceManager.h +++ b/interfaces/kits/taihe/include/ohos.distributedDeviceManager.h @@ -43,20 +43,26 @@ public: std::string GetDeviceName(taihe::string_view networkId); std::string GetLocalDeviceNetworkId(); - void OnDeviceNameChange(taihe::callback_view onDeviceNameChangecb); - void OnDiscoverFailure(taihe::callback_view onDiscoverFailurecb); - void OnreplyResult(taihe::callback_view onreplyResultcb); + void OnDeviceNameChange(taihe::callback_view onDeviceNameChangecb); + void OnDiscoverFailure(taihe::callback_view onDiscoverFailurecb); + void OnreplyResult(taihe::callback_view onreplyResultcb); void OnDiscoverSuccess(taihe::callback_view onDiscoverSuccesscb); + ohos::distributedDeviceManager::DeviceStateChangeAction const&)> onDiscoverSuccesscb); void OnDeviceStateChange(taihe::callback_view onDeviceStateChangecb); void OnServiceDie(taihe::callback_view onServiceDiecb); - void OffDeviceNameChange(taihe::optional_view> offDeviceNameChangecb); - void OffDiscoverFailure(taihe::optional_view> offDiscoverFailurecb); - void OffreplyResult(taihe::optional_view> offreplyResultcb); + void OffDeviceNameChange(taihe::optional_view> offDeviceNameChangecb); + void OffDiscoverFailure(taihe::optional_view> offDiscoverFailurecb); + void OffreplyResult(taihe::optional_view> offreplyResultcb); void OffDiscoverSuccess(taihe::optional_view> offDiscoverSuccesscb); + ohos::distributedDeviceManager::DeviceStateChangeAction const&)>> offDiscoverSuccesscb); void OffDeviceStateChange(taihe::optional_view> offDeviceStateChangecb); void OffServiceDie(taihe::optional_view> offServiceDiecb); @@ -70,9 +76,14 @@ private: ohos::distributedDeviceManager::DeviceBasicInfo MakeDeviceBasicInfo(taihe::string_view deviceId, taihe::string_view deviceName, taihe::string_view deviceType, taihe::string_view networkId, taihe::string_view extraData); + +ohos::distributedDeviceManager::DeviceResult MakeDeviceResult(taihe::string_view deviceId); +ohos::distributedDeviceManager::DeviceResultNumber MakeDeviceResultNumber(int32_t reason); +ohos::distributedDeviceManager::DeviceStateChangeAction MakeDeviceStateChangeAction( + ohos::distributedDeviceManager::DeviceBasicInfo const& device); ohos::distributedDeviceManager::DeviceStateChangeData MakeDeviceStateChangeData( ohos::distributedDeviceManager::DeviceStateChange deviceStateChange, - ohos::distributedDeviceManager::DeviceBasicInfo const &deviceBasicInfo); + ohos::distributedDeviceManager::DeviceBasicInfo const& deviceBasicInfo); ohos::distributedDeviceManager::DeviceManager CreateDeviceManager(taihe::string_view bundleName); } // namespace ANI::distributedDeviceManager diff --git a/interfaces/kits/taihe/src/dm_ani_callback.cpp b/interfaces/kits/taihe/src/dm_ani_callback.cpp index 803b82cc8ee7f43da2728accc6cf912a557cefa2..b56a56ed1f648d2ee8d051ff4128279361ea19ca 100644 --- a/interfaces/kits/taihe/src/dm_ani_callback.cpp +++ b/interfaces/kits/taihe/src/dm_ani_callback.cpp @@ -48,9 +48,10 @@ void DmAniInitCallback::ReleaseServiceDieCallback() } DmAniDiscoveryFailedCallback::DmAniDiscoveryFailedCallback(std::string &bundleName, - taihe::callback discoverFailedCallback) + taihe::callback discoverFailedCallback) : refCount_(0), bundleName_(bundleName), - discoverFailedCallback_(std::make_shared>(discoverFailedCallback)) + discoverFailedCallback_(std::make_shared>(discoverFailedCallback)) { } @@ -72,10 +73,11 @@ int32_t DmAniDiscoveryFailedCallback::GetRefCount() } DmAniDiscoverySuccessCallback::DmAniDiscoverySuccessCallback(std::string &bundleName, - taihe::callback discoverSuccessCallback) + taihe::callback + discoverSuccessCallback) : refCount_(0), bundleName_(bundleName), discoverSuccessCallback_(std::make_shared>(discoverSuccessCallback)) + ohos::distributedDeviceManager::DeviceStateChangeAction const&)>>(discoverSuccessCallback)) { } @@ -97,9 +99,10 @@ int32_t DmAniDiscoverySuccessCallback::GetRefCount() } DmAniDeviceNameChangeCallback::DmAniDeviceNameChangeCallback(std::string &bundleName, - taihe::callback deviceNameChangeCallback) + taihe::callback deviceNameChangeCallback) : bundleName_(bundleName), deviceNameChangeCallback_( - std::make_shared>(deviceNameChangeCallback)) + std::make_shared>(deviceNameChangeCallback)) { } @@ -110,11 +113,11 @@ void DmAniDeviceNameChangeCallback::OnDeviceChanged( } DmAniDeviceStateChangeDataCallback::DmAniDeviceStateChangeDataCallback(std::string &bundleName, - taihe::callback + taihe::callback deviceStateChangeDataCallback) : bundleName_(bundleName), deviceStateChangeDataCallback_(std::make_shared>(deviceStateChangeDataCallback)) + ohos::distributedDeviceManager::DeviceStateChangeData const&)>>(deviceStateChangeDataCallback)) { } @@ -125,10 +128,11 @@ void DmAniDeviceStateChangeDataCallback::OnDeviceChanged( } DmAniDeviceManagerUiCallback::DmAniDeviceManagerUiCallback( - taihe::callback replyResultCallback, + taihe::callback replyResultCallback, std::string &bundleName) : bundleName_(bundleName), - replyResultCallback_(std::make_shared>(replyResultCallback)) + replyResultCallback_(std::make_shared>(replyResultCallback)) { } diff --git a/interfaces/kits/taihe/src/ohos.distributedDeviceManager.cpp b/interfaces/kits/taihe/src/ohos.distributedDeviceManager.cpp index b6b9d03b2e014f263d99421c6c952fe2aaf81b6a..dccd53848baec41731f21060392f3a0b96331371 100644 --- a/interfaces/kits/taihe/src/ohos.distributedDeviceManager.cpp +++ b/interfaces/kits/taihe/src/ohos.distributedDeviceManager.cpp @@ -85,6 +85,22 @@ ohos::distributedDeviceManager::DeviceBasicInfo MakeDeviceBasicInfo(taihe::strin return {deviceId, deviceName, deviceType, networkId, extraData}; } +ohos::distributedDeviceManager::DeviceResult MakeDeviceResult(taihe::string_view deviceId) +{ + return {deviceId}; +} + +ohos::distributedDeviceManager::DeviceResultNumber MakeDeviceResultNumber(int32_t reason) +{ + return {reason}; +} + +ohos::distributedDeviceManager::DeviceStateChangeAction MakeDeviceStateChangeAction( + ohos::distributedDeviceManager::DeviceBasicInfo const& device) +{ + return {device}; +} + ohos::distributedDeviceManager::DeviceStateChangeData MakeDeviceStateChangeData( ohos::distributedDeviceManager::DeviceStateChange deviceStateChange, ohos::distributedDeviceManager::DeviceBasicInfo const& deviceBasicInfo) @@ -160,7 +176,8 @@ std::string DeviceManagerImpl::GetLocalDeviceNetworkId() return std::string(networkId); } -void DeviceManagerImpl::OnDeviceNameChange(taihe::callback_view onDeviceNameChangecb) +void DeviceManagerImpl::OnDeviceNameChange(taihe::callback_view onDeviceNameChangecb) { if (OHOS::DistributedHardware::DeviceManager::GetInstance().CheckNewAPIAccessPermission() != 0) { taihe::set_business_error(OHOS::DistributedHardware::ERR_DM_NO_PERMISSION, @@ -190,7 +207,8 @@ void DeviceManagerImpl::OnDeviceNameChange(taihe::callback_view onDiscoverFailurecb) +void DeviceManagerImpl::OnDiscoverFailure(taihe::callback_view onDiscoverFailurecb) { int32_t ret = OHOS::DistributedHardware::DeviceManager::GetInstance().CheckNewAPIAccessPermission(); if (ret != 0) { @@ -209,7 +227,8 @@ void DeviceManagerImpl::OnDiscoverFailure(taihe::callback_view on return; } -void DeviceManagerImpl::OnreplyResult(taihe::callback_view onreplyResultcb) +void DeviceManagerImpl::OnreplyResult(taihe::callback_view onreplyResultcb) { if (OHOS::DistributedHardware::DeviceManager::GetInstance().CheckNewAPIAccessPermission() != 0) { taihe::set_business_error(OHOS::DistributedHardware::ERR_DM_NO_PERMISSION, @@ -232,7 +251,7 @@ void DeviceManagerImpl::OnreplyResult(taihe::callback_view onDiscoverSuccesscb) + ohos::distributedDeviceManager::DeviceStateChangeAction const&)> onDiscoverSuccesscb) { if (OHOS::DistributedHardware::DeviceManager::GetInstance().CheckNewAPIAccessPermission() != 0) { taihe::set_business_error(OHOS::DistributedHardware::ERR_DM_NO_PERMISSION, @@ -250,8 +269,8 @@ void DeviceManagerImpl::OnDiscoverSuccess(taihe::callback_view onDeviceStateChangecb) +void DeviceManagerImpl::OnDeviceStateChange(taihe::callback_view onDeviceStateChangecb) { if (OHOS::DistributedHardware::DeviceManager::GetInstance().CheckNewAPIAccessPermission() != 0) { taihe::set_business_error(OHOS::DistributedHardware::ERR_DM_NO_PERMISSION, @@ -298,8 +317,8 @@ void DeviceManagerImpl::OnServiceDie(taihe::callback_view onServiceDiecb return; } -void DeviceManagerImpl::OffDeviceNameChange( - taihe::optional_view> offDeviceNameChangecb) +void DeviceManagerImpl::OffDeviceNameChange(taihe::optional_view> offDeviceNameChangecb) { if (OHOS::DistributedHardware::DeviceManager::GetInstance().CheckNewAPIAccessPermission() != 0) { taihe::set_business_error(OHOS::DistributedHardware::ERR_DM_NO_PERMISSION, @@ -329,7 +348,8 @@ void DeviceManagerImpl::OffDeviceNameChange( return; } -void DeviceManagerImpl::OffDiscoverFailure(taihe::optional_view> offDiscoverFailurecb) +void DeviceManagerImpl::OffDiscoverFailure(taihe::optional_view> offDiscoverFailurecb) { if (OHOS::DistributedHardware::DeviceManager::GetInstance().CheckNewAPIAccessPermission() != 0) { taihe::set_business_error(OHOS::DistributedHardware::ERR_DM_NO_PERMISSION, @@ -355,8 +375,8 @@ void DeviceManagerImpl::OffDiscoverFailure(taihe::optional_view> offreplyResultcb) +void DeviceManagerImpl::OffreplyResult(taihe::optional_view> offreplyResultcb) { if (OHOS::DistributedHardware::DeviceManager::GetInstance().CheckNewAPIAccessPermission() != 0) { taihe::set_business_error(OHOS::DistributedHardware::ERR_DM_NO_PERMISSION, @@ -387,7 +407,7 @@ void DeviceManagerImpl::OffreplyResult( } void DeviceManagerImpl::OffDiscoverSuccess(taihe::optional_view> offDiscoverSuccesscb) + ohos::distributedDeviceManager::DeviceStateChangeAction const&)>> offDiscoverSuccesscb) { if (OHOS::DistributedHardware::DeviceManager::GetInstance().CheckNewAPIAccessPermission() != 0) { taihe::set_business_error(OHOS::DistributedHardware::ERR_DM_NO_PERMISSION, @@ -466,4 +486,7 @@ void DeviceManagerImpl::OffServiceDie(taihe::optional_view