react-native-ble-nitro 1.9.2 → 1.9.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/README.md +2 -2
  2. package/ios/BleNitroBleManager.swift +2 -2
  3. package/lib/commonjs/manager.d.ts +1 -0
  4. package/lib/commonjs/manager.d.ts.map +1 -1
  5. package/lib/commonjs/manager.js +2 -0
  6. package/lib/commonjs/manager.js.map +1 -1
  7. package/lib/manager.d.ts +1 -0
  8. package/lib/manager.js +1 -0
  9. package/nitrogen/generated/android/BleNitro+autolinking.cmake +3 -1
  10. package/nitrogen/generated/android/BleNitro+autolinking.gradle +1 -1
  11. package/nitrogen/generated/android/BleNitroOnLoad.cpp +3 -3
  12. package/nitrogen/generated/android/BleNitroOnLoad.hpp +1 -1
  13. package/nitrogen/generated/android/c++/JAndroidScanMode.hpp +5 -6
  14. package/nitrogen/generated/android/c++/JBLEDevice.hpp +8 -4
  15. package/nitrogen/generated/android/c++/JBLEState.hpp +7 -8
  16. package/nitrogen/generated/android/c++/JFunc_void_BLEState.hpp +3 -2
  17. package/nitrogen/generated/android/c++/JFunc_void_bool_double_std__string.hpp +3 -2
  18. package/nitrogen/generated/android/c++/JFunc_void_bool_std__shared_ptr_ArrayBuffer__std__string.hpp +3 -3
  19. package/nitrogen/generated/android/c++/JFunc_void_bool_std__string.hpp +3 -2
  20. package/nitrogen/generated/android/c++/JFunc_void_bool_std__string_std__string.hpp +3 -2
  21. package/nitrogen/generated/android/c++/JFunc_void_std__optional_std__variant_nitro__NullType__BLEDevice___std__optional_std__variant_nitro__NullType__std__string__.hpp +91 -0
  22. package/nitrogen/generated/android/c++/JFunc_void_std__string_bool_std__string.hpp +3 -2
  23. package/nitrogen/generated/android/c++/JFunc_void_std__string_std__shared_ptr_ArrayBuffer_.hpp +3 -3
  24. package/nitrogen/generated/android/c++/JFunc_void_std__vector_BLEDevice_.hpp +5 -4
  25. package/nitrogen/generated/android/c++/JHybridNativeBleNitroFactorySpec.cpp +15 -4
  26. package/nitrogen/generated/android/c++/JHybridNativeBleNitroFactorySpec.hpp +3 -1
  27. package/nitrogen/generated/android/c++/JHybridNativeBleNitroSpec.cpp +27 -9
  28. package/nitrogen/generated/android/c++/JHybridNativeBleNitroSpec.hpp +4 -2
  29. package/nitrogen/generated/android/c++/JManufacturerData.hpp +8 -4
  30. package/nitrogen/generated/android/c++/JManufacturerDataEntry.hpp +6 -3
  31. package/nitrogen/generated/android/c++/JOperationResult.hpp +6 -2
  32. package/nitrogen/generated/android/c++/JScanFilter.hpp +8 -3
  33. package/nitrogen/generated/android/c++/JVariant_NullType_BLEDevice.cpp +26 -0
  34. package/nitrogen/generated/android/c++/JVariant_NullType_BLEDevice.hpp +79 -0
  35. package/nitrogen/generated/android/c++/JVariant_NullType_String.cpp +26 -0
  36. package/nitrogen/generated/android/c++/JVariant_NullType_String.hpp +70 -0
  37. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/AndroidScanMode.kt +3 -1
  38. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/BLEDevice.kt +34 -25
  39. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/BLEState.kt +3 -1
  40. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/BleNitroOnLoad.kt +1 -1
  41. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Func_void_BLEState.kt +1 -2
  42. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Func_void_bool_double_std__string.kt +1 -2
  43. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Func_void_bool_std__shared_ptr_ArrayBuffer__std__string.kt +2 -3
  44. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Func_void_bool_std__string.kt +1 -2
  45. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Func_void_bool_std__string_std__string.kt +1 -2
  46. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/{Func_void_std__optional_BLEDevice__std__optional_std__string_.kt → Func_void_std__optional_std__variant_nitro__NullType__BLEDevice___std__optional_std__variant_nitro__NullType__std__string__.kt} +11 -12
  47. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Func_void_std__string_bool_std__string.kt +1 -2
  48. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Func_void_std__string_std__shared_ptr_ArrayBuffer_.kt +2 -3
  49. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Func_void_std__vector_BLEDevice_.kt +1 -2
  50. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridNativeBleNitroFactorySpec.kt +8 -3
  51. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridNativeBleNitroSpec.kt +13 -5
  52. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/ManufacturerData.kt +16 -7
  53. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/ManufacturerDataEntry.kt +20 -11
  54. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/OperationResult.kt +19 -10
  55. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/ScanFilter.kt +25 -16
  56. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Variant_NullType_BLEDevice.kt +59 -0
  57. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Variant_NullType_String.kt +59 -0
  58. package/nitrogen/generated/ios/BleNitro+autolinking.rb +2 -2
  59. package/nitrogen/generated/ios/BleNitro-Swift-Cxx-Bridge.cpp +6 -5
  60. package/nitrogen/generated/ios/BleNitro-Swift-Cxx-Bridge.hpp +99 -27
  61. package/nitrogen/generated/ios/BleNitro-Swift-Cxx-Umbrella.hpp +3 -3
  62. package/nitrogen/generated/ios/BleNitroAutolinking.mm +1 -1
  63. package/nitrogen/generated/ios/BleNitroAutolinking.swift +13 -15
  64. package/nitrogen/generated/ios/c++/HybridNativeBleNitroFactorySpecSwift.cpp +1 -1
  65. package/nitrogen/generated/ios/c++/HybridNativeBleNitroFactorySpecSwift.hpp +10 -3
  66. package/nitrogen/generated/ios/c++/HybridNativeBleNitroSpecSwift.cpp +1 -1
  67. package/nitrogen/generated/ios/c++/HybridNativeBleNitroSpecSwift.hpp +13 -4
  68. package/nitrogen/generated/ios/swift/AndroidScanMode.swift +1 -1
  69. package/nitrogen/generated/ios/swift/BLEDevice.swift +15 -63
  70. package/nitrogen/generated/ios/swift/BLEState.swift +1 -1
  71. package/nitrogen/generated/ios/swift/Func_void.swift +1 -2
  72. package/nitrogen/generated/ios/swift/Func_void_BLEState.swift +1 -2
  73. package/nitrogen/generated/ios/swift/Func_void_bool_double_std__string.swift +1 -2
  74. package/nitrogen/generated/ios/swift/Func_void_bool_std__shared_ptr_ArrayBuffer__std__string.swift +1 -2
  75. package/nitrogen/generated/ios/swift/Func_void_bool_std__string.swift +1 -2
  76. package/nitrogen/generated/ios/swift/Func_void_bool_std__string_std__string.swift +1 -2
  77. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +1 -2
  78. package/nitrogen/generated/ios/swift/Func_void_std__optional_std__variant_nitro__NullType__BLEDevice___std__optional_std__variant_nitro__NullType__std__string__.swift +84 -0
  79. package/nitrogen/generated/ios/swift/Func_void_std__string_bool_std__string.swift +1 -2
  80. package/nitrogen/generated/ios/swift/Func_void_std__string_std__shared_ptr_ArrayBuffer_.swift +1 -2
  81. package/nitrogen/generated/ios/swift/Func_void_std__vector_BLEDevice_.swift +1 -2
  82. package/nitrogen/generated/ios/swift/HybridNativeBleNitroFactorySpec.swift +10 -4
  83. package/nitrogen/generated/ios/swift/HybridNativeBleNitroFactorySpec_cxx.swift +18 -3
  84. package/nitrogen/generated/ios/swift/HybridNativeBleNitroSpec.swift +11 -5
  85. package/nitrogen/generated/ios/swift/HybridNativeBleNitroSpec_cxx.swift +48 -12
  86. package/nitrogen/generated/ios/swift/ManufacturerData.swift +3 -15
  87. package/nitrogen/generated/ios/swift/ManufacturerDataEntry.swift +5 -17
  88. package/nitrogen/generated/ios/swift/OperationResult.swift +12 -30
  89. package/nitrogen/generated/ios/swift/ScanFilter.swift +9 -39
  90. package/nitrogen/generated/ios/swift/Variant_NullType_BLEDevice.swift +18 -0
  91. package/nitrogen/generated/ios/swift/Variant_NullType_String.swift +18 -0
  92. package/nitrogen/generated/shared/c++/AndroidScanMode.hpp +1 -1
  93. package/nitrogen/generated/shared/c++/BLEDevice.hpp +31 -23
  94. package/nitrogen/generated/shared/c++/BLEState.hpp +1 -1
  95. package/nitrogen/generated/shared/c++/HybridNativeBleNitroFactorySpec.cpp +1 -1
  96. package/nitrogen/generated/shared/c++/HybridNativeBleNitroFactorySpec.hpp +1 -1
  97. package/nitrogen/generated/shared/c++/HybridNativeBleNitroSpec.cpp +1 -1
  98. package/nitrogen/generated/shared/c++/HybridNativeBleNitroSpec.hpp +4 -4
  99. package/nitrogen/generated/shared/c++/ManufacturerData.hpp +13 -5
  100. package/nitrogen/generated/shared/c++/ManufacturerDataEntry.hpp +17 -10
  101. package/nitrogen/generated/shared/c++/OperationResult.hpp +16 -8
  102. package/nitrogen/generated/shared/c++/ScanFilter.hpp +22 -14
  103. package/package.json +10 -10
  104. package/src/manager.ts +2 -1
  105. package/nitrogen/generated/android/c++/JFunc_void_std__optional_BLEDevice__std__optional_std__string_.hpp +0 -86
  106. package/nitrogen/generated/ios/swift/Func_void_std__optional_BLEDevice__std__optional_std__string_.swift +0 -54
