prep for plugin interface

This commit is contained in:
John Smith
2022-01-27 22:02:16 -05:00
parent 5cb2463a31
commit cbffc381c1
13 changed files with 854 additions and 195 deletions

View File

@@ -21,6 +21,10 @@ abstract class VeilidFlutter {
Future<VeilidState> getVeilidState({dynamic hint});
Future<void> shutdownVeilidCore({dynamic hint});
Future<String> veilidVersionString({dynamic hint});
Future<VeilidVersion> veilidVersion({dynamic hint});
}
enum AttachmentState {
@@ -187,6 +191,18 @@ class VeilidUpdate with _$VeilidUpdate {
) = Attachment;
}
class VeilidVersion {
final int major;
final int minor;
final int patch;
VeilidVersion({
required this.major,
required this.minor,
required this.patch,
});
}
class VeilidFlutterImpl extends FlutterRustBridgeBase<VeilidFlutterWire>
implements VeilidFlutter {
factory VeilidFlutterImpl(ffi.DynamicLibrary dylib) =>
@@ -232,6 +248,30 @@ class VeilidFlutterImpl extends FlutterRustBridgeBase<VeilidFlutterWire>
hint: hint,
));
Future<String> veilidVersionString({dynamic hint}) =>
executeNormal(FlutterRustBridgeTask(
callFfi: (port) => inner.wire_veilid_version_string(port),
parseSuccessData: _wire2api_String,
constMeta: const FlutterRustBridgeTaskConstMeta(
debugName: "veilid_version_string",
argNames: [],
),
argValues: [],
hint: hint,
));
Future<VeilidVersion> veilidVersion({dynamic hint}) =>
executeNormal(FlutterRustBridgeTask(
callFfi: (port) => inner.wire_veilid_version(port),
parseSuccessData: _wire2api_veilid_version,
constMeta: const FlutterRustBridgeTaskConstMeta(
debugName: "veilid_version",
argNames: [],
),
argValues: [],
hint: hint,
));
// Section: api2wire
ffi.Pointer<wire_uint_8_list> _api2wire_String(String raw) {
return _api2wire_uint_8_list(utf8.encoder.convert(raw));
@@ -419,10 +459,26 @@ class VeilidFlutterImpl extends FlutterRustBridgeBase<VeilidFlutterWire>
}
// Section: wire2api
String _wire2api_String(dynamic raw) {
return raw as String;
}
AttachmentState _wire2api_attachment_state(dynamic raw) {
return AttachmentState.values[raw];
}
int _wire2api_u32(dynamic raw) {
return raw as int;
}
int _wire2api_u8(dynamic raw) {
return raw as int;
}
Uint8List _wire2api_uint_8_list(dynamic raw) {
return raw as Uint8List;
}
void _wire2api_unit(dynamic raw) {
return;
}
@@ -447,6 +503,17 @@ VeilidUpdate _wire2api_veilid_update(dynamic raw) {
}
}
VeilidVersion _wire2api_veilid_version(dynamic raw) {
final arr = raw as List<dynamic>;
if (arr.length != 3)
throw Exception('unexpected arr length: expect 3 but see ${arr.length}');
return VeilidVersion(
major: _wire2api_u32(arr[0]),
minor: _wire2api_u32(arr[1]),
patch: _wire2api_u32(arr[2]),
);
}
// ignore_for_file: camel_case_types, non_constant_identifier_names, avoid_positional_boolean_parameters, annotate_overrides, constant_identifier_names
// AUTO GENERATED FILE, DO NOT EDIT.
@@ -514,6 +581,34 @@ class VeilidFlutterWire implements FlutterRustBridgeWireBase {
late final _wire_shutdown_veilid_core =
_wire_shutdown_veilid_corePtr.asFunction<void Function(int)>();
void wire_veilid_version_string(
int port_,
) {
return _wire_veilid_version_string(
port_,
);
}
late final _wire_veilid_version_stringPtr =
_lookup<ffi.NativeFunction<ffi.Void Function(ffi.Int64)>>(
'wire_veilid_version_string');
late final _wire_veilid_version_string =
_wire_veilid_version_stringPtr.asFunction<void Function(int)>();
void wire_veilid_version(
int port_,
) {
return _wire_veilid_version(
port_,
);
}
late final _wire_veilid_versionPtr =
_lookup<ffi.NativeFunction<ffi.Void Function(ffi.Int64)>>(
'wire_veilid_version');
late final _wire_veilid_version =
_wire_veilid_versionPtr.asFunction<void Function(int)>();
ffi.Pointer<wire_StringList> new_StringList(
int len,
) {

View File

@@ -1,7 +1,7 @@
import 'dart:async';
import 'package:flutter/services.dart';
import 'package:veilid/bridge_generated.dart';
class Veilid {
static const MethodChannel _channel = MethodChannel('veilid');