Implement capability event queue processing (#55)
This commit is contained in:
@@ -38,15 +38,23 @@ TARGETS = {
|
||||
# implementations. The generated module keeps catalog markers and re-exports
|
||||
# the hand-written type so coverage remains deterministic.
|
||||
NATIVE_TYPES = {
|
||||
"T:LibreMetaverse.AgentDisplayName": "crate::message_decoder::AgentDisplayName",
|
||||
"T:LibreMetaverse.CapabilitiesReceivedEventArgs": "crate::caps::CapabilitiesReceivedEventArgs",
|
||||
"T:LibreMetaverse.Caps": "crate::caps::Caps",
|
||||
"T:LibreMetaverse.CapsRateLimiter": "crate::caps_http::CapsRateLimiter",
|
||||
"T:LibreMetaverse.CapsRateLimiterOptions": "crate::caps_http::CapsRateLimiterOptions",
|
||||
"T:LibreMetaverse.Http.DownloadManager": "crate::download_manager::DownloadManager",
|
||||
"T:LibreMetaverse.Http.DownloadRequest": "crate::download_manager::DownloadRequest",
|
||||
"T:LibreMetaverse.Http.EventQueueClient": "crate::event_queue::EventQueueClient",
|
||||
"T:LibreMetaverse.Http.EventQueueClient.ConnectedCallback": "crate::event_queue::EventQueueClientConnectedCallback",
|
||||
"T:LibreMetaverse.Http.EventQueueClient.EventCallback": "crate::event_queue::EventQueueClientEventCallback",
|
||||
"T:LibreMetaverse.HttpCapsClient": "crate::caps_http::HttpCapsClient",
|
||||
"T:LibreMetaverse.HttpCapsClient.ProgressReport": "crate::caps_http::HttpCapsClientProgressReport",
|
||||
"T:LibreMetaverse.MediaEntry": "crate::message_decoder::MediaEntry",
|
||||
"T:LibreMetaverse.Caps.EventQueueCallback": "crate::network_manager::CapsEventQueueCallback",
|
||||
"T:LibreMetaverse.CapsEventDictionary": "crate::network_manager::CapsEventDictionary",
|
||||
"T:LibreMetaverse.DisconnectedEventArgs": "crate::network_manager::DisconnectedEventArgs",
|
||||
"T:LibreMetaverse.EventQueueRunningEventArgs": "crate::network_manager::EventQueueRunningEventArgs",
|
||||
"T:LibreMetaverse.GenericStreamingMessageEventArgs": "crate::network_manager::GenericStreamingMessageEventArgs",
|
||||
"T:LibreMetaverse.NetworkManager.IncomingPacket": "crate::network_manager::NetworkManagerIncomingPacket",
|
||||
"T:LibreMetaverse.NetworkManager.OutgoingPacket": "crate::network_manager::NetworkManagerOutgoingPacket",
|
||||
@@ -57,6 +65,13 @@ NATIVE_TYPES = {
|
||||
"T:LibreMetaverse.SimConnectedEventArgs": "crate::network_manager::SimConnectedEventArgs",
|
||||
"T:LibreMetaverse.SimConnectingEventArgs": "crate::network_manager::SimConnectingEventArgs",
|
||||
"T:LibreMetaverse.SimDisconnectedEventArgs": "crate::network_manager::SimDisconnectedEventArgs",
|
||||
"T:LibreMetaverse.Messages.Linden.EventMessageBlock": "crate::event_queue::EventMessageBlock",
|
||||
"T:LibreMetaverse.Messages.Linden.EventQueueAck": "crate::event_queue::EventQueueAck",
|
||||
"T:LibreMetaverse.Messages.Linden.EventQueueEvent": "crate::event_queue::EventQueueEvent",
|
||||
"T:LibreMetaverse.Messages.Linden.EventQueueEvent.QueueEvent": "crate::event_queue::EventQueueEventQueueEvent",
|
||||
"T:LibreMetaverse.Messages.Linden.EventQueueGetMessage": "crate::event_queue::EventQueueGetMessage",
|
||||
"T:LibreMetaverse.Messages.Linden.AttachmentResourcesMessage": "crate::message_decoder::AttachmentResourcesMessage",
|
||||
"T:LibreMetaverse.Primitive.PhysicsProperties": "crate::message_decoder::PrimitivePhysicsProperties",
|
||||
"T:LibreMetaverse.ArchetypeParam": "crate::genepool_catalog::ArchetypeParam",
|
||||
"T:LibreMetaverse.AttentionData": "crate::attention_catalog::AttentionData",
|
||||
"T:LibreMetaverse.AttentionSet": "crate::attention_catalog::AttentionSet",
|
||||
@@ -194,6 +209,8 @@ NATIVE_MEMBER_BODIES = {
|
||||
"self.native_set_http_caps_client(value)",
|
||||
"E:LibreMetaverse.NetworkManager.Disconnected":
|
||||
"self.native_subscribe_disconnected(handler)",
|
||||
"E:LibreMetaverse.NetworkManager.EventQueueRunning":
|
||||
"self.native_subscribe_event_queue_running(handler)",
|
||||
"E:LibreMetaverse.NetworkManager.GenericStreamingMessage":
|
||||
"self.native_subscribe_generic_streaming_message(handler)",
|
||||
"E:LibreMetaverse.NetworkManager.PacketSent":
|
||||
@@ -228,6 +245,20 @@ NATIVE_MEMBER_BODIES = {
|
||||
"self.native_enqueue_outgoing(packet)",
|
||||
"M:LibreMetaverse.NetworkManager.FindSimulator(System.Net.IPEndPoint)":
|
||||
"Ok(self.native_find_endpoint(end_point))",
|
||||
"M:LibreMetaverse.Messages.MessageUtils.DecodeEvent(System.String,LibreMetaverse.StructuredData.OSDMap)":
|
||||
"crate::message_decoder::decode_event(&event_name, &map)",
|
||||
"M:LibreMetaverse.Messages.MessageUtils.FromDictionaryString(System.Collections.Generic.Dictionary{System.String,System.String})":
|
||||
"crate::message_decoder::from_dictionary_string(dict)",
|
||||
"M:LibreMetaverse.Messages.MessageUtils.FromDictionaryUri(System.Collections.Generic.Dictionary{System.Uri,System.Uri})":
|
||||
"crate::message_decoder::from_dictionary_uri(dict)",
|
||||
"M:LibreMetaverse.Messages.MessageUtils.FromIP(System.Net.IPAddress)":
|
||||
"crate::message_decoder::from_ip(address)",
|
||||
"M:LibreMetaverse.Messages.MessageUtils.ToDictionaryString(LibreMetaverse.StructuredData.OSD)":
|
||||
"crate::message_decoder::to_dictionary_string(osd)",
|
||||
"M:LibreMetaverse.Messages.MessageUtils.ToDictionaryUri(LibreMetaverse.StructuredData.OSD)":
|
||||
"crate::message_decoder::to_dictionary_uri(osd)",
|
||||
"M:LibreMetaverse.Messages.MessageUtils.ToIP(LibreMetaverse.StructuredData.OSD)":
|
||||
"crate::message_decoder::to_ip(osd)",
|
||||
"M:LibreMetaverse.NetworkManager.FindSimulator(System.UInt64)":
|
||||
"Ok(self.native_find_handle(handle))",
|
||||
"M:LibreMetaverse.NetworkManager.RegisterCallback(LibreMetaverse.Packets.PacketType,System.EventHandler{LibreMetaverse.PacketReceivedEventArgs})":
|
||||
@@ -280,6 +311,8 @@ NATIVE_MEMBER_BODIES = {
|
||||
"self.native_equals(obj)",
|
||||
"M:LibreMetaverse.Simulator.GetHashCode":
|
||||
"self.native_hash_code()",
|
||||
"M:LibreMetaverse.Simulator.IsEventQueueRunning(System.Boolean)":
|
||||
"self.native_is_event_queue_running(block_until_running)",
|
||||
"M:LibreMetaverse.Simulator.Pause":
|
||||
"self.native_pause()",
|
||||
"M:LibreMetaverse.Simulator.Resume":
|
||||
@@ -580,9 +613,15 @@ COMPOSED_BASE_TYPES = {
|
||||
}
|
||||
|
||||
NATIVE_MESSAGE_CODEC_TYPES = {
|
||||
"T:LibreMetaverse.Messages.Linden.AgentDropGroupMessage",
|
||||
"T:LibreMetaverse.Messages.Linden.AgentDropGroupMessage.AgentData",
|
||||
"T:LibreMetaverse.Messages.Linden.AgentGroupDataUpdateMessage",
|
||||
"T:LibreMetaverse.Messages.Linden.AgentGroupDataUpdateMessage.GroupData",
|
||||
"T:LibreMetaverse.Messages.Linden.AgentGroupDataUpdateMessage.NewGroupData",
|
||||
"T:LibreMetaverse.Messages.Linden.AgentStateUpdateMessage",
|
||||
"T:LibreMetaverse.Messages.Linden.BulkUpdateInventoryMessage",
|
||||
"T:LibreMetaverse.Messages.Linden.BulkUpdateInventoryMessage.FolderDataInfo",
|
||||
"T:LibreMetaverse.Messages.Linden.BulkUpdateInventoryMessage.ItemDataInfo",
|
||||
"T:LibreMetaverse.Messages.Linden.ChatSessionAcceptInvitation",
|
||||
"T:LibreMetaverse.Messages.Linden.ChatSessionRequestBlock",
|
||||
"T:LibreMetaverse.Messages.Linden.ChatSessionRequestMuteUpdate",
|
||||
@@ -593,16 +632,29 @@ NATIVE_MESSAGE_CODEC_TYPES = {
|
||||
"T:LibreMetaverse.Messages.Linden.ChatterBoxSessionStartReplyMessage",
|
||||
"T:LibreMetaverse.Messages.Linden.ChatterboxSessionEventReplyMessage",
|
||||
"T:LibreMetaverse.Messages.Linden.CopyInventoryFromNotecardMessage",
|
||||
"T:LibreMetaverse.Messages.Linden.CrossedRegionMessage",
|
||||
"T:LibreMetaverse.Messages.Linden.DirLandReplyMessage",
|
||||
"T:LibreMetaverse.Messages.Linden.DirLandReplyMessage.QueryReply",
|
||||
"T:LibreMetaverse.Messages.Linden.EnableSimulatorMessage",
|
||||
"T:LibreMetaverse.Messages.Linden.EnableSimulatorMessage.SimulatorInfoBlock",
|
||||
"T:LibreMetaverse.Messages.Linden.EstablishAgentCommunicationMessage",
|
||||
"T:LibreMetaverse.Messages.Linden.ForceCloseChatterBoxSessionMessage",
|
||||
"T:LibreMetaverse.Messages.Linden.GetDisplayNamesMessage",
|
||||
"T:LibreMetaverse.Messages.Linden.GetObjectCostMessage",
|
||||
"T:LibreMetaverse.Messages.Linden.GetObjectCostRequest",
|
||||
"T:LibreMetaverse.Messages.Linden.LandResourcesMessage",
|
||||
"T:LibreMetaverse.Messages.Linden.LandResourcesRequest",
|
||||
"T:LibreMetaverse.Messages.Linden.LandStatReplyMessage",
|
||||
"T:LibreMetaverse.Messages.Linden.LandStatReplyMessage.ReportDataBlock",
|
||||
"T:LibreMetaverse.Messages.Linden.MapLayerMessageBase",
|
||||
"T:LibreMetaverse.Messages.Linden.MapLayerReplyVariant",
|
||||
"T:LibreMetaverse.Messages.Linden.MapLayerReplyVariant.LayerData",
|
||||
"T:LibreMetaverse.Messages.Linden.NavMeshStatusUpdateMessage",
|
||||
"T:LibreMetaverse.Messages.Linden.ObjectMediaNavigateMessage",
|
||||
"T:LibreMetaverse.Messages.Linden.ObjectMediaRequest",
|
||||
"T:LibreMetaverse.Messages.Linden.ObjectMediaResponse",
|
||||
"T:LibreMetaverse.Messages.Linden.ObjectMediaUpdate",
|
||||
"T:LibreMetaverse.Messages.Linden.ObjectPhysicsPropertiesMessage",
|
||||
"T:LibreMetaverse.Messages.Linden.ParcelObjectOwnersReplyMessage",
|
||||
"T:LibreMetaverse.Messages.Linden.ParcelObjectOwnersReplyMessage.PrimOwner",
|
||||
"T:LibreMetaverse.Messages.Linden.ParcelPropertiesMessage",
|
||||
@@ -612,9 +664,17 @@ NATIVE_MESSAGE_CODEC_TYPES = {
|
||||
"T:LibreMetaverse.Messages.Linden.PlacesReplyMessage.QueryData",
|
||||
"T:LibreMetaverse.Messages.Linden.ProvisionVoiceAccountRequestMessage",
|
||||
"T:LibreMetaverse.Messages.Linden.RemoteParcelRequestReply",
|
||||
"T:LibreMetaverse.Messages.Linden.RegionInfoMessage",
|
||||
"T:LibreMetaverse.Messages.Linden.RenderMaterialsMessage",
|
||||
"T:LibreMetaverse.Messages.Linden.RequiredVoiceVersionMessage",
|
||||
"T:LibreMetaverse.Messages.Linden.ScriptRunningReplyMessage",
|
||||
"T:LibreMetaverse.Messages.Linden.SearchStatRequestReply",
|
||||
"T:LibreMetaverse.Messages.Linden.SearchStatRequestRequest",
|
||||
"T:LibreMetaverse.Messages.Linden.SendPostcardMessage",
|
||||
"T:LibreMetaverse.Messages.Linden.SetDisplayNameMessage",
|
||||
"T:LibreMetaverse.Messages.Linden.SetDisplayNameReplyMessage",
|
||||
"T:LibreMetaverse.Messages.Linden.DisplayNameUpdateMessage",
|
||||
"T:LibreMetaverse.Messages.Linden.SimConsoleResponseMessage",
|
||||
"T:LibreMetaverse.Messages.Linden.TeleportFailedMessage",
|
||||
"T:LibreMetaverse.Messages.Linden.TeleportFinishMessage",
|
||||
"T:LibreMetaverse.Messages.Linden.UpdateAgentInformationMessage",
|
||||
@@ -622,6 +682,8 @@ NATIVE_MESSAGE_CODEC_TYPES = {
|
||||
"T:LibreMetaverse.Messages.Linden.UpdateAgentLanguageMessage",
|
||||
"T:LibreMetaverse.Messages.Linden.UpdateScriptAgentRequestMessage",
|
||||
"T:LibreMetaverse.Messages.Linden.UpdateScriptTaskUpdateMessage",
|
||||
"T:LibreMetaverse.Messages.Linden.UploaderRequestComplete",
|
||||
"T:LibreMetaverse.Messages.Linden.UploaderRequestUpload",
|
||||
"T:LibreMetaverse.Messages.Linden.ViewerStatsMessage",
|
||||
}
|
||||
OPEN_ENUM_IDS = {"T:LibreMetaverse.BakeType", "T:LibreMetaverse.HoleType"}
|
||||
@@ -1341,7 +1403,22 @@ def render_type(item: dict, type_row: dict, member_rows: dict[str, dict[str, str
|
||||
continue
|
||||
mapped_arguments = [mapper.type(argument, None, set(names)) for argument in arguments]
|
||||
trait_path = mapper.resolved[base] + generic_suffix(mapped_arguments)
|
||||
lines.append(f"impl{suffix} {trait_path} for {rust_name}{suffix} {{}}")
|
||||
if (
|
||||
base == "LibreMetaverse.Interfaces.IMessage"
|
||||
and item["doc_id"] in NATIVE_MESSAGE_CODEC_TYPES
|
||||
):
|
||||
lines += [
|
||||
f"impl{suffix} {trait_path} for {rust_name}{suffix} {{",
|
||||
" fn deserialize(&mut self, map: libremetaverse_structured_data::OSDMap) -> Result<(), crate::Error> {",
|
||||
" <Self as crate::message_codec::GeneratedMessage>::deserialize_generated(self, &map)",
|
||||
" }",
|
||||
" fn serialize(&self) -> Result<libremetaverse_structured_data::OSDMap, crate::Error> {",
|
||||
" <Self as crate::message_codec::GeneratedMessage>::serialize_generated(self)",
|
||||
" }",
|
||||
"}",
|
||||
]
|
||||
else:
|
||||
lines.append(f"impl{suffix} {trait_path} for {rust_name}{suffix} {{}}")
|
||||
return "\n".join(lines)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user