@@ -2,7 +2,7 @@
2
2
  /// ScanFilter.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -22,6 +22,11 @@
22
22
  #else
23
23
  #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
24
24
  #endif
25
+ #if __has_include(<NitroModules/PropNameIDCache.hpp>)
26
+ #include <NitroModules/PropNameIDCache.hpp>
27
+ #else
28
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
29
+ #endif
25
30
 
26
31
  // Forward declaration of `AndroidScanMode` to properly resolve imports.
27
32
  namespace margelo::nitro::co::zyke::ble { enum class AndroidScanMode; }
@@ -35,7 +40,7 @@ namespace margelo::nitro::co::zyke::ble {
35
40
  /**
36
41
  * A struct which can be represented as a JavaScript object (ScanFilter).
37
42
  */
38
- struct ScanFilter {
43
+ struct ScanFilter final {
39
44
  public:
40
45
  std::vector<std::string> serviceUUIDs SWIFT_PRIVATE;
41
46
  double rssiThreshold SWIFT_PRIVATE;
@@ -45,6 +50,9 @@ namespace margelo::nitro::co::zyke::ble {
45
50
  public:
46
51
  ScanFilter() = default;
47
52
  explicit ScanFilter(std::vector<std::string> serviceUUIDs, double rssiThreshold, bool allowDuplicates, AndroidScanMode androidScanMode): serviceUUIDs(serviceUUIDs), rssiThreshold(rssiThreshold), allowDuplicates(allowDuplicates), androidScanMode(androidScanMode) {}
53
+
54
+ public:
55
+ friend bool operator==(const ScanFilter& lhs, const ScanFilter& rhs) = default;
48
56
  };
49
57
 
50
58
  } // namespace margelo::nitro::co::zyke::ble
@@ -57,18 +65,18 @@ namespace margelo::nitro {
57
65
  static inline margelo::nitro::co::zyke::ble::ScanFilter fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
58
66
  jsi::Object obj = arg.asObject(runtime);
59
67
  return margelo::nitro::co::zyke::ble::ScanFilter(
60
- JSIConverter<std::vector<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "serviceUUIDs")),
61
- JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "rssiThreshold")),
62
- JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "allowDuplicates")),
63
- JSIConverter<margelo::nitro::co::zyke::ble::AndroidScanMode>::fromJSI(runtime, obj.getProperty(runtime, "androidScanMode"))
68
+ JSIConverter<std::vector<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "serviceUUIDs"))),
69
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "rssiThreshold"))),
70
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "allowDuplicates"))),
71
+ JSIConverter<margelo::nitro::co::zyke::ble::AndroidScanMode>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "androidScanMode")))
64
72
  );
