This commit is contained in:
John Smith
2023-03-01 15:50:30 -05:00
parent 615158d54e
commit 562f9bb7f7
36 changed files with 943 additions and 784 deletions

View File

@@ -1818,19 +1818,19 @@ Sequencing sequencingFromJson(String j) {
}
//////////////////////////////////////
/// KeyBlob
class KeyBlob {
final String key;
/// RouteBlob
class RouteBlob {
final String routeId;
final Uint8List blob;
KeyBlob(this.key, this.blob);
RouteBlob(this.routeId, this.blob);
KeyBlob.fromJson(dynamic json)
: key = json['key'],
RouteBlob.fromJson(dynamic json)
: routeId = json['route_id'],
blob = base64UrlNoPadDecode(json['blob']);
Map<String, dynamic> get json {
return {'key': key, 'blob': base64UrlNoPadEncode(blob)};
return {'route_id': routeId, 'blob': base64UrlNoPadEncode(blob)};
}
}
@@ -1918,8 +1918,8 @@ abstract class Veilid {
Future<VeilidRoutingContext> routingContext();
// Private route allocation
Future<KeyBlob> newPrivateRoute();
Future<KeyBlob> newCustomPrivateRoute(
Future<RouteBlob> newPrivateRoute();
Future<RouteBlob> newCustomPrivateRoute(
Stability stability, Sequencing sequencing);
Future<String> importRemotePrivateRoute(Uint8List blob);
Future<void> releasePrivateRoute(String key);

View File

@@ -847,21 +847,21 @@ class VeilidFFI implements Veilid {
}
@override
Future<KeyBlob> newPrivateRoute() {
Future<RouteBlob> newPrivateRoute() {
final recvPort = ReceivePort("new_private_route");
final sendPort = recvPort.sendPort;
_newPrivateRoute(sendPort.nativePort);
return processFutureJson(KeyBlob.fromJson, recvPort.first);
return processFutureJson(RouteBlob.fromJson, recvPort.first);
}
@override
Future<KeyBlob> newCustomPrivateRoute(
Future<RouteBlob> newCustomPrivateRoute(
Stability stability, Sequencing sequencing) async {
final recvPort = ReceivePort("new_custom_private_route");
final sendPort = recvPort.sendPort;
_newCustomPrivateRoute(sendPort.nativePort, stability.json.toNativeUtf8(),
sequencing.json.toNativeUtf8());
final keyblob = await processFutureJson(KeyBlob.fromJson, recvPort.first);
final keyblob = await processFutureJson(RouteBlob.fromJson, recvPort.first);
return keyblob;
}

View File

@@ -65,15 +65,15 @@ class VeilidRoutingContextJS implements VeilidRoutingContext {
var encodedRequest = base64UrlNoPadEncode(request);
return base64UrlNoPadDecode(await _wrapApiPromise(js_util.callMethod(
wasm, "routing_context_app_call", [_ctx.id, encodedRequest])));
wasm, "routing_context_app_call", [_ctx.id, target, encodedRequest])));
}
@override
Future<void> appMessage(String target, Uint8List message) {
var encodedMessage = base64UrlNoPadEncode(message);
return _wrapApiPromise(js_util.callMethod(
wasm, "routing_context_app_message", [_ctx.id, encodedMessage]));
return _wrapApiPromise(js_util.callMethod(wasm,
"routing_context_app_message", [_ctx.id, target, encodedMessage]));
}
}
@@ -267,14 +267,14 @@ class VeilidJS implements Veilid {
}
@override
Future<KeyBlob> newPrivateRoute() async {
Future<RouteBlob> newPrivateRoute() async {
Map<String, dynamic> blobJson = jsonDecode(await _wrapApiPromise(
js_util.callMethod(wasm, "new_private_route", [])));
return KeyBlob.fromJson(blobJson);
return RouteBlob.fromJson(blobJson);
}
@override
Future<KeyBlob> newCustomPrivateRoute(
Future<RouteBlob> newCustomPrivateRoute(
Stability stability, Sequencing sequencing) async {
var stabilityString =
jsonEncode(stability, toEncodable: veilidApiToEncodable);
@@ -284,7 +284,7 @@ class VeilidJS implements Veilid {
Map<String, dynamic> blobJson = jsonDecode(await _wrapApiPromise(js_util
.callMethod(
wasm, "new_private_route", [stabilityString, sequencingString])));
return KeyBlob.fromJson(blobJson);
return RouteBlob.fromJson(blobJson);
}
@override