mirror of
https://github.com/logos-messaging/logos-messaging-dart-bindings.git
synced 2026-01-05 15:23:12 +00:00
52 lines
1.6 KiB
Dart
52 lines
1.6 KiB
Dart
import 'dart:ffi';
|
|
import 'dart:io';
|
|
|
|
import 'package:ffi/ffi.dart';
|
|
|
|
class CallbackResult {
|
|
late int callerRet;
|
|
late String msg;
|
|
}
|
|
|
|
/// Callback typedef
|
|
typedef WakuCallBackC = Void Function(
|
|
Int32 callerRet, Pointer<Utf8> msg, IntPtr len, Pointer<Void> userData);
|
|
typedef WakuCallBackDart = void Function(
|
|
int callerRet, Pointer<Utf8> msg, int len, Pointer<Void> userData);
|
|
|
|
/// waku_new typedefs
|
|
typedef WakuNewC = Pointer<Void> Function(Pointer<Utf8> configJson,
|
|
Pointer<NativeFunction<WakuCallBackC>> callback, Pointer<Void> userData);
|
|
|
|
typedef WakuNewDart = Pointer<Void> Function(Pointer<Utf8> configJson,
|
|
Pointer<NativeFunction<WakuCallBackC>> callback, Pointer<Void> userData);
|
|
|
|
/// no params functions typedefs
|
|
typedef WakuNoParamsC = Pointer<Void> Function(Pointer<Void> ctx,
|
|
Pointer<NativeFunction<WakuCallBackC>> callback, Pointer<Void> userData);
|
|
|
|
typedef WakuNoParamsDart = Pointer<Void> Function(Pointer<Void> ctx,
|
|
Pointer<NativeFunction<WakuCallBackC>> callback, Pointer<Void> userData);
|
|
|
|
/// Load the shared library
|
|
final DynamicLibrary wakuLib = DynamicLibrary.open(
|
|
Platform.isMacOS
|
|
? 'libwaku.dylib'
|
|
: Platform.isLinux
|
|
? 'libwaku.so'
|
|
: 'waku.dll',
|
|
);
|
|
|
|
/// Lookup functions
|
|
final WakuNewDart waku_new =
|
|
wakuLib.lookupFunction<WakuNewC, WakuNewDart>('waku_new');
|
|
|
|
final WakuNoParamsDart waku_destroy =
|
|
wakuLib.lookupFunction<WakuNoParamsC, WakuNoParamsDart>('waku_destroy');
|
|
|
|
final WakuNoParamsDart waku_start =
|
|
wakuLib.lookupFunction<WakuNoParamsC, WakuNoParamsDart>('waku_start');
|
|
|
|
final WakuNoParamsDart waku_stop =
|
|
wakuLib.lookupFunction<WakuNoParamsC, WakuNoParamsDart>('waku_stop');
|