Implement network lifecycle teardown and logout (#57)
All checks were successful
Native code generation / deterministic (push) Successful in 12m4s
Imaging and meshing gate / native (push) Successful in 4m3s
Native Rust workspace compile / compile (push) Successful in 4m6s

This commit is contained in:
2026-08-09 19:11:21 +00:00
parent 3951bdb809
commit 1fd127bd8a
7 changed files with 1068 additions and 65 deletions

View File

@@ -58,6 +58,7 @@ NATIVE_TYPES = {
"T:LibreMetaverse.LoginResponseData": "crate::login::LoginResponseData",
"T:LibreMetaverse.LoginResponseData.ParseMessage": "crate::login::LoginResponseDataParseMessage",
"T:LibreMetaverse.LoginResponseData.ParseResult": "crate::login::LoginResponseDataParseResult",
"T:LibreMetaverse.LoggedOutEventArgs": "crate::network_manager::LoggedOutEventArgs",
"T:LibreMetaverse.MediaEntry": "crate::message_decoder::MediaEntry",
"T:LibreMetaverse.Caps.EventQueueCallback": "crate::network_manager::CapsEventQueueCallback",
"T:LibreMetaverse.CapsEventDictionary": "crate::network_manager::CapsEventDictionary",
@@ -226,6 +227,8 @@ NATIVE_MEMBER_BODIES = {
"self.native_subscribe_event_queue_running(handler)",
"E:LibreMetaverse.NetworkManager.GenericStreamingMessage":
"self.native_subscribe_generic_streaming_message(handler)",
"E:LibreMetaverse.NetworkManager.LoggedOut":
"self.native_subscribe_logged_out(handler)",
"E:LibreMetaverse.NetworkManager.LoginProgress":
"self.native_subscribe_login_progress(handler)",
"E:LibreMetaverse.NetworkManager.PacketSent":
@@ -244,6 +247,8 @@ NATIVE_MEMBER_BODIES = {
"self.native_abort_login()",
"M:LibreMetaverse.NetworkManager.BeginLogin(LibreMetaverse.LoginParams)":
"self.native_begin_login(login_params)",
"M:LibreMetaverse.NetworkManager.BeginLogout":
"self.native_begin_logout()",
"M:LibreMetaverse.NetworkManager.Connect(System.Net.IPAddress,System.UInt16,System.UInt64,System.Boolean,System.Uri)":
"self.native_connect(std::net::SocketAddr::new(ip, port), handle, set_default, seedcaps, crate::network_manager::Simulator::DEFAULT_REGION_SIZE_X, crate::network_manager::Simulator::DEFAULT_REGION_SIZE_Y)",
"M:LibreMetaverse.NetworkManager.Connect(System.Net.IPAddress,System.UInt16,System.UInt64,System.Boolean,System.Uri,System.UInt32,System.UInt32)":
@@ -310,10 +315,16 @@ NATIVE_MEMBER_BODIES = {
"self.native_login_response_async(login_params, cancellation_token).await",
"M:LibreMetaverse.NetworkManager.LoginWithResponseAsync(System.String,System.String,System.String,System.String,System.String,System.String,System.Threading.CancellationToken)":
"self.native_login_strings_response(first_name, last_name, password, channel, start, version, cancellation_token).await",
"M:LibreMetaverse.NetworkManager.Logout":
"self.native_logout()",
"M:LibreMetaverse.NetworkManager.LogoutAsync(System.Threading.CancellationToken)":
"self.native_logout_async(cancellation_token).await",
"M:LibreMetaverse.NetworkManager.RegisterLoginResponseCallback(LibreMetaverse.NetworkManager.LoginResponseCallback)":
"self.native_register_login_response_callback(callback, None)",
"M:LibreMetaverse.NetworkManager.RegisterLoginResponseCallback(LibreMetaverse.NetworkManager.LoginResponseCallback,System.String[])":
"self.native_register_login_response_callback(callback, options)",
"M:LibreMetaverse.NetworkManager.RequestLogout":
"self.native_request_logout()",
"M:LibreMetaverse.NetworkManager.StartLocation(System.String,System.Int32,System.Int32,System.Int32)":
"Ok(crate::login::start_location(&sim, x, y, z))",
"M:LibreMetaverse.NetworkManager.UnregisterLoginResponseCallback(LibreMetaverse.NetworkManager.LoginResponseCallback)":