65
73
  }
66
74
  static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::co::zyke::ble::ScanFilter& arg) {
67
75
  jsi::Object obj(runtime);
68
- obj.setProperty(runtime, "serviceUUIDs", JSIConverter<std::vector<std::string>>::toJSI(runtime, arg.serviceUUIDs));
69
- obj.setProperty(runtime, "rssiThreshold", JSIConverter<double>::toJSI(runtime, arg.rssiThreshold));
70
- obj.setProperty(runtime, "allowDuplicates", JSIConverter<bool>::toJSI(runtime, arg.allowDuplicates));
71
- obj.setProperty(runtime, "androidScanMode", JSIConverter<margelo::nitro::co::zyke::ble::AndroidScanMode>::toJSI(runtime, arg.androidScanMode));
76
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "serviceUUIDs"), JSIConverter<std::vector<std::string>>::toJSI(runtime, arg.serviceUUIDs));
77
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "rssiThreshold"), JSIConverter<double>::toJSI(runtime, arg.rssiThreshold));
78
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "allowDuplicates"), JSIConverter<bool>::toJSI(runtime, arg.allowDuplicates));
79
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "androidScanMode"), JSIConverter<margelo::nitro::co::zyke::ble::AndroidScanMode>::toJSI(runtime, arg.androidScanMode));
72
80
  return obj;
