From 4bfa72f2db7596edbf4e6533019724c70c43dc7a Mon Sep 17 00:00:00 2001 From: John Smith Date: Tue, 1 Feb 2022 13:07:39 -0500 Subject: [PATCH] fix rust flutter --- veilid-flutter/ios/Classes/bridge_generated.h | 4 ++ veilid-flutter/lib/bridge_generated.dart | 45 ++++++++++++++++++- veilid-flutter/rust/src/api.rs | 21 ++++++--- veilid-flutter/rust/src/bridge_generated.rs | 24 ++-------- 4 files changed, 65 insertions(+), 29 deletions(-) diff --git a/veilid-flutter/ios/Classes/bridge_generated.h b/veilid-flutter/ios/Classes/bridge_generated.h index a112e067..53a59aef 100644 --- a/veilid-flutter/ios/Classes/bridge_generated.h +++ b/veilid-flutter/ios/Classes/bridge_generated.h @@ -15,6 +15,7 @@ typedef struct wire_StringList { typedef struct wire_VeilidConfig { struct wire_uint_8_list *program_name; struct wire_uint_8_list *veilid_namespace; + int32_t api_log_level; bool capabilities__protocol_udp; bool capabilities__protocol_connect_tcp; bool capabilities__protocol_accept_tcp; @@ -95,6 +96,8 @@ void wire_startup_veilid_core(int64_t port_, struct wire_VeilidConfig *config); void wire_get_veilid_state(int64_t port_); +void wire_change_api_log_level(int64_t port_, int32_t log_level); + void wire_shutdown_veilid_core(int64_t port_); void wire_veilid_version_string(int64_t port_); @@ -117,6 +120,7 @@ static int64_t dummy_method_to_enforce_bundling(void) { int64_t dummy_var = 0; dummy_var ^= ((int64_t) (void*) wire_startup_veilid_core); dummy_var ^= ((int64_t) (void*) wire_get_veilid_state); + dummy_var ^= ((int64_t) (void*) wire_change_api_log_level); dummy_var ^= ((int64_t) (void*) wire_shutdown_veilid_core); dummy_var ^= ((int64_t) (void*) wire_veilid_version_string); dummy_var ^= ((int64_t) (void*) wire_veilid_version); diff --git a/veilid-flutter/lib/bridge_generated.dart b/veilid-flutter/lib/bridge_generated.dart index 8f7e4b29..3a17e5f6 100644 --- a/veilid-flutter/lib/bridge_generated.dart +++ b/veilid-flutter/lib/bridge_generated.dart @@ -26,6 +26,8 @@ abstract class VeilidFlutter { Future getVeilidState({ dynamic hint }); +Future changeApiLogLevel({ required VeilidLogLevel logLevel,dynamic hint }); + Future shutdownVeilidCore({ dynamic hint }); Future veilidVersionString({ dynamic hint }); @@ -47,6 +49,7 @@ Detaching, class VeilidConfig { final String programName; final String veilidNamespace; +final VeilidLogLevel apiLogLevel; final bool capabilitiesProtocolUdp; final bool capabilitiesProtocolConnectTcp; final bool capabilitiesProtocolAcceptTcp; @@ -112,7 +115,7 @@ final int networkLeasesMaxServerRelayLeases; final int networkLeasesMaxClientSignalLeases; final int networkLeasesMaxClientRelayLeases; - VeilidConfig({required this.programName,required this.veilidNamespace,required this.capabilitiesProtocolUdp,required this.capabilitiesProtocolConnectTcp,required this.capabilitiesProtocolAcceptTcp,required this.capabilitiesProtocolConnectWs,required this.capabilitiesProtocolAcceptWs,required this.capabilitiesProtocolConnectWss,required this.capabilitiesProtocolAcceptWss,required this.protectedStoreAllowInsecureFallback,required this.protectedStoreAlwaysUseInsecureStorage,required this.protectedStoreInsecureFallbackDirectory,required this.protectedStoreDelete,required this.tableStoreDirectory,required this.tableStoreDelete,required this.blockStoreDirectory,required this.blockStoreDelete,required this.networkMaxConnections,required this.networkConnectionInitialTimeoutMs,required this.networkNodeId,required this.networkNodeIdSecret,required this.networkBootstrap,required this.networkUpnp,required this.networkNatpmp,required this.networkEnableLocalPeerScope,required this.networkRestrictedNatRetries,required this.networkRpcConcurrency,required this.networkRpcQueueSize,this.networkRpcMaxTimestampBehindMs,this.networkRpcMaxTimestampAheadMs,required this.networkRpcTimeoutMs,required this.networkRpcMaxRouteHopCount,this.networkDhtResolveNodeTimeoutMs,required this.networkDhtResolveNodeCount,required this.networkDhtResolveNodeFanout,required this.networkDhtMaxFindNodeCount,this.networkDhtGetValueTimeoutMs,required this.networkDhtGetValueCount,required this.networkDhtGetValueFanout,this.networkDhtSetValueTimeoutMs,required this.networkDhtSetValueCount,required this.networkDhtSetValueFanout,required this.networkDhtMinPeerCount,required this.networkDhtMinPeerRefreshTimeMs,required this.networkDhtValidateDialInfoReceiptTimeMs,required this.networkProtocolUdpEnabled,required this.networkProtocolUdpSocketPoolSize,required this.networkProtocolUdpListenAddress,this.networkProtocolUdpPublicAddress,required this.networkProtocolTcpConnect,required this.networkProtocolTcpListen,required this.networkProtocolTcpMaxConnections,required this.networkProtocolTcpListenAddress,this.networkProtocolTcpPublicAddress,required this.networkProtocolWsConnect,required this.networkProtocolWsListen,required this.networkProtocolWsMaxConnections,required this.networkProtocolWsListenAddress,required this.networkProtocolWsPath,this.networkProtocolWsUrl,required this.networkProtocolWssConnect,required this.networkProtocolWssMaxConnections,required this.networkLeasesMaxServerSignalLeases,required this.networkLeasesMaxServerRelayLeases,required this.networkLeasesMaxClientSignalLeases,required this.networkLeasesMaxClientRelayLeases,}); + VeilidConfig({required this.programName,required this.veilidNamespace,required this.apiLogLevel,required this.capabilitiesProtocolUdp,required this.capabilitiesProtocolConnectTcp,required this.capabilitiesProtocolAcceptTcp,required this.capabilitiesProtocolConnectWs,required this.capabilitiesProtocolAcceptWs,required this.capabilitiesProtocolConnectWss,required this.capabilitiesProtocolAcceptWss,required this.protectedStoreAllowInsecureFallback,required this.protectedStoreAlwaysUseInsecureStorage,required this.protectedStoreInsecureFallbackDirectory,required this.protectedStoreDelete,required this.tableStoreDirectory,required this.tableStoreDelete,required this.blockStoreDirectory,required this.blockStoreDelete,required this.networkMaxConnections,required this.networkConnectionInitialTimeoutMs,required this.networkNodeId,required this.networkNodeIdSecret,required this.networkBootstrap,required this.networkUpnp,required this.networkNatpmp,required this.networkEnableLocalPeerScope,required this.networkRestrictedNatRetries,required this.networkRpcConcurrency,required this.networkRpcQueueSize,this.networkRpcMaxTimestampBehindMs,this.networkRpcMaxTimestampAheadMs,required this.networkRpcTimeoutMs,required this.networkRpcMaxRouteHopCount,this.networkDhtResolveNodeTimeoutMs,required this.networkDhtResolveNodeCount,required this.networkDhtResolveNodeFanout,required this.networkDhtMaxFindNodeCount,this.networkDhtGetValueTimeoutMs,required this.networkDhtGetValueCount,required this.networkDhtGetValueFanout,this.networkDhtSetValueTimeoutMs,required this.networkDhtSetValueCount,required this.networkDhtSetValueFanout,required this.networkDhtMinPeerCount,required this.networkDhtMinPeerRefreshTimeMs,required this.networkDhtValidateDialInfoReceiptTimeMs,required this.networkProtocolUdpEnabled,required this.networkProtocolUdpSocketPoolSize,required this.networkProtocolUdpListenAddress,this.networkProtocolUdpPublicAddress,required this.networkProtocolTcpConnect,required this.networkProtocolTcpListen,required this.networkProtocolTcpMaxConnections,required this.networkProtocolTcpListenAddress,this.networkProtocolTcpPublicAddress,required this.networkProtocolWsConnect,required this.networkProtocolWsListen,required this.networkProtocolWsMaxConnections,required this.networkProtocolWsListenAddress,required this.networkProtocolWsPath,this.networkProtocolWsUrl,required this.networkProtocolWssConnect,required this.networkProtocolWssMaxConnections,required this.networkLeasesMaxServerSignalLeases,required this.networkLeasesMaxServerRelayLeases,required this.networkLeasesMaxClientSignalLeases,required this.networkLeasesMaxClientRelayLeases,}); } enum VeilidLogLevel { @@ -175,6 +178,19 @@ Future getVeilidState({ dynamic hint }) => executeNormal(FlutterRus )); +Future changeApiLogLevel({ required VeilidLogLevel logLevel,dynamic hint }) => executeNormal(FlutterRustBridgeTask( + callFfi: (port_) => inner.wire_change_api_log_level(port_, _api2wire_veilid_log_level(logLevel)), + parseSuccessData: _wire2api_unit, + + constMeta: const FlutterRustBridgeTaskConstMeta( + debugName: "change_api_log_level", + argNames: ["logLevel"], + ), + argValues: [logLevel], + hint: hint, + + )); + Future shutdownVeilidCore({ dynamic hint }) => executeNormal(FlutterRustBridgeTask( callFfi: (port_) => inner.wire_shutdown_veilid_core(port_), parseSuccessData: _wire2api_unit, @@ -275,6 +291,11 @@ ffi.Pointer _api2wire_uint_8_list(Uint8List raw) { +int _api2wire_veilid_log_level(VeilidLogLevel raw) { + return raw.index; + } + + // Section: api_fill_to_wire @@ -301,6 +322,7 @@ void _api_fill_to_wire_box_autoadd_veilid_config(VeilidConfig apiObj, ffi.Pointe void _api_fill_to_wire_veilid_config(VeilidConfig apiObj, wire_VeilidConfig wireObj) { wireObj.program_name = _api2wire_String(apiObj.programName); wireObj.veilid_namespace = _api2wire_String(apiObj.veilidNamespace); +wireObj.api_log_level = _api2wire_veilid_log_level(apiObj.apiLogLevel); wireObj.capabilities__protocol_udp = _api2wire_bool(apiObj.capabilitiesProtocolUdp); wireObj.capabilities__protocol_connect_tcp = _api2wire_bool(apiObj.capabilitiesProtocolConnectTcp); wireObj.capabilities__protocol_accept_tcp = _api2wire_bool(apiObj.capabilitiesProtocolAcceptTcp); @@ -366,6 +388,8 @@ wireObj.network__leases__max_server_relay_leases = _api2wire_u32(apiObj.networkL wireObj.network__leases__max_client_signal_leases = _api2wire_u32(apiObj.networkLeasesMaxClientSignalLeases); wireObj.network__leases__max_client_relay_leases = _api2wire_u32(apiObj.networkLeasesMaxClientRelayLeases); } + + } // Section: wire2api @@ -482,6 +506,22 @@ class VeilidFlutterWire implements FlutterRustBridgeWireBase { late final _wire_get_veilid_state = _wire_get_veilid_statePtr.asFunction(); + void wire_change_api_log_level( + int port_, + int log_level, + ) { + return _wire_change_api_log_level( + port_, + log_level, + ); + } + + late final _wire_change_api_log_levelPtr = + _lookup>( + 'wire_change_api_log_level'); + late final _wire_change_api_log_level = + _wire_change_api_log_levelPtr.asFunction(); + void wire_shutdown_veilid_core( int port_, ) { @@ -625,6 +665,9 @@ class wire_VeilidConfig extends ffi.Struct { external ffi.Pointer veilid_namespace; + @ffi.Int32() + external int api_log_level; + @ffi.Uint8() external int capabilities__protocol_udp; diff --git a/veilid-flutter/rust/src/api.rs b/veilid-flutter/rust/src/api.rs index 7bdb01dd..d39fe5c1 100644 --- a/veilid-flutter/rust/src/api.rs +++ b/veilid-flutter/rust/src/api.rs @@ -437,6 +437,13 @@ pub enum VeilidLogLevel { Debug, Trace, } + +impl Default for VeilidLogLevel { + fn default() -> Self { + Self::Info + } +} + impl VeilidLogLevel { fn from_core(level: veilid_core::VeilidLogLevel) -> Self { match level { @@ -448,13 +455,13 @@ impl VeilidLogLevel { } } - fn to_config_log_level(&self) -> VeilidConfigLogLevel { + fn to_config_log_level(&self) -> veilid_core::VeilidConfigLogLevel { match self { - Self::Error => VeilidConfigLogLevel::Error, - Self::Warn => VeilidConfigLogLevel::Warn, - Self::Info => VeilidConfigLogLevel::Info, - Self::Debug => VeilidConfigLogLevel::Debug, - Self::Trace => VeilidConfigLogLevel::Trace, + Self::Error => veilid_core::VeilidConfigLogLevel::Error, + Self::Warn => veilid_core::VeilidConfigLogLevel::Warn, + Self::Info => veilid_core::VeilidConfigLogLevel::Info, + Self::Debug => veilid_core::VeilidConfigLogLevel::Debug, + Self::Trace => veilid_core::VeilidConfigLogLevel::Trace, } } } @@ -543,7 +550,7 @@ pub fn get_veilid_state() -> Result { // xxx api functions -pub fn change_api_log_level(level: VeilidLogLevel) -> Result<()> { +pub fn change_api_log_level(log_level: VeilidLogLevel) -> Result<()> { async_std::task::block_on(async { let veilid_api = get_veilid_api().await?; veilid_api diff --git a/veilid-flutter/rust/src/bridge_generated.rs b/veilid-flutter/rust/src/bridge_generated.rs index c84f299f..e5db1b18 100644 --- a/veilid-flutter/rust/src/bridge_generated.rs +++ b/veilid-flutter/rust/src/bridge_generated.rs @@ -41,7 +41,7 @@ pub extern "C" fn wire_get_veilid_state(port_: i64) { } #[no_mangle] -pub extern "C" fn wire_change_api_log_level(port_: i64, level: i32) { +pub extern "C" fn wire_change_api_log_level(port_: i64, log_level: i32) { FLUTTER_RUST_BRIDGE_HANDLER.wrap( WrapInfo { debug_name: "change_api_log_level", @@ -49,8 +49,8 @@ pub extern "C" fn wire_change_api_log_level(port_: i64, level: i32) { mode: FfiCallMode::Normal, }, move || { - let api_level = level.wire2api(); - move |task_callback| change_api_log_level(api_level) + let api_log_level = log_level.wire2api(); + move |task_callback| change_api_log_level(api_log_level) }, ) } @@ -579,21 +579,3 @@ pub extern "C" fn free_WireSyncReturnStruct(val: support::WireSyncReturnStruct) let _ = support::vec_from_leak_ptr(val.ptr, val.len); } } - - // ----------- DUMMY CODE FOR BINDGEN ---------- - - // copied from: allo-isolate - pub type DartPort = i64; - pub type DartPostCObjectFnType = unsafe extern "C" fn(port_id: DartPort, message: *mut std::ffi::c_void) -> bool; - #[no_mangle] pub unsafe extern "C" fn store_dart_post_cobject(ptr: DartPostCObjectFnType) { panic!("dummy code") } - - // copied from: frb_rust::support.rs - #[repr(C)] - pub struct WireSyncReturnStruct { - pub ptr: *mut u8, - pub len: i32, - pub success: bool, - } - - // --------------------------------------------- - \ No newline at end of file