react-native-nitro-dgram 0.1.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.
- package/android/CMakeLists.txt +24 -0
- package/android/OnLoad.cpp +6 -0
- package/android/build.gradle +64 -0
- package/android/libs/arm64-v8a/librust_c_udp.so +0 -0
- package/android/libs/armeabi-v7a/librust_c_udp.so +0 -0
- package/android/libs/x86/librust_c_udp.so +0 -0
- package/android/libs/x86_64/librust_c_udp.so +0 -0
- package/android/src/main/java/com/margelo/nitro/udp/NitroUdpPackage.java +25 -0
- package/cpp/HybridUdpDriver.cpp +21 -0
- package/cpp/HybridUdpDriver.hpp +18 -0
- package/cpp/HybridUdpSocketDriver.cpp +252 -0
- package/cpp/HybridUdpSocketDriver.hpp +88 -0
- package/cpp/UdpBindings.hpp +83 -0
- package/cpp/UdpManager.hpp +108 -0
- package/ios/Frameworks/RustCUdp.xcframework/Info.plist +44 -0
- package/ios/Frameworks/RustCUdp.xcframework/ios-arm64/RustCUdp.framework/Info.plist +20 -0
- package/ios/Frameworks/RustCUdp.xcframework/ios-arm64/RustCUdp.framework/RustCUdp +0 -0
- package/ios/Frameworks/RustCUdp.xcframework/ios-arm64_x86_64-simulator/RustCUdp.framework/Info.plist +20 -0
- package/ios/Frameworks/RustCUdp.xcframework/ios-arm64_x86_64-simulator/RustCUdp.framework/RustCUdp +0 -0
- package/lib/Driver.d.ts +2 -0
- package/lib/Driver.js +6 -0
- package/lib/Driver.js.map +1 -0
- package/lib/Udp.nitro.d.ts +54 -0
- package/lib/Udp.nitro.js +3 -0
- package/lib/Udp.nitro.js.map +1 -0
- package/lib/index.d.ts +82 -0
- package/lib/index.js +375 -0
- package/lib/index.js.map +1 -0
- package/nitrogen/generated/.gitattributes +1 -0
- package/nitrogen/generated/android/RustCUdp+autolinking.cmake +84 -0
- package/nitrogen/generated/android/RustCUdp+autolinking.gradle +27 -0
- package/nitrogen/generated/android/RustCUdpOnLoad.cpp +53 -0
- package/nitrogen/generated/android/RustCUdpOnLoad.hpp +25 -0
- package/nitrogen/generated/android/c++/JFunc_void.hpp +75 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__shared_ptr_ArrayBuffer__std__string_double.hpp +78 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__string.hpp +76 -0
- package/nitrogen/generated/android/c++/JHybridUdpDriverSpec.cpp +57 -0
- package/nitrogen/generated/android/c++/JHybridUdpDriverSpec.hpp +65 -0
- package/nitrogen/generated/android/c++/JHybridUdpSocketDriverSpec.cpp +261 -0
- package/nitrogen/generated/android/c++/JHybridUdpSocketDriverSpec.hpp +97 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/udp/Func_void.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/udp/Func_void_std__shared_ptr_ArrayBuffer__std__string_double.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/udp/Func_void_std__string.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/udp/HybridUdpDriverSpec.kt +57 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/udp/HybridUdpSocketDriverSpec.kt +212 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/udp/RustCUdpOnLoad.kt +35 -0
- package/nitrogen/generated/ios/RustCUdp+autolinking.rb +60 -0
- package/nitrogen/generated/ios/RustCUdp-Swift-Cxx-Bridge.cpp +74 -0
- package/nitrogen/generated/ios/RustCUdp-Swift-Cxx-Bridge.hpp +195 -0
- package/nitrogen/generated/ios/RustCUdp-Swift-Cxx-Umbrella.hpp +53 -0
- package/nitrogen/generated/ios/RustCUdpAutolinking.mm +35 -0
- package/nitrogen/generated/ios/RustCUdpAutolinking.swift +12 -0
- package/nitrogen/generated/ios/c++/HybridUdpDriverSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridUdpDriverSpecSwift.hpp +80 -0
- package/nitrogen/generated/ios/c++/HybridUdpSocketDriverSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridUdpSocketDriverSpecSwift.hpp +302 -0
- package/nitrogen/generated/ios/swift/Func_void.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_ArrayBuffer__std__string_double.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__string.swift +47 -0
- package/nitrogen/generated/ios/swift/HybridUdpDriverSpec.swift +56 -0
- package/nitrogen/generated/ios/swift/HybridUdpDriverSpec_cxx.swift +141 -0
- package/nitrogen/generated/ios/swift/HybridUdpSocketDriverSpec.swift +84 -0
- package/nitrogen/generated/ios/swift/HybridUdpSocketDriverSpec_cxx.swift +527 -0
- package/nitrogen/generated/shared/c++/HybridNitroBufferSpec.cpp +32 -0
- package/nitrogen/generated/shared/c++/HybridNitroBufferSpec.hpp +74 -0
- package/nitrogen/generated/shared/c++/HybridUdpDriverSpec.cpp +21 -0
- package/nitrogen/generated/shared/c++/HybridUdpDriverSpec.hpp +66 -0
- package/nitrogen/generated/shared/c++/HybridUdpSocketDriverSpec.cpp +54 -0
- package/nitrogen/generated/shared/c++/HybridUdpSocketDriverSpec.hpp +98 -0
- package/package.json +59 -0
- package/react-native-nitro-dgram.podspec +45 -0
- package/src/Driver.ts +4 -0
- package/src/Udp.nitro.ts +55 -0
- package/src/index.ts +414 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JFunc_void_std__shared_ptr_ArrayBuffer__std__string_double.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 <NitroModules/ArrayBuffer.hpp>
|
|
14
|
+
#include <string>
|
|
15
|
+
#include <functional>
|
|
16
|
+
#include <NitroModules/JNICallable.hpp>
|
|
17
|
+
#include <NitroModules/JArrayBuffer.hpp>
|
|
18
|
+
|
|
19
|
+
namespace margelo::nitro::udp {
|
|
20
|
+
|
|
21
|
+
using namespace facebook;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Represents the Java/Kotlin callback `(data: ArrayBuffer, address: String, port: Double) -> Unit`.
|
|
25
|
+
* This can be passed around between C++ and Java/Kotlin.
|
|
26
|
+
*/
|
|
27
|
+
struct JFunc_void_std__shared_ptr_ArrayBuffer__std__string_double: public jni::JavaClass<JFunc_void_std__shared_ptr_ArrayBuffer__std__string_double> {
|
|
28
|
+
public:
|
|
29
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/udp/Func_void_std__shared_ptr_ArrayBuffer__std__string_double;";
|
|
30
|
+
|
|
31
|
+
public:
|
|
32
|
+
/**
|
|
33
|
+
* Invokes the function this `JFunc_void_std__shared_ptr_ArrayBuffer__std__string_double` instance holds through JNI.
|
|
34
|
+
*/
|
|
35
|
+
void invoke(const std::shared_ptr<ArrayBuffer>& data, const std::string& address, double port) const {
|
|
36
|
+
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JArrayBuffer::javaobject> /* data */, jni::alias_ref<jni::JString> /* address */, double /* port */)>("invoke");
|
|
37
|
+
method(self(), JArrayBuffer::wrap(data), jni::make_jstring(address), port);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* An implementation of Func_void_std__shared_ptr_ArrayBuffer__std__string_double that is backed by a C++ implementation (using `std::function<...>`)
|
|
43
|
+
*/
|
|
44
|
+
class JFunc_void_std__shared_ptr_ArrayBuffer__std__string_double_cxx final: public jni::HybridClass<JFunc_void_std__shared_ptr_ArrayBuffer__std__string_double_cxx, JFunc_void_std__shared_ptr_ArrayBuffer__std__string_double> {
|
|
45
|
+
public:
|
|
46
|
+
static jni::local_ref<JFunc_void_std__shared_ptr_ArrayBuffer__std__string_double::javaobject> fromCpp(const std::function<void(const std::shared_ptr<ArrayBuffer>& /* data */, const std::string& /* address */, double /* port */)>& func) {
|
|
47
|
+
return JFunc_void_std__shared_ptr_ArrayBuffer__std__string_double_cxx::newObjectCxxArgs(func);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
public:
|
|
51
|
+
/**
|
|
52
|
+
* Invokes the C++ `std::function<...>` this `JFunc_void_std__shared_ptr_ArrayBuffer__std__string_double_cxx` instance holds.
|
|
53
|
+
*/
|
|
54
|
+
void invoke_cxx(jni::alias_ref<JArrayBuffer::javaobject> data, jni::alias_ref<jni::JString> address, double port) {
|
|
55
|
+
_func(data->cthis()->getArrayBuffer(), address->toStdString(), port);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
public:
|
|
59
|
+
[[nodiscard]]
|
|
60
|
+
inline const std::function<void(const std::shared_ptr<ArrayBuffer>& /* data */, const std::string& /* address */, double /* port */)>& getFunction() const {
|
|
61
|
+
return _func;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
public:
|
|
65
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/udp/Func_void_std__shared_ptr_ArrayBuffer__std__string_double_cxx;";
|
|
66
|
+
static void registerNatives() {
|
|
67
|
+
registerHybrid({makeNativeMethod("invoke_cxx", JFunc_void_std__shared_ptr_ArrayBuffer__std__string_double_cxx::invoke_cxx)});
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
private:
|
|
71
|
+
explicit JFunc_void_std__shared_ptr_ArrayBuffer__std__string_double_cxx(const std::function<void(const std::shared_ptr<ArrayBuffer>& /* data */, const std::string& /* address */, double /* port */)>& func): _func(func) { }
|
|
72
|
+
|
|
73
|
+
private:
|
|
74
|
+
friend HybridBase;
|
|
75
|
+
std::function<void(const std::shared_ptr<ArrayBuffer>& /* data */, const std::string& /* address */, double /* port */)> _func;
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
} // namespace margelo::nitro::udp
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JFunc_void_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 <string>
|
|
14
|
+
#include <functional>
|
|
15
|
+
#include <NitroModules/JNICallable.hpp>
|
|
16
|
+
|
|
17
|
+
namespace margelo::nitro::udp {
|
|
18
|
+
|
|
19
|
+
using namespace facebook;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Represents the Java/Kotlin callback `(error: String) -> Unit`.
|
|
23
|
+
* This can be passed around between C++ and Java/Kotlin.
|
|
24
|
+
*/
|
|
25
|
+
struct JFunc_void_std__string: public jni::JavaClass<JFunc_void_std__string> {
|
|
26
|
+
public:
|
|
27
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/udp/Func_void_std__string;";
|
|
28
|
+
|
|
29
|
+
public:
|
|
30
|
+
/**
|
|
31
|
+
* Invokes the function this `JFunc_void_std__string` instance holds through JNI.
|
|
32
|
+
*/
|
|
33
|
+
void invoke(const std::string& error) const {
|
|
34
|
+
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* error */)>("invoke");
|
|
35
|
+
method(self(), jni::make_jstring(error));
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* An implementation of Func_void_std__string that is backed by a C++ implementation (using `std::function<...>`)
|
|
41
|
+
*/
|
|
42
|
+
class JFunc_void_std__string_cxx final: public jni::HybridClass<JFunc_void_std__string_cxx, JFunc_void_std__string> {
|
|
43
|
+
public:
|
|
44
|
+
static jni::local_ref<JFunc_void_std__string::javaobject> fromCpp(const std::function<void(const std::string& /* error */)>& func) {
|
|
45
|
+
return JFunc_void_std__string_cxx::newObjectCxxArgs(func);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
public:
|
|
49
|
+
/**
|
|
50
|
+
* Invokes the C++ `std::function<...>` this `JFunc_void_std__string_cxx` instance holds.
|
|
51
|
+
*/
|
|
52
|
+
void invoke_cxx(jni::alias_ref<jni::JString> error) {
|
|
53
|
+
_func(error->toStdString());
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
public:
|
|
57
|
+
[[nodiscard]]
|
|
58
|
+
inline const std::function<void(const std::string& /* error */)>& getFunction() const {
|
|
59
|
+
return _func;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
public:
|
|
63
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/udp/Func_void_std__string_cxx;";
|
|
64
|
+
static void registerNatives() {
|
|
65
|
+
registerHybrid({makeNativeMethod("invoke_cxx", JFunc_void_std__string_cxx::invoke_cxx)});
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
private:
|
|
69
|
+
explicit JFunc_void_std__string_cxx(const std::function<void(const std::string& /* error */)>& func): _func(func) { }
|
|
70
|
+
|
|
71
|
+
private:
|
|
72
|
+
friend HybridBase;
|
|
73
|
+
std::function<void(const std::string& /* error */)> _func;
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
} // namespace margelo::nitro::udp
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JHybridUdpDriverSpec.cpp
|
|
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
|
+
#include "JHybridUdpDriverSpec.hpp"
|
|
9
|
+
|
|
10
|
+
// Forward declaration of `HybridUdpSocketDriverSpec` to properly resolve imports.
|
|
11
|
+
namespace margelo::nitro::udp { class HybridUdpSocketDriverSpec; }
|
|
12
|
+
|
|
13
|
+
#include <memory>
|
|
14
|
+
#include "HybridUdpSocketDriverSpec.hpp"
|
|
15
|
+
#include "JHybridUdpSocketDriverSpec.hpp"
|
|
16
|
+
#include <string>
|
|
17
|
+
#include <optional>
|
|
18
|
+
|
|
19
|
+
namespace margelo::nitro::udp {
|
|
20
|
+
|
|
21
|
+
jni::local_ref<JHybridUdpDriverSpec::jhybriddata> JHybridUdpDriverSpec::initHybrid(jni::alias_ref<jhybridobject> jThis) {
|
|
22
|
+
return makeCxxInstance(jThis);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
void JHybridUdpDriverSpec::registerNatives() {
|
|
26
|
+
registerHybrid({
|
|
27
|
+
makeNativeMethod("initHybrid", JHybridUdpDriverSpec::initHybrid),
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
size_t JHybridUdpDriverSpec::getExternalMemorySize() noexcept {
|
|
32
|
+
static const auto method = javaClassStatic()->getMethod<jlong()>("getMemorySize");
|
|
33
|
+
return method(_javaPart);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
void JHybridUdpDriverSpec::dispose() noexcept {
|
|
37
|
+
static const auto method = javaClassStatic()->getMethod<void()>("dispose");
|
|
38
|
+
method(_javaPart);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
std::string JHybridUdpDriverSpec::toString() {
|
|
42
|
+
static const auto method = javaClassStatic()->getMethod<jni::JString()>("toString");
|
|
43
|
+
auto javaString = method(_javaPart);
|
|
44
|
+
return javaString->toStdString();
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Properties
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
// Methods
|
|
51
|
+
std::shared_ptr<HybridUdpSocketDriverSpec> JHybridUdpDriverSpec::createSocket(const std::optional<std::string>& id) {
|
|
52
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JHybridUdpSocketDriverSpec::javaobject>(jni::alias_ref<jni::JString> /* id */)>("createSocket");
|
|
53
|
+
auto __result = method(_javaPart, id.has_value() ? jni::make_jstring(id.value()) : nullptr);
|
|
54
|
+
return __result->cthis()->shared_cast<JHybridUdpSocketDriverSpec>();
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
} // namespace margelo::nitro::udp
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridUdpDriverSpec.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 <NitroModules/JHybridObject.hpp>
|
|
11
|
+
#include <fbjni/fbjni.h>
|
|
12
|
+
#include "HybridUdpDriverSpec.hpp"
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
namespace margelo::nitro::udp {
|
|
18
|
+
|
|
19
|
+
using namespace facebook;
|
|
20
|
+
|
|
21
|
+
class JHybridUdpDriverSpec: public jni::HybridClass<JHybridUdpDriverSpec, JHybridObject>,
|
|
22
|
+
public virtual HybridUdpDriverSpec {
|
|
23
|
+
public:
|
|
24
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/udp/HybridUdpDriverSpec;";
|
|
25
|
+
static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> jThis);
|
|
26
|
+
static void registerNatives();
|
|
27
|
+
|
|
28
|
+
protected:
|
|
29
|
+
// C++ constructor (called from Java via `initHybrid()`)
|
|
30
|
+
explicit JHybridUdpDriverSpec(jni::alias_ref<jhybridobject> jThis) :
|
|
31
|
+
HybridObject(HybridUdpDriverSpec::TAG),
|
|
32
|
+
HybridBase(jThis),
|
|
33
|
+
_javaPart(jni::make_global(jThis)) {}
|
|
34
|
+
|
|
35
|
+
public:
|
|
36
|
+
~JHybridUdpDriverSpec() override {
|
|
37
|
+
// Hermes GC can destroy JS objects on a non-JNI Thread.
|
|
38
|
+
jni::ThreadScope::WithClassLoader([&] { _javaPart.reset(); });
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
public:
|
|
42
|
+
size_t getExternalMemorySize() noexcept override;
|
|
43
|
+
void dispose() noexcept override;
|
|
44
|
+
std::string toString() override;
|
|
45
|
+
|
|
46
|
+
public:
|
|
47
|
+
inline const jni::global_ref<JHybridUdpDriverSpec::javaobject>& getJavaPart() const noexcept {
|
|
48
|
+
return _javaPart;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
public:
|
|
52
|
+
// Properties
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
public:
|
|
56
|
+
// Methods
|
|
57
|
+
std::shared_ptr<HybridUdpSocketDriverSpec> createSocket(const std::optional<std::string>& id) override;
|
|
58
|
+
|
|
59
|
+
private:
|
|
60
|
+
friend HybridBase;
|
|
61
|
+
using HybridBase::HybridBase;
|
|
62
|
+
jni::global_ref<JHybridUdpDriverSpec::javaobject> _javaPart;
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
} // namespace margelo::nitro::udp
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JHybridUdpSocketDriverSpec.cpp
|
|
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
|
+
#include "JHybridUdpSocketDriverSpec.hpp"
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
#include <NitroModules/ArrayBuffer.hpp>
|
|
13
|
+
#include <string>
|
|
14
|
+
#include <functional>
|
|
15
|
+
#include "JFunc_void_std__shared_ptr_ArrayBuffer__std__string_double.hpp"
|
|
16
|
+
#include <NitroModules/JNICallable.hpp>
|
|
17
|
+
#include <NitroModules/JArrayBuffer.hpp>
|
|
18
|
+
#include "JFunc_void.hpp"
|
|
19
|
+
#include "JFunc_void_std__string.hpp"
|
|
20
|
+
#include <vector>
|
|
21
|
+
#include <optional>
|
|
22
|
+
|
|
23
|
+
namespace margelo::nitro::udp {
|
|
24
|
+
|
|
25
|
+
jni::local_ref<JHybridUdpSocketDriverSpec::jhybriddata> JHybridUdpSocketDriverSpec::initHybrid(jni::alias_ref<jhybridobject> jThis) {
|
|
26
|
+
return makeCxxInstance(jThis);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
void JHybridUdpSocketDriverSpec::registerNatives() {
|
|
30
|
+
registerHybrid({
|
|
31
|
+
makeNativeMethod("initHybrid", JHybridUdpSocketDriverSpec::initHybrid),
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
size_t JHybridUdpSocketDriverSpec::getExternalMemorySize() noexcept {
|
|
36
|
+
static const auto method = javaClassStatic()->getMethod<jlong()>("getMemorySize");
|
|
37
|
+
return method(_javaPart);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
void JHybridUdpSocketDriverSpec::dispose() noexcept {
|
|
41
|
+
static const auto method = javaClassStatic()->getMethod<void()>("dispose");
|
|
42
|
+
method(_javaPart);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
std::string JHybridUdpSocketDriverSpec::toString() {
|
|
46
|
+
static const auto method = javaClassStatic()->getMethod<jni::JString()>("toString");
|
|
47
|
+
auto javaString = method(_javaPart);
|
|
48
|
+
return javaString->toStdString();
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Properties
|
|
52
|
+
double JHybridUdpSocketDriverSpec::getId() {
|
|
53
|
+
static const auto method = javaClassStatic()->getMethod<double()>("getId");
|
|
54
|
+
auto __result = method(_javaPart);
|
|
55
|
+
return __result;
|
|
56
|
+
}
|
|
57
|
+
std::function<void(const std::shared_ptr<ArrayBuffer>& /* data */, const std::string& /* address */, double /* port */)> JHybridUdpSocketDriverSpec::getOnMessage() {
|
|
58
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void_std__shared_ptr_ArrayBuffer__std__string_double::javaobject>()>("getOnMessage_cxx");
|
|
59
|
+
auto __result = method(_javaPart);
|
|
60
|
+
return [&]() -> std::function<void(const std::shared_ptr<ArrayBuffer>& /* data */, const std::string& /* address */, double /* port */)> {
|
|
61
|
+
if (__result->isInstanceOf(JFunc_void_std__shared_ptr_ArrayBuffer__std__string_double_cxx::javaClassStatic())) [[likely]] {
|
|
62
|
+
auto downcast = jni::static_ref_cast<JFunc_void_std__shared_ptr_ArrayBuffer__std__string_double_cxx::javaobject>(__result);
|
|
63
|
+
return downcast->cthis()->getFunction();
|
|
64
|
+
} else {
|
|
65
|
+
auto __resultRef = jni::make_global(__result);
|
|
66
|
+
return JNICallable<JFunc_void_std__shared_ptr_ArrayBuffer__std__string_double, void(std::shared_ptr<ArrayBuffer>, std::string, double)>(std::move(__resultRef));
|
|
67
|
+
}
|
|
68
|
+
}();
|
|
69
|
+
}
|
|
70
|
+
void JHybridUdpSocketDriverSpec::setOnMessage(const std::function<void(const std::shared_ptr<ArrayBuffer>& /* data */, const std::string& /* address */, double /* port */)>& onMessage) {
|
|
71
|
+
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_std__shared_ptr_ArrayBuffer__std__string_double::javaobject> /* onMessage */)>("setOnMessage_cxx");
|
|
72
|
+
method(_javaPart, JFunc_void_std__shared_ptr_ArrayBuffer__std__string_double_cxx::fromCpp(onMessage));
|
|
73
|
+
}
|
|
74
|
+
std::function<void()> JHybridUdpSocketDriverSpec::getOnConnect() {
|
|
75
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void::javaobject>()>("getOnConnect_cxx");
|
|
76
|
+
auto __result = method(_javaPart);
|
|
77
|
+
return [&]() -> std::function<void()> {
|
|
78
|
+
if (__result->isInstanceOf(JFunc_void_cxx::javaClassStatic())) [[likely]] {
|
|
79
|
+
auto downcast = jni::static_ref_cast<JFunc_void_cxx::javaobject>(__result);
|
|
80
|
+
return downcast->cthis()->getFunction();
|
|
81
|
+
} else {
|
|
82
|
+
auto __resultRef = jni::make_global(__result);
|
|
83
|
+
return JNICallable<JFunc_void, void()>(std::move(__resultRef));
|
|
84
|
+
}
|
|
85
|
+
}();
|
|
86
|
+
}
|
|
87
|
+
void JHybridUdpSocketDriverSpec::setOnConnect(const std::function<void()>& onConnect) {
|
|
88
|
+
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void::javaobject> /* onConnect */)>("setOnConnect_cxx");
|
|
89
|
+
method(_javaPart, JFunc_void_cxx::fromCpp(onConnect));
|
|
90
|
+
}
|
|
91
|
+
std::function<void(const std::string& /* error */)> JHybridUdpSocketDriverSpec::getOnError() {
|
|
92
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void_std__string::javaobject>()>("getOnError_cxx");
|
|
93
|
+
auto __result = method(_javaPart);
|
|
94
|
+
return [&]() -> std::function<void(const std::string& /* error */)> {
|
|
95
|
+
if (__result->isInstanceOf(JFunc_void_std__string_cxx::javaClassStatic())) [[likely]] {
|
|
96
|
+
auto downcast = jni::static_ref_cast<JFunc_void_std__string_cxx::javaobject>(__result);
|
|
97
|
+
return downcast->cthis()->getFunction();
|
|
98
|
+
} else {
|
|
99
|
+
auto __resultRef = jni::make_global(__result);
|
|
100
|
+
return JNICallable<JFunc_void_std__string, void(std::string)>(std::move(__resultRef));
|
|
101
|
+
}
|
|
102
|
+
}();
|
|
103
|
+
}
|
|
104
|
+
void JHybridUdpSocketDriverSpec::setOnError(const std::function<void(const std::string& /* error */)>& onError) {
|
|
105
|
+
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_std__string::javaobject> /* onError */)>("setOnError_cxx");
|
|
106
|
+
method(_javaPart, JFunc_void_std__string_cxx::fromCpp(onError));
|
|
107
|
+
}
|
|
108
|
+
std::function<void()> JHybridUdpSocketDriverSpec::getOnClose() {
|
|
109
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void::javaobject>()>("getOnClose_cxx");
|
|
110
|
+
auto __result = method(_javaPart);
|
|
111
|
+
return [&]() -> std::function<void()> {
|
|
112
|
+
if (__result->isInstanceOf(JFunc_void_cxx::javaClassStatic())) [[likely]] {
|
|
113
|
+
auto downcast = jni::static_ref_cast<JFunc_void_cxx::javaobject>(__result);
|
|
114
|
+
return downcast->cthis()->getFunction();
|
|
115
|
+
} else {
|
|
116
|
+
auto __resultRef = jni::make_global(__result);
|
|
117
|
+
return JNICallable<JFunc_void, void()>(std::move(__resultRef));
|
|
118
|
+
}
|
|
119
|
+
}();
|
|
120
|
+
}
|
|
121
|
+
void JHybridUdpSocketDriverSpec::setOnClose(const std::function<void()>& onClose) {
|
|
122
|
+
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void::javaobject> /* onClose */)>("setOnClose_cxx");
|
|
123
|
+
method(_javaPart, JFunc_void_cxx::fromCpp(onClose));
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
// Methods
|
|
127
|
+
double JHybridUdpSocketDriverSpec::bind(double port, const std::string& address, bool ipv6Only) {
|
|
128
|
+
static const auto method = javaClassStatic()->getMethod<double(double /* port */, jni::alias_ref<jni::JString> /* address */, jboolean /* ipv6Only */)>("bind");
|
|
129
|
+
auto __result = method(_javaPart, port, jni::make_jstring(address), ipv6Only);
|
|
130
|
+
return __result;
|
|
131
|
+
}
|
|
132
|
+
double JHybridUdpSocketDriverSpec::connect(double port, const std::string& address) {
|
|
133
|
+
static const auto method = javaClassStatic()->getMethod<double(double /* port */, jni::alias_ref<jni::JString> /* address */)>("connect");
|
|
134
|
+
auto __result = method(_javaPart, port, jni::make_jstring(address));
|
|
135
|
+
return __result;
|
|
136
|
+
}
|
|
137
|
+
double JHybridUdpSocketDriverSpec::disconnect() {
|
|
138
|
+
static const auto method = javaClassStatic()->getMethod<double()>("disconnect");
|
|
139
|
+
auto __result = method(_javaPart);
|
|
140
|
+
return __result;
|
|
141
|
+
}
|
|
142
|
+
double JHybridUdpSocketDriverSpec::send(const std::shared_ptr<ArrayBuffer>& data, double port, const std::string& address) {
|
|
143
|
+
static const auto method = javaClassStatic()->getMethod<double(jni::alias_ref<JArrayBuffer::javaobject> /* data */, double /* port */, jni::alias_ref<jni::JString> /* address */)>("send");
|
|
144
|
+
auto __result = method(_javaPart, JArrayBuffer::wrap(data), port, jni::make_jstring(address));
|
|
145
|
+
return __result;
|
|
146
|
+
}
|
|
147
|
+
double JHybridUdpSocketDriverSpec::sendMultiple(const std::vector<std::shared_ptr<ArrayBuffer>>& data, double port, const std::string& address) {
|
|
148
|
+
static const auto method = javaClassStatic()->getMethod<double(jni::alias_ref<jni::JArrayClass<JArrayBuffer::javaobject>> /* data */, double /* port */, jni::alias_ref<jni::JString> /* address */)>("sendMultiple");
|
|
149
|
+
auto __result = method(_javaPart, [&]() {
|
|
150
|
+
size_t __size = data.size();
|
|
151
|
+
jni::local_ref<jni::JArrayClass<JArrayBuffer::javaobject>> __array = jni::JArrayClass<JArrayBuffer::javaobject>::newArray(__size);
|
|
152
|
+
for (size_t __i = 0; __i < __size; __i++) {
|
|
153
|
+
const auto& __element = data[__i];
|
|
154
|
+
auto __elementJni = JArrayBuffer::wrap(__element);
|
|
155
|
+
__array->setElement(__i, __elementJni.get());
|
|
156
|
+
}
|
|
157
|
+
return __array;
|
|
158
|
+
}(), port, jni::make_jstring(address));
|
|
159
|
+
return __result;
|
|
160
|
+
}
|
|
161
|
+
void JHybridUdpSocketDriverSpec::close() {
|
|
162
|
+
static const auto method = javaClassStatic()->getMethod<void()>("close");
|
|
163
|
+
method(_javaPart);
|
|
164
|
+
}
|
|
165
|
+
double JHybridUdpSocketDriverSpec::setBroadcast(bool flag) {
|
|
166
|
+
static const auto method = javaClassStatic()->getMethod<double(jboolean /* flag */)>("setBroadcast");
|
|
167
|
+
auto __result = method(_javaPart, flag);
|
|
168
|
+
return __result;
|
|
169
|
+
}
|
|
170
|
+
double JHybridUdpSocketDriverSpec::setTTL(double ttl) {
|
|
171
|
+
static const auto method = javaClassStatic()->getMethod<double(double /* ttl */)>("setTTL");
|
|
172
|
+
auto __result = method(_javaPart, ttl);
|
|
173
|
+
return __result;
|
|
174
|
+
}
|
|
175
|
+
double JHybridUdpSocketDriverSpec::setMulticastTTL(double ttl) {
|
|
176
|
+
static const auto method = javaClassStatic()->getMethod<double(double /* ttl */)>("setMulticastTTL");
|
|
177
|
+
auto __result = method(_javaPart, ttl);
|
|
178
|
+
return __result;
|
|
179
|
+
}
|
|
180
|
+
double JHybridUdpSocketDriverSpec::setMulticastLoopback(bool flag) {
|
|
181
|
+
static const auto method = javaClassStatic()->getMethod<double(jboolean /* flag */)>("setMulticastLoopback");
|
|
182
|
+
auto __result = method(_javaPart, flag);
|
|
183
|
+
return __result;
|
|
184
|
+
}
|
|
185
|
+
double JHybridUdpSocketDriverSpec::setMulticastInterface(const std::string& interfaceAddress) {
|
|
186
|
+
static const auto method = javaClassStatic()->getMethod<double(jni::alias_ref<jni::JString> /* interfaceAddress */)>("setMulticastInterface");
|
|
187
|
+
auto __result = method(_javaPart, jni::make_jstring(interfaceAddress));
|
|
188
|
+
return __result;
|
|
189
|
+
}
|
|
190
|
+
double JHybridUdpSocketDriverSpec::addMembership(const std::string& multicastAddress, const std::optional<std::string>& interfaceAddress) {
|
|
191
|
+
static const auto method = javaClassStatic()->getMethod<double(jni::alias_ref<jni::JString> /* multicastAddress */, jni::alias_ref<jni::JString> /* interfaceAddress */)>("addMembership");
|
|
192
|
+
auto __result = method(_javaPart, jni::make_jstring(multicastAddress), interfaceAddress.has_value() ? jni::make_jstring(interfaceAddress.value()) : nullptr);
|
|
193
|
+
return __result;
|
|
194
|
+
}
|
|
195
|
+
double JHybridUdpSocketDriverSpec::dropMembership(const std::string& multicastAddress, const std::optional<std::string>& interfaceAddress) {
|
|
196
|
+
static const auto method = javaClassStatic()->getMethod<double(jni::alias_ref<jni::JString> /* multicastAddress */, jni::alias_ref<jni::JString> /* interfaceAddress */)>("dropMembership");
|
|
197
|
+
auto __result = method(_javaPart, jni::make_jstring(multicastAddress), interfaceAddress.has_value() ? jni::make_jstring(interfaceAddress.value()) : nullptr);
|
|
198
|
+
return __result;
|
|
199
|
+
}
|
|
200
|
+
double JHybridUdpSocketDriverSpec::addSourceSpecificMembership(const std::string& sourceAddress, const std::string& groupAddress, const std::optional<std::string>& interfaceAddress) {
|
|
201
|
+
static const auto method = javaClassStatic()->getMethod<double(jni::alias_ref<jni::JString> /* sourceAddress */, jni::alias_ref<jni::JString> /* groupAddress */, jni::alias_ref<jni::JString> /* interfaceAddress */)>("addSourceSpecificMembership");
|
|
202
|
+
auto __result = method(_javaPart, jni::make_jstring(sourceAddress), jni::make_jstring(groupAddress), interfaceAddress.has_value() ? jni::make_jstring(interfaceAddress.value()) : nullptr);
|
|
203
|
+
return __result;
|
|
204
|
+
}
|
|
205
|
+
double JHybridUdpSocketDriverSpec::dropSourceSpecificMembership(const std::string& sourceAddress, const std::string& groupAddress, const std::optional<std::string>& interfaceAddress) {
|
|
206
|
+
static const auto method = javaClassStatic()->getMethod<double(jni::alias_ref<jni::JString> /* sourceAddress */, jni::alias_ref<jni::JString> /* groupAddress */, jni::alias_ref<jni::JString> /* interfaceAddress */)>("dropSourceSpecificMembership");
|
|
207
|
+
auto __result = method(_javaPart, jni::make_jstring(sourceAddress), jni::make_jstring(groupAddress), interfaceAddress.has_value() ? jni::make_jstring(interfaceAddress.value()) : nullptr);
|
|
208
|
+
return __result;
|
|
209
|
+
}
|
|
210
|
+
std::string JHybridUdpSocketDriverSpec::getLocalAddress() {
|
|
211
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JString>()>("getLocalAddress");
|
|
212
|
+
auto __result = method(_javaPart);
|
|
213
|
+
return __result->toStdString();
|
|
214
|
+
}
|
|
215
|
+
double JHybridUdpSocketDriverSpec::getLocalPort() {
|
|
216
|
+
static const auto method = javaClassStatic()->getMethod<double()>("getLocalPort");
|
|
217
|
+
auto __result = method(_javaPart);
|
|
218
|
+
return __result;
|
|
219
|
+
}
|
|
220
|
+
std::string JHybridUdpSocketDriverSpec::getRemoteAddress() {
|
|
221
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JString>()>("getRemoteAddress");
|
|
222
|
+
auto __result = method(_javaPart);
|
|
223
|
+
return __result->toStdString();
|
|
224
|
+
}
|
|
225
|
+
double JHybridUdpSocketDriverSpec::getRemotePort() {
|
|
226
|
+
static const auto method = javaClassStatic()->getMethod<double()>("getRemotePort");
|
|
227
|
+
auto __result = method(_javaPart);
|
|
228
|
+
return __result;
|
|
229
|
+
}
|
|
230
|
+
double JHybridUdpSocketDriverSpec::getRecvBufferSize() {
|
|
231
|
+
static const auto method = javaClassStatic()->getMethod<double()>("getRecvBufferSize");
|
|
232
|
+
auto __result = method(_javaPart);
|
|
233
|
+
return __result;
|
|
234
|
+
}
|
|
235
|
+
double JHybridUdpSocketDriverSpec::setRecvBufferSize(double size) {
|
|
236
|
+
static const auto method = javaClassStatic()->getMethod<double(double /* size */)>("setRecvBufferSize");
|
|
237
|
+
auto __result = method(_javaPart, size);
|
|
238
|
+
return __result;
|
|
239
|
+
}
|
|
240
|
+
double JHybridUdpSocketDriverSpec::getSendBufferSize() {
|
|
241
|
+
static const auto method = javaClassStatic()->getMethod<double()>("getSendBufferSize");
|
|
242
|
+
auto __result = method(_javaPart);
|
|
243
|
+
return __result;
|
|
244
|
+
}
|
|
245
|
+
double JHybridUdpSocketDriverSpec::setSendBufferSize(double size) {
|
|
246
|
+
static const auto method = javaClassStatic()->getMethod<double(double /* size */)>("setSendBufferSize");
|
|
247
|
+
auto __result = method(_javaPart, size);
|
|
248
|
+
return __result;
|
|
249
|
+
}
|
|
250
|
+
double JHybridUdpSocketDriverSpec::getSendQueueCount() {
|
|
251
|
+
static const auto method = javaClassStatic()->getMethod<double()>("getSendQueueCount");
|
|
252
|
+
auto __result = method(_javaPart);
|
|
253
|
+
return __result;
|
|
254
|
+
}
|
|
255
|
+
double JHybridUdpSocketDriverSpec::getSendQueueSize() {
|
|
256
|
+
static const auto method = javaClassStatic()->getMethod<double()>("getSendQueueSize");
|
|
257
|
+
auto __result = method(_javaPart);
|
|
258
|
+
return __result;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
} // namespace margelo::nitro::udp
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridUdpSocketDriverSpec.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 <NitroModules/JHybridObject.hpp>
|
|
11
|
+
#include <fbjni/fbjni.h>
|
|
12
|
+
#include "HybridUdpSocketDriverSpec.hpp"
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
namespace margelo::nitro::udp {
|
|
18
|
+
|
|
19
|
+
using namespace facebook;
|
|
20
|
+
|
|
21
|
+
class JHybridUdpSocketDriverSpec: public jni::HybridClass<JHybridUdpSocketDriverSpec, JHybridObject>,
|
|
22
|
+
public virtual HybridUdpSocketDriverSpec {
|
|
23
|
+
public:
|
|
24
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/udp/HybridUdpSocketDriverSpec;";
|
|
25
|
+
static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> jThis);
|
|
26
|
+
static void registerNatives();
|
|
27
|
+
|
|
28
|
+
protected:
|
|
29
|
+
// C++ constructor (called from Java via `initHybrid()`)
|
|
30
|
+
explicit JHybridUdpSocketDriverSpec(jni::alias_ref<jhybridobject> jThis) :
|
|
31
|
+
HybridObject(HybridUdpSocketDriverSpec::TAG),
|
|
32
|
+
HybridBase(jThis),
|
|
33
|
+
_javaPart(jni::make_global(jThis)) {}
|
|
34
|
+
|
|
35
|
+
public:
|
|
36
|
+
~JHybridUdpSocketDriverSpec() override {
|
|
37
|
+
// Hermes GC can destroy JS objects on a non-JNI Thread.
|
|
38
|
+
jni::ThreadScope::WithClassLoader([&] { _javaPart.reset(); });
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
public:
|
|
42
|
+
size_t getExternalMemorySize() noexcept override;
|
|
43
|
+
void dispose() noexcept override;
|
|
44
|
+
std::string toString() override;
|
|
45
|
+
|
|
46
|
+
public:
|
|
47
|
+
inline const jni::global_ref<JHybridUdpSocketDriverSpec::javaobject>& getJavaPart() const noexcept {
|
|
48
|
+
return _javaPart;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
public:
|
|
52
|
+
// Properties
|
|
53
|
+
double getId() override;
|
|
54
|
+
std::function<void(const std::shared_ptr<ArrayBuffer>& /* data */, const std::string& /* address */, double /* port */)> getOnMessage() override;
|
|
55
|
+
void setOnMessage(const std::function<void(const std::shared_ptr<ArrayBuffer>& /* data */, const std::string& /* address */, double /* port */)>& onMessage) override;
|
|
56
|
+
std::function<void()> getOnConnect() override;
|
|
57
|
+
void setOnConnect(const std::function<void()>& onConnect) override;
|
|
58
|
+
std::function<void(const std::string& /* error */)> getOnError() override;
|
|
59
|
+
void setOnError(const std::function<void(const std::string& /* error */)>& onError) override;
|
|
60
|
+
std::function<void()> getOnClose() override;
|
|
61
|
+
void setOnClose(const std::function<void()>& onClose) override;
|
|
62
|
+
|
|
63
|
+
public:
|
|
64
|
+
// Methods
|
|
65
|
+
double bind(double port, const std::string& address, bool ipv6Only) override;
|
|
66
|
+
double connect(double port, const std::string& address) override;
|
|
67
|
+
double disconnect() override;
|
|
68
|
+
double send(const std::shared_ptr<ArrayBuffer>& data, double port, const std::string& address) override;
|
|
69
|
+
double sendMultiple(const std::vector<std::shared_ptr<ArrayBuffer>>& data, double port, const std::string& address) override;
|
|
70
|
+
void close() override;
|
|
71
|
+
double setBroadcast(bool flag) override;
|
|
72
|
+
double setTTL(double ttl) override;
|
|
73
|
+
double setMulticastTTL(double ttl) override;
|
|
74
|
+
double setMulticastLoopback(bool flag) override;
|
|
75
|
+
double setMulticastInterface(const std::string& interfaceAddress) override;
|
|
76
|
+
double addMembership(const std::string& multicastAddress, const std::optional<std::string>& interfaceAddress) override;
|
|
77
|
+
double dropMembership(const std::string& multicastAddress, const std::optional<std::string>& interfaceAddress) override;
|
|
78
|
+
double addSourceSpecificMembership(const std::string& sourceAddress, const std::string& groupAddress, const std::optional<std::string>& interfaceAddress) override;
|
|
79
|
+
double dropSourceSpecificMembership(const std::string& sourceAddress, const std::string& groupAddress, const std::optional<std::string>& interfaceAddress) override;
|
|
80
|
+
std::string getLocalAddress() override;
|
|
81
|
+
double getLocalPort() override;
|
|
82
|
+
std::string getRemoteAddress() override;
|
|
83
|
+
double getRemotePort() override;
|
|
84
|
+
double getRecvBufferSize() override;
|
|
85
|
+
double setRecvBufferSize(double size) override;
|
|
86
|
+
double getSendBufferSize() override;
|
|
87
|
+
double setSendBufferSize(double size) override;
|
|
88
|
+
double getSendQueueCount() override;
|
|
89
|
+
double getSendQueueSize() override;
|
|
90
|
+
|
|
91
|
+
private:
|
|
92
|
+
friend HybridBase;
|
|
93
|
+
using HybridBase::HybridBase;
|
|
94
|
+
jni::global_ref<JHybridUdpSocketDriverSpec::javaobject> _javaPart;
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
} // namespace margelo::nitro::udp
|