73
81
  }
74
82
  static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
@@ -79,10 +87,10 @@ namespace margelo::nitro {
79
87
  if (!nitro::isPlainObject(runtime, obj)) {
80
88
  return false;
81
89
  }
82
- if (!JSIConverter<std::vector<std::string>>::canConvert(runtime, obj.getProperty(runtime, "serviceUUIDs"))) return false;
83
- if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "rssiThreshold"))) return false;
84
- if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "allowDuplicates"))) return false;
85
- if (!JSIConverter<margelo::nitro::co::zyke::ble::AndroidScanMode>::canConvert(runtime, obj.getProperty(runtime, "androidScanMode"))) return false;
90
+ if (!JSIConverter<std::vector<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "serviceUUIDs")))) return false;
91
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "rssiThreshold")))) return false;
92
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "allowDuplicates")))) return false;
93
+ if (!JSIConverter<margelo::nitro::co::zyke::ble::AndroidScanMode>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "androidScanMode")))) return false;
86
94
  return true;
87
95
  }
88
96
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-ble-nitro",
3
- "version": "1.9.2",
3
+ "version": "1.9.4",
4
4
  "description": "High-performance React Native BLE library built on Nitro Modules",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -84,20 +84,20 @@
84
84
  "react-native-nitro-modules": "*"
85
85
  },
86
86
  "devDependencies": {
87
- "@expo/config-plugins": "^54.0.2",
87
+ "@expo/config-plugins": "^54.0.4",
88
88
  "@types/jest": "^29.5.0",
89
- "@types/node": "^20.19.21",
89
+ "@types/node": "^20.19.30",
90
90
  "@types/react": "^19.2.2",
91
91
  "@typescript-eslint/eslint-plugin": "^6.21.0",
92
92
  "@typescript-eslint/parser": "^6.21.0",
93
- "eslint": "^8.0.0",
94
- "expo-module-scripts": "^5.0.7",
93
+ "eslint": "^8.57.1",
94
+ "expo-module-scripts": "^5.0.8",
95
95
  "jest": "^29.0.0",
96
- "nitrogen": "^0.30.0",
97
- "react-native": "^0.81.4",
98
- "react-native-nitro-modules": "^0.30.0",
99
- "rimraf": "^6.0.1",
100
- "ts-jest": "^29.4.5",
96
+ "nitrogen": "^0.33.9",
97
+ "react-native": "^0.83.2",
98
+ "react-native-nitro-modules": "^0.33.9",
99
+ "rimraf": "^6.1.3",
100
+ "ts-jest": "^29.4.6",
101
101
  "typescript": "^5.9.3"
102
102
  },
103
103
  "files": [
package/src/manager.ts CHANGED
@@ -310,7 +310,7 @@ export class BleNitroManager {
310
310
  * @param scanTimeout Optional timeout for the scan in milliseconds (default: 5000ms)
311
311
  * @returns Promise resolving deviceId when connected
312
312
  */
313
- public findAndConnect(deviceId: string, options?: { scanTimeout?: number, autoConnectAndroid?: boolean, onDisconnect?: DisconnectEventCallback }): Promise<string> {
313
+ public findAndConnect(deviceId: string, options?: { scanTimeout?: number, autoConnectAndroid?: boolean, onDisconnect?: DisconnectEventCallback, onFound?: (device: BLEDevice) => void }): Promise<string> {
314
314
  const isConnected = this.isConnected(deviceId);
315
315
  if (isConnected) {
316
316
  return Promise.resolve(deviceId);
@@ -327,6 +327,7 @@ export class BleNitroManager {
327
327
  if (device.id === deviceId) {
328
328
  this.stopScan();
329
329
  clearTimeout(timeoutScan);
330
+ options?.onFound?.(device);
330
331
  this.connect(deviceId, options?.onDisconnect, options?.autoConnectAndroid).then(async (connectedDeviceId) => {
331
332
  resolve(connectedDeviceId);
332
333
  }).catch((error) => {
@@ -1,86 +0,0 @@
1
- ///
2
- /// JFunc_void_std__optional_BLEDevice__std__optional_std__string_.hpp
3
- /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
- /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
6
- ///
7
-
8
- #pragma once
9
-
10
- #include <fbjni/fbjni.h>
11
- #include <functional>
12
-
13
- #include "BLEDevice.hpp"
14
- #include <optional>
15
- #include <string>
16
- #include <functional>
17
- #include "JBLEDevice.hpp"
18
- #include "ManufacturerData.hpp"
19
- #include "JManufacturerData.hpp"
20
- #include "ManufacturerDataEntry.hpp"
21
- #include <vector>
22
- #include "JManufacturerDataEntry.hpp"
23
- #include <NitroModules/ArrayBuffer.hpp>
24
- #include <NitroModules/JArrayBuffer.hpp>
25
- #include <NitroModules/JUnit.hpp>
26
-
27
- namespace margelo::nitro::co::zyke::ble {
28
-
29
- using namespace facebook;
30
-
31
- /**
32
- * Represents the Java/Kotlin callback `(device: BLEDevice?, error: String?) -> Unit`.
33
- * This can be passed around between C++ and Java/Kotlin.
34
- */
35
- struct JFunc_void_std__optional_BLEDevice__std__optional_std__string_: public jni::JavaClass<JFunc_void_std__optional_BLEDevice__std__optional_std__string_> {
36
- public:
37
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/co/zyke/ble/Func_void_std__optional_BLEDevice__std__optional_std__string_;";
38
-
39
- public:
40
- /**
41
- * Invokes the function this `JFunc_void_std__optional_BLEDevice__std__optional_std__string_` instance holds through JNI.
42
- */
43
- void invoke(const std::optional<BLEDevice>& device, const std::optional<std::string>& error) const {
44
- static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JBLEDevice> /* device */, jni::alias_ref<jni::JString> /* error */)>("invoke");
45
- method(self(), device.has_value() ? JBLEDevice::fromCpp(device.value()) : nullptr, error.has_value() ? jni::make_jstring(error.value()) : nullptr);
46
- }
47
- };
48
-
49
- /**
50
- * An implementation of Func_void_std__optional_BLEDevice__std__optional_std__string_ that is backed by a C++ implementation (using `std::function<...>`)
51
- */
52
- struct JFunc_void_std__optional_BLEDevice__std__optional_std__string__cxx final: public jni::HybridClass<JFunc_void_std__optional_BLEDevice__std__optional_std__string__cxx, JFunc_void_std__optional_BLEDevice__std__optional_std__string_> {
53
- public:
54
- static jni::local_ref<JFunc_void_std__optional_BLEDevice__std__optional_std__string_::javaobject> fromCpp(const std::function<void(const std::optional<BLEDevice>& /* device */, const std::optional<std::string>& /* error */)>& func) {
55
- return JFunc_void_std__optional_BLEDevice__std__optional_std__string__cxx::newObjectCxxArgs(func);
56
- }
57
-
58
- public:
59
- /**
60
- * Invokes the C++ `std::function<...>` this `JFunc_void_std__optional_BLEDevice__std__optional_std__string__cxx` instance holds.
61
- */
62
- void invoke_cxx(jni::alias_ref<JBLEDevice> device, jni::alias_ref<jni::JString> error) {
63
- _func(device != nullptr ? std::make_optional(device->toCpp()) : std::nullopt, error != nullptr ? std::make_optional(error->toStdString()) : std::nullopt);
64
- }
65
-
66
- public:
67
- [[nodiscard]]
68
- inline const std::function<void(const std::optional<BLEDevice>& /* device */, const std::optional<std::string>& /* error */)>& getFunction() const {
69
- return _func;
70
- }
71
-
72
- public:
73
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/co/zyke/ble/Func_void_std__optional_BLEDevice__std__optional_std__string__cxx;";
74
- static void registerNatives() {
75
- registerHybrid({makeNativeMethod("invoke_cxx", JFunc_void_std__optional_BLEDevice__std__optional_std__string__cxx::invoke_cxx)});
76
- }
77
-
78
- private:
79
- explicit JFunc_void_std__optional_BLEDevice__std__optional_std__string__cxx(const std::function<void(const std::optional<BLEDevice>& /* device */, const std::optional<std::string>& /* error */)>& func): _func(func) { }
80
-
81
- private:
82
- friend HybridBase;
83
- std::function<void(const std::optional<BLEDevice>& /* device */, const std::optional<std::string>& /* error */)> _func;
84
- };
85
-
86
- } // namespace margelo::nitro::co::zyke::ble
@@ -1,54 +0,0 @@
1
- ///
2
- /// Func_void_std__optional_BLEDevice__std__optional_std__string_.swift
3
- /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
- /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
6
- ///
7
-
8
- import NitroModules
9
-
10
-
11
- /**
12
- * Wraps a Swift `(_ device: BLEDevice?, _ error: String?) -> Void` as a class.
13
- * This class can be used from C++, e.g. to wrap the Swift closure as a `std::function`.
14
- */
15
- public final class Func_void_std__optional_BLEDevice__std__optional_std__string_ {
16
- public typealias bridge = margelo.nitro.co.zyke.ble.bridge.swift
17
-
18
- private let closure: (_ device: BLEDevice?, _ error: String?) -> Void
19
-
20
- public init(_ closure: @escaping (_ device: BLEDevice?, _ error: String?) -> Void) {
21
- self.closure = closure
22
- }
23
-
24
- @inline(__always)
25
- public func call(device: bridge.std__optional_BLEDevice_, error: bridge.std__optional_std__string_) -> Void {
26
- self.closure(device.value, { () -> String? in
27
- if bridge.has_value_std__optional_std__string_(error) {
28
- let __unwrapped = bridge.get_std__optional_std__string_(error)
29
- return String(__unwrapped)
30
- } else {
31
- return nil
32
- }
33
- }())
34
- }
35
-
36
- /**
37
- * Casts this instance to a retained unsafe raw pointer.
38
- * This acquires one additional strong reference on the object!
39
- */
40
- @inline(__always)
41
- public func toUnsafe() -> UnsafeMutableRawPointer {
42
- return Unmanaged.passRetained(self).toOpaque()
43
- }
44
-
45
- /**
46
- * Casts an unsafe pointer to a `Func_void_std__optional_BLEDevice__std__optional_std__string_`.
47
- * The pointer has to be a retained opaque `Unmanaged<Func_void_std__optional_BLEDevice__std__optional_std__string_>`.
48
- * This removes one strong reference from the object!
49
- */
50
- @inline(__always)
51
- public static func fromUnsafe(_ pointer: UnsafeMutableRawPointer) -> Func_void_std__optional_BLEDevice__std__optional_std__string_ {
52
- return Unmanaged<Func_void_std__optional_BLEDevice__std__optional_std__string_>.fromOpaque(pointer).takeRetainedValue()
53
- }
54
- }