com.wallstop-studios.dxmessaging 2.1.4 → 2.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.artifacts/SourceGenerators.Tests/TestResults/0e800bba-2376-4062-bb19-cf916d3083a1/coverage.cobertura.xml +2624 -0
- package/.artifacts/SourceGenerators.Tests/TestResults/260ab294-e640-4674-9ae9-29b5344c0540/coverage.cobertura.xml +2624 -0
- package/.artifacts/SourceGenerators.Tests/TestResults/31c02772-7d85-4466-a2c4-93742725076e/coverage.cobertura.xml +2624 -0
- package/.artifacts/SourceGenerators.Tests/TestResults/ca4d2ef2-0c53-49dc-91b5-039938571ed8/coverage.cobertura.xml +2624 -0
- package/.artifacts/SourceGenerators.Tests/TestResults/f6cadd7e-1bf5-44b0-9351-47426600fc69/coverage.cobertura.xml +2624 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/.msCoverageSourceRootsMapping_WallstopStudios.DxMessaging.SourceGenerators.Tests +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/CoverletSourceRootsMapping_WallstopStudios.DxMessaging.SourceGenerators.Tests +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/Microsoft.ApplicationInsights.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/Microsoft.CodeAnalysis.CSharp.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/Microsoft.CodeAnalysis.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/Microsoft.TestPlatform.AdapterUtilities.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/Microsoft.TestPlatform.CommunicationUtilities.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/Microsoft.TestPlatform.CoreUtilities.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/Microsoft.TestPlatform.CrossPlatEngine.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/Microsoft.TestPlatform.PlatformAbstractions.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/Microsoft.TestPlatform.Utilities.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/Microsoft.Testing.Extensions.MSBuild.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/Microsoft.Testing.Extensions.Telemetry.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/Microsoft.Testing.Extensions.TrxReport.Abstractions.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/Microsoft.Testing.Extensions.VSTestBridge.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/Microsoft.Testing.Platform.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/Microsoft.VisualStudio.CodeCoverage.Shim.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/Microsoft.VisualStudio.TestPlatform.Common.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/NUnit3.TestAdapter.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/Newtonsoft.Json.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.deps.json +872 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.runtimeconfig.json +13 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/WallstopStudios.DxMessaging.SourceGenerators.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/cs/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/cs/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/cs/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/cs/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/cs/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/cs/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/cs/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/de/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/de/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/de/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/de/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/de/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/de/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/de/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/de/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/de/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/de/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/de/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/es/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/es/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/es/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/es/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/es/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/es/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/es/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/es/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/es/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/es/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/es/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/fr/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/fr/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/fr/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/fr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/fr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/fr/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/fr/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/fr/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/fr/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/fr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/it/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/it/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/it/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/it/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/it/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/it/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/it/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/it/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ja/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ja/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ja/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ja/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ja/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ja/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ja/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ko/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ko/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ko/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ko/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ko/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ko/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ko/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ko/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ko/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ko/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/nunit.engine.api.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/nunit.engine.core.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/nunit.engine.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/nunit.framework.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/nunit.framework.legacy.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pl/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pl/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pl/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pl/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pl/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pl/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pl/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pt-BR/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pt-BR/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pt-BR/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pt-BR/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pt-BR/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pt-BR/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pt-BR/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pt-BR/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pt-BR/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ru/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ru/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ru/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ru/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ru/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ru/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ru/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/testcentric.engine.metadata.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/testhost.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/testhost.exe +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/tr/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/tr/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/tr/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/tr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/tr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/tr/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/tr/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/tr/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/tr/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/tr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Debug/net9.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/.msCoverageSourceRootsMapping_WallstopStudios.DxMessaging.SourceGenerators.Tests +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/CoverletSourceRootsMapping_WallstopStudios.DxMessaging.SourceGenerators.Tests +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/Microsoft.ApplicationInsights.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/Microsoft.CodeAnalysis.CSharp.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/Microsoft.CodeAnalysis.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/Microsoft.Extensions.DependencyModel.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/Microsoft.TestPlatform.AdapterUtilities.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/Microsoft.TestPlatform.CommunicationUtilities.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/Microsoft.TestPlatform.CoreUtilities.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/Microsoft.TestPlatform.CrossPlatEngine.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/Microsoft.TestPlatform.PlatformAbstractions.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/Microsoft.TestPlatform.Utilities.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/Microsoft.Testing.Extensions.MSBuild.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/Microsoft.Testing.Extensions.Telemetry.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/Microsoft.Testing.Extensions.TrxReport.Abstractions.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/Microsoft.Testing.Extensions.VSTestBridge.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/Microsoft.Testing.Platform.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/Microsoft.VisualStudio.CodeCoverage.Shim.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/Microsoft.VisualStudio.TestPlatform.Common.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/NUnit3.TestAdapter.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/Newtonsoft.Json.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.deps.json +817 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.runtimeconfig.json +14 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/WallstopStudios.DxMessaging.SourceGenerators.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/cs/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/cs/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/cs/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/cs/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/cs/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/cs/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/cs/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/de/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/de/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/de/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/de/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/de/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/de/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/de/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/de/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/de/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/de/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/de/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/es/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/es/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/es/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/es/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/es/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/es/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/es/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/es/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/es/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/es/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/es/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/fr/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/fr/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/fr/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/fr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/fr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/fr/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/fr/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/fr/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/fr/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/fr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/it/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/it/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/it/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/it/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/it/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/it/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/it/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/it/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ja/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ja/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ja/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ja/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ja/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ja/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ja/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ko/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ko/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ko/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ko/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ko/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ko/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ko/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ko/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ko/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ko/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/nunit.engine.api.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/nunit.engine.core.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/nunit.engine.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/nunit.framework.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/nunit.framework.legacy.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pl/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pl/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pl/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pl/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pl/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pl/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pl/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pt-BR/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pt-BR/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pt-BR/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pt-BR/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pt-BR/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pt-BR/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pt-BR/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pt-BR/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pt-BR/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ru/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ru/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ru/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ru/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ru/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ru/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ru/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/testcentric.engine.metadata.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/testhost.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/testhost.exe +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/tr/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/tr/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/tr/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/tr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/tr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/tr/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/tr/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/tr/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/tr/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/tr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hans/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hans/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hans/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hans/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hans/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hans/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hant/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hant/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hant/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hant/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hant/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hant/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/Release/net9.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/.msCoverageSourceRootsMapping_WallstopStudios.DxMessaging.SourceGenerators.Tests +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/CoverletSourceRootsMapping_WallstopStudios.DxMessaging.SourceGenerators.Tests +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/Microsoft.ApplicationInsights.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/Microsoft.CodeAnalysis.CSharp.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/Microsoft.CodeAnalysis.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/Microsoft.Extensions.DependencyModel.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/Microsoft.TestPlatform.AdapterUtilities.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/Microsoft.TestPlatform.CommunicationUtilities.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/Microsoft.TestPlatform.CoreUtilities.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/Microsoft.TestPlatform.CrossPlatEngine.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/Microsoft.TestPlatform.PlatformAbstractions.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/Microsoft.TestPlatform.Utilities.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/Microsoft.Testing.Extensions.MSBuild.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/Microsoft.Testing.Extensions.Telemetry.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/Microsoft.Testing.Extensions.TrxReport.Abstractions.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/Microsoft.Testing.Extensions.VSTestBridge.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/Microsoft.Testing.Platform.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/Microsoft.VisualStudio.CodeCoverage.Shim.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/Microsoft.VisualStudio.TestPlatform.Common.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/NUnit3.TestAdapter.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/Newtonsoft.Json.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.deps.json +872 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.runtimeconfig.json +13 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/WallstopStudios.DxMessaging.SourceGenerators.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/cs/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/cs/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/cs/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/cs/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/cs/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/cs/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/cs/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/de/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/de/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/de/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/de/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/de/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/de/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/de/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/de/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/de/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/de/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/de/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/es/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/es/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/es/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/es/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/es/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/es/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/es/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/es/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/es/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/es/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/es/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/fr/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/fr/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/fr/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/fr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/fr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/fr/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/fr/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/fr/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/fr/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/fr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/it/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/it/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/it/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/it/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/it/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/it/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/it/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/it/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/ja/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/ja/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/ja/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/ja/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/ja/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/ja/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/ja/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/ko/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/ko/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/ko/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/ko/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/ko/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/ko/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/ko/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/ko/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/ko/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/ko/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/nunit.engine.api.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/nunit.engine.core.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/nunit.engine.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/nunit.framework.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/nunit.framework.legacy.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/pl/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/pl/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/pl/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/pl/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/pl/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/pl/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/pl/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/pt-BR/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/pt-BR/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/pt-BR/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/pt-BR/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/pt-BR/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/pt-BR/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/pt-BR/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/pt-BR/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/pt-BR/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/ru/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/ru/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/ru/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/ru/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/ru/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/ru/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/ru/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/testcentric.engine.metadata.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/testhost.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/testhost.exe +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/tr/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/tr/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/tr/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/tr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/tr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/tr/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/tr/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/tr/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/tr/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/tr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hans/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hans/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hans/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hans/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hans/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hans/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hant/Microsoft.CodeAnalysis.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hant/Microsoft.TestPlatform.AdapterUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hant/Microsoft.Testing.Extensions.MSBuild.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hant/Microsoft.Testing.Extensions.Telemetry.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hant/Microsoft.Testing.Extensions.VSTestBridge.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hant/Microsoft.Testing.Platform.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/bin/net9.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs +4 -0
- package/.artifacts/SourceGenerators.Tests/obj/Debug/net9.0/Wallstop.9ADB0525.Up2Date +0 -0
- package/.artifacts/SourceGenerators.Tests/obj/Debug/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.AssemblyInfo.cs +22 -0
- package/.artifacts/SourceGenerators.Tests/obj/Debug/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.GeneratedMSBuildEditorConfig.editorconfig +25 -0
- package/.artifacts/SourceGenerators.Tests/obj/Debug/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.GlobalUsings.g.cs +8 -0
- package/.artifacts/SourceGenerators.Tests/obj/Debug/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.csproj.FileListAbsolute.txt +28 -0
- package/.artifacts/SourceGenerators.Tests/obj/Debug/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/obj/Debug/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.sourcelink.json +1 -0
- package/.artifacts/SourceGenerators.Tests/obj/Debug/net9.0/ref/WallstopStudios.DxMessaging.SourceGenerators.Tests.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/obj/Debug/net9.0/refint/WallstopStudios.DxMessaging.SourceGenerators.Tests.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/obj/Release/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs +4 -0
- package/.artifacts/SourceGenerators.Tests/obj/Release/net9.0/Wallstop.9ADB0525.Up2Date +0 -0
- package/.artifacts/SourceGenerators.Tests/obj/Release/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.AssemblyInfo.cs +23 -0
- package/.artifacts/SourceGenerators.Tests/obj/Release/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.GeneratedMSBuildEditorConfig.editorconfig +17 -0
- package/.artifacts/SourceGenerators.Tests/obj/Release/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.GlobalUsings.g.cs +8 -0
- package/.artifacts/SourceGenerators.Tests/obj/Release/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.csproj.BuildWithSkipAnalyzers +0 -0
- package/.artifacts/SourceGenerators.Tests/obj/Release/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.csproj.FileListAbsolute.txt +84 -0
- package/.artifacts/SourceGenerators.Tests/obj/Release/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/obj/Release/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.sourcelink.json +1 -0
- package/.artifacts/SourceGenerators.Tests/obj/Release/net9.0/ref/WallstopStudios.DxMessaging.SourceGenerators.Tests.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/obj/Release/net9.0/refint/WallstopStudios.DxMessaging.SourceGenerators.Tests.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/obj/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs +4 -0
- package/.artifacts/SourceGenerators.Tests/obj/net9.0/Wallstop.9ADB0525.Up2Date +0 -0
- package/.artifacts/SourceGenerators.Tests/obj/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.AssemblyInfo.cs +22 -0
- package/.artifacts/SourceGenerators.Tests/obj/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.GeneratedMSBuildEditorConfig.editorconfig +23 -0
- package/.artifacts/SourceGenerators.Tests/obj/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.GlobalUsings.g.cs +8 -0
- package/.artifacts/SourceGenerators.Tests/obj/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.csproj.FileListAbsolute.txt +55 -0
- package/.artifacts/SourceGenerators.Tests/obj/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/obj/net9.0/WallstopStudios.DxMessaging.SourceGenerators.Tests.sourcelink.json +1 -0
- package/.artifacts/SourceGenerators.Tests/obj/net9.0/ref/WallstopStudios.DxMessaging.SourceGenerators.Tests.dll +0 -0
- package/.artifacts/SourceGenerators.Tests/obj/net9.0/refint/WallstopStudios.DxMessaging.SourceGenerators.Tests.dll +0 -0
- package/.config/dotnet-tools.json +1 -1
- package/.csharpierignore +1 -1
- package/.cspell.json +222 -0
- package/.cursorrules +3 -0
- package/.devcontainer/.dockerignore +92 -0
- package/.devcontainer/Dockerfile +475 -0
- package/.devcontainer/devcontainer.json +54 -0
- package/.devcontainer/verify-tools.sh +183 -0
- package/.editorconfig +6 -0
- package/.gitattributes +12 -0
- package/.github/ISSUE_TEMPLATE/bug_report.yml +95 -0
- package/.github/ISSUE_TEMPLATE/config.yml +5 -0
- package/.github/ISSUE_TEMPLATE/feature_request.yml +46 -0
- package/.github/copilot-instructions.md +3 -0
- package/.github/dependabot.yml +36 -2
- package/.github/pull_request_template.md +30 -0
- package/.github/release-drafter.yml +92 -0
- package/.github/scripts/check-markdown-links.ps1 +27 -3
- package/.github/scripts/check_markdown_links.py +132 -34
- package/.github/scripts/test_check_markdown_links.py +545 -0
- package/.github/workflows/actionlint.yml +47 -0
- package/.github/workflows/csharpier-autofix.yml +46 -6
- package/.github/workflows/deploy-docs.yml +118 -0
- package/.github/workflows/dotnet-tests.yml +15 -2
- package/.github/workflows/format-on-demand.yml +60 -56
- package/.github/workflows/json-format-check.yml +26 -1
- package/.github/workflows/lint-doc-links.yml +15 -1
- package/.github/workflows/markdown-json.yml +23 -5
- package/.github/workflows/markdown-link-text-check.yml +12 -1
- package/.github/workflows/markdown-link-validity.yml +12 -1
- package/.github/workflows/markdownlint.yml +29 -3
- package/.github/workflows/prettier-autofix.yml +86 -15
- package/.github/workflows/release-drafter.yml +135 -0
- package/.github/workflows/spellcheck.yml +56 -0
- package/.github/workflows/sync-wiki.yml +139 -0
- package/.github/workflows/update-dotnet-tools.yml +7 -3
- package/.github/workflows/validate-docs.yml +196 -0
- package/.github/workflows/validate-skills.yml +46 -0
- package/.github/workflows/yaml-format-lint.yml +28 -1
- package/.llm/context.md +379 -0
- package/.llm/skills/documentation/changelog-entry-writing.md +277 -0
- package/.llm/skills/documentation/changelog-management.md +228 -0
- package/.llm/skills/documentation/changelog-release-workflow.md +249 -0
- package/.llm/skills/documentation/documentation-code-samples.md +262 -0
- package/.llm/skills/documentation/documentation-style-guide.md +203 -0
- package/.llm/skills/documentation/documentation-update-workflow.md +148 -0
- package/.llm/skills/documentation/documentation-updates.md +148 -0
- package/.llm/skills/documentation/documentation-xml-docs.md +190 -0
- package/.llm/skills/documentation/external-url-fragment-validation.md +181 -0
- package/.llm/skills/documentation/github-actions-version-consistency.md +203 -0
- package/.llm/skills/documentation/link-quality-guidelines.md +267 -0
- package/.llm/skills/documentation/markdown-compatibility.md +476 -0
- package/.llm/skills/documentation/mermaid-theming.md +326 -0
- package/.llm/skills/documentation/mkdocs-navigation.md +290 -0
- package/.llm/skills/documentation/skill-file-sizing.md +260 -0
- package/.llm/skills/github-actions/git-renormalize-patterns.md +231 -0
- package/.llm/skills/github-actions/workflow-consistency.md +346 -0
- package/.llm/skills/index.md +257 -0
- package/.llm/skills/performance/aggressive-inlining-performance-notes.md +94 -0
- package/.llm/skills/performance/aggressive-inlining.md +342 -0
- package/.llm/skills/performance/array-pooling-usage-examples.md +145 -0
- package/.llm/skills/performance/array-pooling.md +315 -0
- package/.llm/skills/performance/cache-eviction-builder.md +203 -0
- package/.llm/skills/performance/cache-eviction-implementation.md +340 -0
- package/.llm/skills/performance/cache-eviction-policies.md +176 -0
- package/.llm/skills/performance/collection-pooling.md +313 -0
- package/.llm/skills/performance/object-pooling-anti-patterns.md +144 -0
- package/.llm/skills/performance/object-pooling-usage-examples.md +114 -0
- package/.llm/skills/performance/object-pooling-variations.md +147 -0
- package/.llm/skills/performance/object-pooling.md +319 -0
- package/.llm/skills/performance/readonly-struct-cached-hash-performance-notes.md +91 -0
- package/.llm/skills/performance/readonly-struct-cached-hash.md +337 -0
- package/.llm/skills/performance/serializable-dictionary-property-drawer.md +147 -0
- package/.llm/skills/performance/serializable-dictionary-usage-examples.md +135 -0
- package/.llm/skills/performance/serializable-dictionary.md +281 -0
- package/.llm/skills/performance/singleton-autoload.md +111 -0
- package/.llm/skills/performance/singleton-patterns.md +165 -0
- package/.llm/skills/performance/singleton-runtime.md +187 -0
- package/.llm/skills/performance/singleton-scriptableobject.md +177 -0
- package/.llm/skills/performance/singleton-usage-examples.md +139 -0
- package/.llm/skills/performance/stringbuilder-pooling.md +319 -0
- package/.llm/skills/performance/yield-instruction-pooling.md +347 -0
- package/.llm/skills/scripting/cross-platform-compatibility.md +224 -0
- package/{Docs/Comparisons.md.meta → .llm/skills/scripting/cross-platform-compatibility.md.meta} +1 -1
- package/.llm/skills/scripting/javascript-code-quality.md +417 -0
- package/.llm/skills/scripting/powershell-best-practices.md +386 -0
- package/.llm/skills/scripting/regex-documentation.md +461 -0
- package/.llm/skills/scripting/shell-best-practices.md +386 -0
- package/.llm/skills/scripting/validation-patterns.md +418 -0
- package/.llm/skills/solid/collection-extensions-accessors.md +229 -0
- package/.llm/skills/solid/collection-extensions-shuffle.md +144 -0
- package/.llm/skills/solid/collection-extensions-type-specialization.md +168 -0
- package/.llm/skills/solid/collection-extensions.md +144 -0
- package/.llm/skills/solid/fluent-builder-pattern-templates.md +117 -0
- package/.llm/skills/solid/fluent-builder-pattern-usage-examples.md +128 -0
- package/.llm/skills/solid/fluent-builder-pattern.md +322 -0
- package/.llm/skills/solid/iequatable-implementation-usage.md +111 -0
- package/.llm/skills/solid/iequatable-implementation-variants.md +201 -0
- package/.llm/skills/solid/iequatable-implementation.md +239 -0
- package/.llm/skills/solid/try-pattern-apis-usage.md +136 -0
- package/.llm/skills/solid/try-pattern-apis-variants.md +233 -0
- package/.llm/skills/solid/try-pattern-apis.md +220 -0
- package/.llm/skills/specification.md +468 -0
- package/.llm/skills/templates/skill-template.md +143 -0
- package/.llm/skills/testing/comprehensive-test-coverage.md +141 -0
- package/.llm/skills/testing/data-driven-tests-sources.md +255 -0
- package/.llm/skills/testing/data-driven-tests-usage.md +107 -0
- package/.llm/skills/testing/data-driven-tests.md +197 -0
- package/.llm/skills/testing/git-workflow-robustness.md +369 -0
- package/.llm/skills/testing/script-test-coverage.md +259 -0
- package/{Docs/DesignAndArchitecture.md.meta → .llm/skills/testing/script-test-coverage.md.meta} +1 -1
- package/.llm/skills/testing/shared-test-fixtures-generic-base.md +185 -0
- package/.llm/skills/testing/shared-test-fixtures-reference-counting.md +252 -0
- package/.llm/skills/testing/shared-test-fixtures.md +165 -0
- package/.llm/skills/testing/test-base-class-cleanup-usage.md +218 -0
- package/.llm/skills/testing/test-base-class-cleanup.md +323 -0
- package/.llm/skills/testing/test-categories-execution.md +142 -0
- package/.llm/skills/testing/test-categories.md +287 -0
- package/.llm/skills/testing/test-code-quality.md +243 -0
- package/.llm/skills/testing/test-coverage-data-driven.md +172 -0
- package/.llm/skills/testing/test-coverage-organization-assertions.md +171 -0
- package/.llm/skills/testing/test-coverage-scenario-categories.md +223 -0
- package/.llm/skills/testing/test-coverage-unity-anti-patterns.md +232 -0
- package/.llm/skills/testing/test-diagnostics-patterns.md +189 -0
- package/.llm/skills/testing/test-diagnostics-usage.md +196 -0
- package/.llm/skills/testing/test-diagnostics.md +247 -0
- package/.llm/skills/testing/test-failure-investigation-procedure.md +216 -0
- package/.llm/skills/testing/test-failure-investigation-root-causes.md +186 -0
- package/.llm/skills/testing/test-failure-investigation.md +119 -0
- package/.llm/skills/testing/test-invalid-skill.md +26 -0
- package/.llm/skills/testing/test-production-code.md +348 -0
- package/.lychee.toml +3 -1
- package/.markdownlint.json +2 -0
- package/.markdownlint.jsonc +2 -0
- package/.markdownlintignore +7 -7
- package/.pre-commit-config.yaml +80 -3
- package/.prettierignore +21 -21
- package/.vs/ProjectEvaluation/com.wallstop-studios.dxmessaging.metadata.v10.bin +0 -0
- package/.vs/ProjectEvaluation/com.wallstop-studios.dxmessaging.projects.v10.bin +0 -0
- package/.vs/ProjectEvaluation/com.wallstop-studios.dxmessaging.strings.v10.bin +0 -0
- package/.vs/ProjectSettings.json +3 -0
- package/.vs/VSWorkspaceState.json +9 -0
- package/.vs/com.wallstop-studios.dxmessaging/CopilotIndices/17.14.1347.20289/CodeChunks.db +0 -0
- package/.vs/com.wallstop-studios.dxmessaging/CopilotIndices/17.14.1347.20289/SemanticSymbols.db +0 -0
- package/.vs/com.wallstop-studios.dxmessaging/DesignTimeBuild/.dtbcache.v2 +0 -0
- package/.vs/com.wallstop-studios.dxmessaging/FileContentIndex/41b4588f-fa0f-484b-a29b-733b6ce84c26.vsidx +0 -0
- package/.vs/com.wallstop-studios.dxmessaging/FileContentIndex/9a73875f-5693-4296-95fd-0672bf61c5ac.vsidx +0 -0
- package/.vs/com.wallstop-studios.dxmessaging/FileContentIndex/fd44ab3e-7015-4c20-918a-a0a916be8934.vsidx +0 -0
- package/.vs/com.wallstop-studios.dxmessaging/v17/.futdcache.v2 +0 -0
- package/.vs/com.wallstop-studios.dxmessaging/v17/.wsuo +0 -0
- package/.vs/com.wallstop-studios.dxmessaging/v17/DocumentLayout.backup.json +82 -0
- package/.vs/com.wallstop-studios.dxmessaging/v17/DocumentLayout.json +82 -0
- package/.vs/com.wallstop-studios.dxmessaging/v17/TestStore/0/000.testlog +0 -0
- package/.vs/com.wallstop-studios.dxmessaging/v17/TestStore/0/testlog.manifest +0 -0
- package/.vs/com.wallstop-studios.dxmessaging/v17/csharpier.json +1 -0
- package/.vs/com.wallstop-studios.dxmessaging/v18/.futdcache.v2 +0 -0
- package/.vs/com.wallstop-studios.dxmessaging/v18/DocumentLayout.backup.json +86 -0
- package/.vs/com.wallstop-studios.dxmessaging/v18/DocumentLayout.json +86 -0
- package/.vs/slnx.sqlite +0 -0
- package/AGENTS.md +1 -50
- package/CHANGELOG.md +42 -0
- package/CLAUDE.md +3 -0
- package/{Docs/Compatibility.md.meta → CLAUDE.md.meta} +1 -1
- package/CONTRIBUTING.md +8 -4
- package/Editor/Analyzers/WallstopStudios.DxMessaging.SourceGenerators.dll +0 -0
- package/Editor/Settings/DxMessagingSettings.cs +2 -3
- package/README.md +136 -112
- package/Runtime/Core/MessageBus/IMessageBus.cs +20 -1
- package/Runtime/Core/MessageBus/MessageBus.cs +2267 -1061
- package/Runtime/Core/MessageBus/MessageRegistrationBuilder.cs +4 -2
- package/Runtime/Core/MessageHandler.cs +519 -6
- package/Samples~/DI/README.md +2 -2
- package/Samples~/Mini Combat/README.md +7 -7
- package/Samples~/Mini Combat/Walkthrough.md +12 -12
- package/Samples~/UI Buttons + Inspector/README.md +8 -8
- package/SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators/.vs/WallstopStudios.DxMessaging.SourceGenerators/CopilotIndices/17.14.1231.31060/CodeChunks.db +0 -0
- package/SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators/.vs/WallstopStudios.DxMessaging.SourceGenerators/CopilotIndices/17.14.1231.31060/SemanticSymbols.db +0 -0
- package/SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators/.vs/WallstopStudios.DxMessaging.SourceGenerators/DesignTimeBuild/.dtbcache.v2 +0 -0
- package/SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators/.vs/WallstopStudios.DxMessaging.SourceGenerators/FileContentIndex/c90afd9b-d899-4546-bd92-ab874e448437.vsidx +0 -0
- package/SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators/.vs/WallstopStudios.DxMessaging.SourceGenerators/v17/.futdcache.v2 +0 -0
- package/SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators.Tests/DocsSnippetCompilationTests.cs +355 -4
- package/SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators.Tests/WallstopStudios.DxMessaging.SourceGenerators.Tests.csproj +2 -2
- package/Tests/Runtime/Benchmarks/BenchmarkSession.cs +6 -3
- package/Tests/Runtime/Benchmarks/WallstopStudios.DxMessaging.Tests.Runtime.Benchmarks.asmdef +1 -6
- package/Tests/Runtime/Core/BroadcastTests.cs +80 -66
- package/Tests/Runtime/Core/CyclicBufferTests.cs +284 -14
- package/Tests/Runtime/Core/DiagnosticsTests.cs +72 -0
- package/Tests/Runtime/Core/DxMessagingStaticStateTests.cs +1 -1
- package/Tests/Runtime/Core/GlobalAcceptAllTests.cs +26 -26
- package/Tests/Runtime/Core/MutationDedupeTests.cs +24 -24
- package/Tests/Runtime/Core/MutationDuringEmissionTests.cs +126 -9
- package/Tests/Runtime/Core/MutationHighVolumeStressTests.cs +512 -0
- package/Tests/Runtime/Core/MutationHighVolumeStressTests.cs.meta +11 -0
- package/Tests/Runtime/Core/NominalTests.cs +82 -81
- package/Tests/Runtime/Core/PostProcessorTests.cs +108 -99
- package/Tests/Runtime/Core/RegistrationTests.cs +159 -159
- package/Tests/Runtime/Core/TargetedTests.cs +80 -66
- package/Tests/Runtime/Core/UntargetedTests.cs +25 -20
- package/Tests/Runtime/Integrations/Reflex/WallstopStudios.DxMessaging.Tests.Runtime.Reflex.asmdef +1 -1
- package/Tests/Runtime/Integrations/VContainer/WallstopStudios.DxMessaging.Tests.Runtime.VContainer.asmdef +1 -1
- package/Tests/Runtime/Integrations/Zenject/WallstopStudios.DxMessaging.Tests.Runtime.Zenject.asmdef +1 -1
- package/Tests/Runtime/Integrations/Zenject/ZenjectIntegrationTests.cs +0 -1
- package/coverage/clover.xml +219 -0
- package/{Docs/Advanced.md.meta → coverage/clover.xml.meta} +1 -1
- package/coverage/coverage-final.json +2 -0
- package/coverage/coverage-final.json.meta +7 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/base.css.meta +7 -0
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/block-navigation.js.meta +7 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/favicon.png.meta +127 -0
- package/coverage/lcov-report/index.html +116 -0
- package/coverage/lcov-report/index.html.meta +7 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.css.meta +7 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/prettify.js.meta +7 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sort-arrow-sprite.png.meta +127 -0
- package/coverage/lcov-report/sorter.js +210 -0
- package/coverage/lcov-report/sorter.js.meta +7 -0
- package/coverage/lcov-report/transform-docs-to-wiki.js.html +1312 -0
- package/coverage/lcov-report/transform-docs-to-wiki.js.html.meta +7 -0
- package/coverage/lcov-report/vendor.meta +8 -0
- package/coverage/lcov-report.meta +8 -0
- package/coverage/lcov.info +365 -0
- package/coverage/lcov.info.meta +7 -0
- package/{Docs/EmitShorthands.md → docs/advanced/emit-shorthands.md} +17 -17
- package/docs/advanced/emit-shorthands.md.meta +7 -0
- package/{Docs/MessageBusProviders.md → docs/advanced/message-bus-providers.md} +5 -4
- package/docs/advanced/message-bus-providers.md.meta +7 -0
- package/docs/advanced/registration-builders.md +444 -0
- package/docs/advanced/registration-builders.md.meta +7 -0
- package/{Docs/RuntimeConfiguration.md → docs/advanced/runtime-configuration.md} +5 -4
- package/docs/advanced/runtime-configuration.md.meta +7 -0
- package/{Docs/StringMessages.md → docs/advanced/string-messages.md} +2 -2
- package/docs/advanced/string-messages.md.meta +7 -0
- package/docs/advanced.meta +8 -0
- package/{Docs/Comparisons.md → docs/architecture/comparisons.md} +71 -66
- package/docs/architecture/comparisons.md.meta +7 -0
- package/{Docs/DesignAndArchitecture.md → docs/architecture/design-and-architecture.md} +16 -16
- package/docs/architecture/design-and-architecture.md.meta +7 -0
- package/docs/architecture/performance.md +53 -0
- package/docs/architecture/performance.md.meta +7 -0
- package/docs/architecture.meta +8 -0
- package/docs/concepts/index.md +37 -0
- package/docs/concepts/index.md.meta +7 -0
- package/{Docs/InterceptorsAndOrdering.md → docs/concepts/interceptors-and-ordering.md} +56 -55
- package/docs/concepts/interceptors-and-ordering.md.meta +7 -0
- package/{Docs/ListeningPatterns.md → docs/concepts/listening-patterns.md} +17 -15
- package/docs/concepts/listening-patterns.md.meta +7 -0
- package/docs/concepts/mental-model.md +390 -0
- package/docs/concepts/mental-model.md.meta +7 -0
- package/{Docs/MessageTypes.md → docs/concepts/message-types.md} +18 -13
- package/docs/concepts/message-types.md.meta +7 -0
- package/{Docs/TargetingAndContext.md → docs/concepts/targeting-and-context.md} +10 -10
- package/docs/concepts/targeting-and-context.md.meta +7 -0
- package/docs/concepts.meta +8 -0
- package/docs/examples/end-to-end-scene-transitions.md.meta +7 -0
- package/{Docs/EndToEnd.md → docs/examples/end-to-end.md} +1 -1
- package/docs/examples/end-to-end.md.meta +7 -0
- package/docs/examples.meta +8 -0
- package/{Docs/GettingStarted.md → docs/getting-started/getting-started.md} +31 -28
- package/docs/getting-started/getting-started.md.meta +7 -0
- package/docs/getting-started/index.md +317 -0
- package/docs/getting-started/index.md.meta +7 -0
- package/docs/getting-started/install.md +89 -0
- package/docs/getting-started/install.md.meta +7 -0
- package/{Docs/Overview.md → docs/getting-started/overview.md} +37 -35
- package/docs/getting-started/overview.md.meta +7 -0
- package/docs/getting-started/quick-start.md +175 -0
- package/docs/getting-started/quick-start.md.meta +7 -0
- package/{Docs/VisualGuide.md → docs/getting-started/visual-guide.md} +114 -111
- package/docs/getting-started/visual-guide.md.meta +7 -0
- package/docs/getting-started.meta +8 -0
- package/{Docs/Advanced.md → docs/guides/advanced.md} +4 -4
- package/docs/guides/advanced.md.meta +7 -0
- package/docs/guides/diagnostics.md +300 -0
- package/docs/guides/diagnostics.md.meta +7 -0
- package/{Docs/MigrationGuide.md → docs/guides/migration-guide.md} +3 -3
- package/docs/guides/migration-guide.md.meta +7 -0
- package/{Docs/Patterns.md → docs/guides/patterns.md} +22 -22
- package/docs/guides/patterns.md.meta +7 -0
- package/docs/guides/testing.md +243 -0
- package/docs/guides/testing.md.meta +7 -0
- package/{Docs/UnityIntegration.md → docs/guides/unity-integration.md} +13 -13
- package/docs/guides/unity-integration.md.meta +7 -0
- package/docs/guides.meta +8 -0
- package/docs/hooks.py +177 -0
- package/docs/hooks.py.meta +7 -0
- package/docs/images/DxMessaging-banner.svg +119 -0
- package/docs/images/DxMessaging-banner.svg.meta +7 -0
- package/docs/images.meta +8 -0
- package/docs/index.md +61 -0
- package/docs/integrations/index.md +66 -0
- package/docs/integrations/index.md.meta +7 -0
- package/{Docs/Integrations/Reflex.md → docs/integrations/reflex.md} +43 -18
- package/{Docs/Integrations/VContainer.md → docs/integrations/vcontainer.md} +18 -9
- package/{Docs/Integrations/Zenject.md → docs/integrations/zenject.md} +6 -6
- package/docs/javascripts/csharp-highlight.js +246 -0
- package/docs/javascripts/csharp-highlight.js.meta +7 -0
- package/docs/javascripts/mermaid-config.js +387 -0
- package/docs/javascripts/mermaid-config.js.meta +7 -0
- package/docs/javascripts.meta +8 -0
- package/{Docs/Compatibility.md → docs/reference/compatibility.md} +7 -7
- package/docs/reference/compatibility.md.meta +7 -0
- package/{Docs/FAQ.md → docs/reference/faq.md} +21 -26
- package/docs/reference/faq.md.meta +7 -0
- package/{Docs/Glossary.md → docs/reference/glossary.md} +18 -13
- package/docs/reference/glossary.md.meta +7 -0
- package/{Docs/Helpers.md → docs/reference/helpers.md} +397 -93
- package/docs/reference/helpers.md.meta +7 -0
- package/{Docs/QuickReference.md → docs/reference/quick-reference.md} +132 -58
- package/docs/reference/quick-reference.md.meta +7 -0
- package/docs/reference/reference.md +365 -0
- package/docs/reference/reference.md.meta +7 -0
- package/{Docs/Troubleshooting.md → docs/reference/troubleshooting.md} +12 -17
- package/docs/reference/troubleshooting.md.meta +7 -0
- package/docs/reference.meta +8 -0
- package/docs/stylesheets/extra.css +485 -0
- package/docs/stylesheets/extra.css.meta +7 -0
- package/docs/stylesheets.meta +8 -0
- package/mkdocs.yml +200 -0
- package/mkdocs.yml.meta +7 -0
- package/package.json +8 -6
- package/requirements-docs.txt +23 -0
- package/requirements-docs.txt.meta +7 -0
- package/scripts/__tests__/generate-skills-index.test.js +397 -0
- package/scripts/__tests__/generate-skills-index.test.js.meta +7 -0
- package/scripts/__tests__/mermaid-config.test.js +467 -0
- package/scripts/__tests__/mermaid-config.test.js.meta +7 -0
- package/scripts/__tests__/sync-banner-version.test.js +606 -0
- package/scripts/__tests__/sync-banner-version.test.js.meta +7 -0
- package/scripts/__tests__/validate-skills-optional-fields.test.js +1474 -0
- package/scripts/__tests__/validate-skills-optional-fields.test.js.meta +7 -0
- package/scripts/__tests__/validate-skills-required-fields.test.js +188 -0
- package/scripts/__tests__/validate-skills-required-fields.test.js.meta +7 -0
- package/scripts/__tests__/validate-skills-tags.test.js +353 -0
- package/scripts/__tests__/validate-skills-tags.test.js.meta +7 -0
- package/scripts/__tests__/validate-workflows.test.js +188 -0
- package/scripts/__tests__/validate-workflows.test.js.meta +7 -0
- package/scripts/__tests__.meta +8 -0
- package/scripts/check-eol.js +290 -19
- package/scripts/check-eol.ps1 +103 -15
- package/scripts/fix-eol.js +40 -8
- package/scripts/generate-skills-index.js +597 -0
- package/scripts/generate-skills-index.js.meta +7 -0
- package/scripts/generate-skills-index.ps1 +38 -0
- package/scripts/generate-skills-index.ps1.meta +7 -0
- package/scripts/hooks/pre-commit +59 -0
- package/scripts/hooks/pre-commit.meta +7 -0
- package/scripts/hooks.meta +8 -0
- package/scripts/sync-banner-version.ps1 +133 -0
- package/scripts/sync-banner-version.ps1.meta +7 -0
- package/scripts/sync-banner-version.sh +16 -0
- package/scripts/sync-banner-version.sh.meta +7 -0
- package/scripts/validate-skills.js +757 -0
- package/scripts/validate-skills.js.meta +7 -0
- package/scripts/validate-workflows.js +272 -0
- package/scripts/validate-workflows.js.meta +7 -0
- package/scripts/wiki/__tests__/transform.test.js +380 -0
- package/scripts/wiki/__tests__/transform.test.js.meta +7 -0
- package/scripts/wiki/__tests__.meta +7 -0
- package/scripts/wiki/generate-wiki-sidebar.js +122 -0
- package/{Docs/EmitShorthands.md.meta → scripts/wiki/generate-wiki-sidebar.js.meta} +8 -2
- package/scripts/wiki/transform-docs-to-wiki.js +409 -0
- package/scripts/wiki/transform-docs-to-wiki.js.meta +7 -0
- package/scripts/wiki.meta +8 -0
- package/site/404.html +1 -0
- package/site/404.html.meta +7 -0
- package/site/advanced/emit-shorthands/index.html +212 -0
- package/site/advanced/emit-shorthands/index.html.meta +7 -0
- package/site/advanced/emit-shorthands.meta +8 -0
- package/site/advanced/message-bus-providers/index.html +241 -0
- package/site/advanced/message-bus-providers/index.html.meta +7 -0
- package/site/advanced/message-bus-providers.meta +8 -0
- package/site/advanced/registration-builders/index.html +228 -0
- package/site/advanced/registration-builders/index.html.meta +7 -0
- package/site/advanced/registration-builders.meta +8 -0
- package/site/advanced/runtime-configuration/index.html +196 -0
- package/site/advanced/runtime-configuration/index.html.meta +7 -0
- package/site/advanced/runtime-configuration.meta +8 -0
- package/site/advanced/string-messages/index.html +29 -0
- package/site/advanced/string-messages/index.html.meta +7 -0
- package/site/advanced/string-messages.meta +8 -0
- package/site/advanced.meta +8 -0
- package/site/architecture/comparisons/index.html +356 -0
- package/site/architecture/comparisons/index.html.meta +7 -0
- package/site/architecture/comparisons.meta +8 -0
- package/site/architecture/design-and-architecture/index.html +34 -0
- package/site/architecture/design-and-architecture/index.html.meta +7 -0
- package/site/architecture/design-and-architecture.meta +8 -0
- package/site/architecture/performance/index.html +1 -0
- package/site/architecture/performance/index.html.meta +7 -0
- package/site/architecture/performance.meta +8 -0
- package/site/architecture.meta +8 -0
- package/site/assets/images/favicon.png +0 -0
- package/site/assets/images/favicon.png.meta +127 -0
- package/site/assets/images.meta +8 -0
- package/site/assets/javascripts/bundle.79ae519e.min.js +16 -0
- package/site/assets/javascripts/bundle.79ae519e.min.js.map +7 -0
- package/site/assets/javascripts/bundle.79ae519e.min.js.map.meta +7 -0
- package/site/assets/javascripts/bundle.79ae519e.min.js.meta +7 -0
- package/site/assets/javascripts/lunr/min/lunr.ar.min.js +1 -0
- package/site/assets/javascripts/lunr/min/lunr.ar.min.js.meta +7 -0
- package/site/assets/javascripts/lunr/min/lunr.da.min.js +18 -0
- package/site/assets/javascripts/lunr/min/lunr.da.min.js.meta +7 -0
- package/site/assets/javascripts/lunr/min/lunr.de.min.js +18 -0
- package/site/assets/javascripts/lunr/min/lunr.de.min.js.meta +7 -0
- package/site/assets/javascripts/lunr/min/lunr.du.min.js +18 -0
- package/site/assets/javascripts/lunr/min/lunr.du.min.js.meta +7 -0
- package/site/assets/javascripts/lunr/min/lunr.el.min.js +1 -0
- package/site/assets/javascripts/lunr/min/lunr.el.min.js.meta +7 -0
- package/site/assets/javascripts/lunr/min/lunr.es.min.js +18 -0
- package/site/assets/javascripts/lunr/min/lunr.es.min.js.meta +7 -0
- package/site/assets/javascripts/lunr/min/lunr.fi.min.js +18 -0
- package/site/assets/javascripts/lunr/min/lunr.fi.min.js.meta +7 -0
- package/site/assets/javascripts/lunr/min/lunr.fr.min.js +18 -0
- package/site/assets/javascripts/lunr/min/lunr.fr.min.js.meta +7 -0
- package/site/assets/javascripts/lunr/min/lunr.he.min.js +1 -0
- package/site/assets/javascripts/lunr/min/lunr.he.min.js.meta +7 -0
- package/site/assets/javascripts/lunr/min/lunr.hi.min.js +1 -0
- package/site/assets/javascripts/lunr/min/lunr.hi.min.js.meta +7 -0
- package/site/assets/javascripts/lunr/min/lunr.hu.min.js +18 -0
- package/site/assets/javascripts/lunr/min/lunr.hu.min.js.meta +7 -0
- package/site/assets/javascripts/lunr/min/lunr.hy.min.js +1 -0
- package/site/assets/javascripts/lunr/min/lunr.hy.min.js.meta +7 -0
- package/site/assets/javascripts/lunr/min/lunr.it.min.js +18 -0
- package/site/assets/javascripts/lunr/min/lunr.it.min.js.meta +7 -0
- package/site/assets/javascripts/lunr/min/lunr.ja.min.js +1 -0
- package/site/assets/javascripts/lunr/min/lunr.ja.min.js.meta +7 -0
- package/site/assets/javascripts/lunr/min/lunr.jp.min.js +1 -0
- package/site/assets/javascripts/lunr/min/lunr.jp.min.js.meta +7 -0
- package/site/assets/javascripts/lunr/min/lunr.kn.min.js +1 -0
- package/site/assets/javascripts/lunr/min/lunr.kn.min.js.meta +7 -0
- package/site/assets/javascripts/lunr/min/lunr.ko.min.js +1 -0
- package/site/assets/javascripts/lunr/min/lunr.ko.min.js.meta +7 -0
- package/site/assets/javascripts/lunr/min/lunr.multi.min.js +1 -0
- package/site/assets/javascripts/lunr/min/lunr.multi.min.js.meta +7 -0
- package/site/assets/javascripts/lunr/min/lunr.nl.min.js +18 -0
- package/site/assets/javascripts/lunr/min/lunr.nl.min.js.meta +7 -0
- package/site/assets/javascripts/lunr/min/lunr.no.min.js +18 -0
- package/site/assets/javascripts/lunr/min/lunr.no.min.js.meta +7 -0
- package/site/assets/javascripts/lunr/min/lunr.pt.min.js +18 -0
- package/site/assets/javascripts/lunr/min/lunr.pt.min.js.meta +7 -0
- package/site/assets/javascripts/lunr/min/lunr.ro.min.js +18 -0
- package/site/assets/javascripts/lunr/min/lunr.ro.min.js.meta +7 -0
- package/site/assets/javascripts/lunr/min/lunr.ru.min.js +18 -0
- package/site/assets/javascripts/lunr/min/lunr.ru.min.js.meta +7 -0
- package/site/assets/javascripts/lunr/min/lunr.sa.min.js +1 -0
- package/site/assets/javascripts/lunr/min/lunr.sa.min.js.meta +7 -0
- package/site/assets/javascripts/lunr/min/lunr.stemmer.support.min.js +1 -0
- package/site/assets/javascripts/lunr/min/lunr.stemmer.support.min.js.meta +7 -0
- package/site/assets/javascripts/lunr/min/lunr.sv.min.js +18 -0
- package/site/assets/javascripts/lunr/min/lunr.sv.min.js.meta +7 -0
- package/site/assets/javascripts/lunr/min/lunr.ta.min.js +1 -0
- package/site/assets/javascripts/lunr/min/lunr.ta.min.js.meta +7 -0
- package/site/assets/javascripts/lunr/min/lunr.te.min.js +1 -0
- package/site/assets/javascripts/lunr/min/lunr.te.min.js.meta +7 -0
- package/site/assets/javascripts/lunr/min/lunr.th.min.js +1 -0
- package/site/assets/javascripts/lunr/min/lunr.th.min.js.meta +7 -0
- package/site/assets/javascripts/lunr/min/lunr.tr.min.js +18 -0
- package/site/assets/javascripts/lunr/min/lunr.tr.min.js.meta +7 -0
- package/site/assets/javascripts/lunr/min/lunr.vi.min.js +1 -0
- package/site/assets/javascripts/lunr/min/lunr.vi.min.js.meta +7 -0
- package/site/assets/javascripts/lunr/min/lunr.zh.min.js +1 -0
- package/site/assets/javascripts/lunr/min/lunr.zh.min.js.meta +7 -0
- package/site/assets/javascripts/lunr/min.meta +8 -0
- package/site/assets/javascripts/lunr/tinyseg.js +206 -0
- package/site/assets/javascripts/lunr/tinyseg.js.meta +7 -0
- package/site/assets/javascripts/lunr/wordcut.js +6708 -0
- package/site/assets/javascripts/lunr/wordcut.js.meta +7 -0
- package/site/assets/javascripts/lunr.meta +8 -0
- package/site/assets/javascripts/workers/search.2c215733.min.js +42 -0
- package/site/assets/javascripts/workers/search.2c215733.min.js.map +7 -0
- package/site/assets/javascripts/workers/search.2c215733.min.js.map.meta +7 -0
- package/site/assets/javascripts/workers/search.2c215733.min.js.meta +7 -0
- package/site/assets/javascripts/workers.meta +8 -0
- package/site/assets/javascripts.meta +8 -0
- package/site/assets/stylesheets/main.484c7ddc.min.css +1 -0
- package/site/assets/stylesheets/main.484c7ddc.min.css.map +1 -0
- package/site/assets/stylesheets/main.484c7ddc.min.css.map.meta +7 -0
- package/site/assets/stylesheets/main.484c7ddc.min.css.meta +7 -0
- package/site/assets/stylesheets/palette.ab4e12ef.min.css +1 -0
- package/site/assets/stylesheets/palette.ab4e12ef.min.css.map +1 -0
- package/site/assets/stylesheets/palette.ab4e12ef.min.css.map.meta +7 -0
- package/site/assets/stylesheets/palette.ab4e12ef.min.css.meta +7 -0
- package/site/assets/stylesheets.meta +8 -0
- package/site/assets.meta +8 -0
- package/site/concepts/index.html +1 -0
- package/site/concepts/index.html.meta +7 -0
- package/site/concepts/interceptors-and-ordering/index.html +352 -0
- package/site/concepts/interceptors-and-ordering/index.html.meta +7 -0
- package/site/concepts/interceptors-and-ordering.meta +8 -0
- package/site/concepts/listening-patterns/index.html +193 -0
- package/site/concepts/listening-patterns/index.html.meta +7 -0
- package/site/concepts/listening-patterns.meta +8 -0
- package/site/concepts/mental-model/index.html +146 -0
- package/site/concepts/mental-model/index.html.meta +7 -0
- package/site/concepts/mental-model.meta +8 -0
- package/site/concepts/message-types/index.html +111 -0
- package/site/concepts/message-types/index.html.meta +7 -0
- package/site/concepts/message-types.meta +8 -0
- package/site/concepts/targeting-and-context/index.html +201 -0
- package/site/concepts/targeting-and-context/index.html.meta +7 -0
- package/site/concepts/targeting-and-context.meta +8 -0
- package/site/concepts.meta +8 -0
- package/site/css/timeago.css +15 -0
- package/site/css/timeago.css.meta +7 -0
- package/site/css.meta +8 -0
- package/site/examples/end-to-end/index.html +85 -0
- package/site/examples/end-to-end/index.html.meta +7 -0
- package/site/examples/end-to-end-scene-transitions/index.html +84 -0
- package/site/examples/end-to-end-scene-transitions/index.html.meta +7 -0
- package/site/examples/end-to-end-scene-transitions.meta +8 -0
- package/site/examples/end-to-end.meta +8 -0
- package/site/examples.meta +8 -0
- package/site/getting-started/getting-started/index.html +66 -0
- package/site/getting-started/getting-started/index.html.meta +7 -0
- package/site/getting-started/getting-started.meta +8 -0
- package/site/getting-started/index.html +29 -0
- package/site/getting-started/index.html.meta +7 -0
- package/site/getting-started/install/index.html +8 -0
- package/site/getting-started/install/index.html.meta +7 -0
- package/site/getting-started/install.meta +8 -0
- package/site/getting-started/overview/index.html +33 -0
- package/site/getting-started/overview/index.html.meta +7 -0
- package/site/getting-started/overview.meta +8 -0
- package/site/getting-started/quick-start/index.html +81 -0
- package/site/getting-started/quick-start/index.html.meta +7 -0
- package/site/getting-started/quick-start.meta +8 -0
- package/site/getting-started/visual-guide/index.html +256 -0
- package/site/getting-started/visual-guide/index.html.meta +7 -0
- package/site/getting-started/visual-guide.meta +8 -0
- package/site/getting-started.meta +8 -0
- package/site/guides/advanced/index.html +119 -0
- package/site/guides/advanced/index.html.meta +7 -0
- package/site/guides/advanced.meta +8 -0
- package/site/guides/diagnostics/index.html +110 -0
- package/site/guides/diagnostics/index.html.meta +7 -0
- package/site/guides/diagnostics.meta +8 -0
- package/site/guides/migration-guide/index.html +199 -0
- package/site/guides/migration-guide/index.html.meta +7 -0
- package/site/guides/migration-guide.meta +8 -0
- package/site/guides/patterns/index.html +545 -0
- package/site/guides/patterns/index.html.meta +7 -0
- package/site/guides/patterns.meta +8 -0
- package/site/guides/testing/index.html +153 -0
- package/site/guides/testing/index.html.meta +7 -0
- package/site/guides/testing.meta +8 -0
- package/site/guides/unity-integration/index.html +67 -0
- package/site/guides/unity-integration/index.html.meta +7 -0
- package/site/guides/unity-integration.meta +8 -0
- package/site/guides.meta +8 -0
- package/site/hooks.py +168 -0
- package/site/hooks.py.meta +7 -0
- package/site/images/DxMessaging-banner.svg +119 -0
- package/site/images/DxMessaging-banner.svg.meta +7 -0
- package/site/images.meta +8 -0
- package/site/index.html +17 -0
- package/site/index.html.meta +7 -0
- package/site/integrations/index.html +8 -0
- package/site/integrations/index.html.meta +7 -0
- package/site/integrations/reflex/index.html +186 -0
- package/site/integrations/reflex/index.html.meta +7 -0
- package/site/integrations/reflex.meta +8 -0
- package/site/integrations/vcontainer/index.html +192 -0
- package/site/integrations/vcontainer/index.html.meta +7 -0
- package/site/integrations/vcontainer.meta +8 -0
- package/site/integrations/zenject/index.html +197 -0
- package/site/integrations/zenject/index.html.meta +7 -0
- package/site/integrations/zenject.meta +8 -0
- package/site/integrations.meta +8 -0
- package/site/javascripts/csharp-highlight.js +246 -0
- package/site/javascripts/csharp-highlight.js.meta +7 -0
- package/site/javascripts/mermaid-config.js +350 -0
- package/site/javascripts/mermaid-config.js.meta +7 -0
- package/site/javascripts.meta +8 -0
- package/site/js/timeago.min.js +2 -0
- package/site/js/timeago.min.js.meta +7 -0
- package/site/js/timeago_mkdocs_material.js +33 -0
- package/site/js/timeago_mkdocs_material.js.meta +7 -0
- package/site/js.meta +8 -0
- package/site/reference/compatibility/index.html +1 -0
- package/site/reference/compatibility/index.html.meta +7 -0
- package/site/reference/compatibility.meta +8 -0
- package/site/reference/faq/index.html +1 -0
- package/site/reference/faq/index.html.meta +7 -0
- package/site/reference/faq.meta +8 -0
- package/site/reference/glossary/index.html +55 -0
- package/site/reference/glossary/index.html.meta +7 -0
- package/site/reference/glossary.meta +8 -0
- package/site/reference/helpers/index.html +475 -0
- package/site/reference/helpers/index.html.meta +7 -0
- package/site/reference/helpers.meta +8 -0
- package/site/reference/quick-reference/index.html +138 -0
- package/site/reference/quick-reference/index.html.meta +7 -0
- package/site/reference/quick-reference.meta +8 -0
- package/site/reference/reference/index.html +194 -0
- package/site/reference/reference/index.html.meta +7 -0
- package/site/reference/reference.meta +8 -0
- package/site/reference/troubleshooting/index.html +1 -0
- package/site/reference/troubleshooting/index.html.meta +7 -0
- package/site/reference/troubleshooting.meta +8 -0
- package/site/reference.meta +8 -0
- package/site/search/search_index.json +1 -0
- package/site/search/search_index.json.meta +7 -0
- package/site/search.meta +8 -0
- package/site/sitemap.xml +163 -0
- package/site/sitemap.xml.gz +0 -0
- package/site/sitemap.xml.gz.meta +7 -0
- package/site/sitemap.xml.meta +7 -0
- package/site/stylesheets/extra.css +485 -0
- package/site/stylesheets/extra.css.meta +7 -0
- package/site/stylesheets.meta +8 -0
- package/.github/workflows/npm-publish.yml +0 -75
- package/Docs/Diagnostics.md +0 -61
- package/Docs/Diagnostics.md.meta +0 -7
- package/Docs/EndToEnd.md.meta +0 -7
- package/Docs/EndToEndSceneTransitions.md.meta +0 -7
- package/Docs/FAQ.md.meta +0 -7
- package/Docs/GettingStarted.md.meta +0 -7
- package/Docs/Glossary.md.meta +0 -7
- package/Docs/Helpers.md.meta +0 -7
- package/Docs/Index.md +0 -305
- package/Docs/Install.md +0 -60
- package/Docs/Install.md.meta +0 -7
- package/Docs/InterceptorsAndOrdering.md.meta +0 -7
- package/Docs/ListeningPatterns.md.meta +0 -7
- package/Docs/MessageBusProviders.md.meta +0 -7
- package/Docs/MessageTypes.md.meta +0 -7
- package/Docs/MigrationGuide.md.meta +0 -7
- package/Docs/Overview.md.meta +0 -7
- package/Docs/Patterns.md.meta +0 -7
- package/Docs/Performance.md +0 -35
- package/Docs/Performance.md.meta +0 -7
- package/Docs/QuickReference.md.meta +0 -7
- package/Docs/QuickStart.md +0 -179
- package/Docs/QuickStart.md.meta +0 -7
- package/Docs/Reference.md +0 -88
- package/Docs/Reference.md.meta +0 -7
- package/Docs/RuntimeConfiguration.md.meta +0 -7
- package/Docs/StringMessages.md.meta +0 -7
- package/Docs/TargetingAndContext.md.meta +0 -7
- package/Docs/Troubleshooting.md.meta +0 -7
- package/Docs/UnityIntegration.md.meta +0 -7
- package/Docs/VisualGuide.md.meta +0 -7
- /package/{Docs/EndToEndSceneTransitions.md → docs/examples/end-to-end-scene-transitions.md} +0 -0
- /package/{Docs/Index.md.meta → docs/index.md.meta} +0 -0
- /package/{Docs/Integrations/Reflex.md.meta → docs/integrations/reflex.md.meta} +0 -0
- /package/{Docs/Integrations/VContainer.md.meta → docs/integrations/vcontainer.md.meta} +0 -0
- /package/{Docs/Integrations/Zenject.md.meta → docs/integrations/zenject.md.meta} +0 -0
- /package/{Docs/Integrations.meta → docs/integrations.meta} +0 -0
- /package/{Docs.meta → docs.meta} +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
namespace DxMessaging.Core.MessageBus
|
|
2
2
|
{
|
|
3
3
|
using System;
|
|
4
|
+
using System.Buffers;
|
|
4
5
|
using System.Collections.Generic;
|
|
5
6
|
using System.Linq.Expressions;
|
|
6
7
|
using System.Reflection;
|
|
@@ -24,14 +25,178 @@ namespace DxMessaging.Core.MessageBus
|
|
|
24
25
|
private long _emissionId;
|
|
25
26
|
public long EmissionId => _emissionId;
|
|
26
27
|
|
|
28
|
+
private readonly struct PrefreezeDescriptor
|
|
29
|
+
{
|
|
30
|
+
public PrefreezeDescriptor(byte kind, int priority)
|
|
31
|
+
{
|
|
32
|
+
this.kind = kind;
|
|
33
|
+
this.priority = priority;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
public static readonly PrefreezeDescriptor Empty = new PrefreezeDescriptor(0, 0);
|
|
37
|
+
public readonly byte kind;
|
|
38
|
+
public readonly int priority;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
private enum DispatchCategory : byte
|
|
42
|
+
{
|
|
43
|
+
None = 0,
|
|
44
|
+
Untargeted = 1,
|
|
45
|
+
UntargetedPost = 2,
|
|
46
|
+
Targeted = 3,
|
|
47
|
+
TargetedPost = 4,
|
|
48
|
+
TargetedWithoutTargeting = 5,
|
|
49
|
+
TargetedWithoutTargetingPost = 6,
|
|
50
|
+
Broadcast = 7,
|
|
51
|
+
BroadcastPost = 8,
|
|
52
|
+
BroadcastWithoutSource = 9,
|
|
53
|
+
BroadcastWithoutSourcePost = 10,
|
|
54
|
+
GlobalUntargeted = 11,
|
|
55
|
+
GlobalTargeted = 12,
|
|
56
|
+
GlobalBroadcast = 13,
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
private const byte PrefreezeKindNone = 0;
|
|
60
|
+
private const byte PrefreezeKindTargetedWithoutTargetingHandlers = 1;
|
|
61
|
+
private const byte PrefreezeKindBroadcastWithoutSourceHandlers = 2;
|
|
62
|
+
private const byte PrefreezeKindGlobalUntargetedHandlers = 3;
|
|
63
|
+
private const byte PrefreezeKindGlobalTargetedHandlers = 4;
|
|
64
|
+
private const byte PrefreezeKindGlobalBroadcastHandlers = 5;
|
|
65
|
+
|
|
66
|
+
private static readonly ArrayPool<DispatchBucket> DispatchBucketPool =
|
|
67
|
+
ArrayPool<DispatchBucket>.Shared;
|
|
68
|
+
private static readonly ArrayPool<DispatchEntry> DispatchEntryPool =
|
|
69
|
+
ArrayPool<DispatchEntry>.Shared;
|
|
70
|
+
|
|
71
|
+
private readonly struct DispatchEntry
|
|
72
|
+
{
|
|
73
|
+
public DispatchEntry(
|
|
74
|
+
MessageHandler handler,
|
|
75
|
+
object dispatch,
|
|
76
|
+
PrefreezeDescriptor prefreeze
|
|
77
|
+
)
|
|
78
|
+
{
|
|
79
|
+
this.handler = handler;
|
|
80
|
+
this.dispatch = dispatch;
|
|
81
|
+
this.prefreeze = prefreeze;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
public readonly MessageHandler handler;
|
|
85
|
+
public readonly object dispatch;
|
|
86
|
+
public readonly PrefreezeDescriptor prefreeze;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
private struct DispatchBucket
|
|
90
|
+
{
|
|
91
|
+
public DispatchBucket(
|
|
92
|
+
int priority,
|
|
93
|
+
DispatchEntry[] entries,
|
|
94
|
+
int entryCount,
|
|
95
|
+
bool pooledEntries
|
|
96
|
+
)
|
|
97
|
+
{
|
|
98
|
+
this.priority = priority;
|
|
99
|
+
this.entries = entries;
|
|
100
|
+
this.entryCount = entryCount;
|
|
101
|
+
this.pooledEntries = pooledEntries;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
public readonly int priority;
|
|
105
|
+
public DispatchEntry[] entries;
|
|
106
|
+
public int entryCount;
|
|
107
|
+
public bool pooledEntries;
|
|
108
|
+
|
|
109
|
+
public static DispatchBucket CreateEmpty(int priority)
|
|
110
|
+
{
|
|
111
|
+
return new DispatchBucket(priority, Array.Empty<DispatchEntry>(), 0, false);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
115
|
+
public void ReleaseEntries()
|
|
116
|
+
{
|
|
117
|
+
if (!pooledEntries || entries == null)
|
|
118
|
+
{
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
Array.Clear(entries, 0, entryCount);
|
|
123
|
+
DispatchEntryPool.Return(entries);
|
|
124
|
+
entries = Array.Empty<DispatchEntry>();
|
|
125
|
+
entryCount = 0;
|
|
126
|
+
pooledEntries = false;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
private sealed class DispatchSnapshot
|
|
131
|
+
{
|
|
132
|
+
public static readonly DispatchSnapshot Empty = new DispatchSnapshot(
|
|
133
|
+
Array.Empty<DispatchBucket>(),
|
|
134
|
+
0,
|
|
135
|
+
false
|
|
136
|
+
);
|
|
137
|
+
|
|
138
|
+
public DispatchSnapshot(DispatchBucket[] buckets, int count, bool pooled)
|
|
139
|
+
{
|
|
140
|
+
this.buckets = buckets;
|
|
141
|
+
bucketCount = count;
|
|
142
|
+
_pooled = pooled;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
public DispatchBucket[] buckets;
|
|
146
|
+
public int bucketCount;
|
|
147
|
+
private bool _pooled;
|
|
148
|
+
|
|
149
|
+
public bool IsEmpty => bucketCount == 0;
|
|
150
|
+
|
|
151
|
+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
152
|
+
public void Release()
|
|
153
|
+
{
|
|
154
|
+
if (!_pooled || buckets == null)
|
|
155
|
+
{
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
for (int i = 0; i < bucketCount; ++i)
|
|
160
|
+
{
|
|
161
|
+
buckets[i].ReleaseEntries();
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
Array.Clear(buckets, 0, bucketCount);
|
|
165
|
+
DispatchBucketPool.Return(buckets);
|
|
166
|
+
buckets = Array.Empty<DispatchBucket>();
|
|
167
|
+
bucketCount = 0;
|
|
168
|
+
_pooled = false;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
|
|
27
172
|
private sealed class HandlerCache<TKey, TValue>
|
|
28
173
|
{
|
|
174
|
+
internal sealed class DispatchState
|
|
175
|
+
{
|
|
176
|
+
public DispatchSnapshot active = DispatchSnapshot.Empty;
|
|
177
|
+
public DispatchSnapshot pending = DispatchSnapshot.Empty;
|
|
178
|
+
public bool hasPending;
|
|
179
|
+
public bool pendingDirty;
|
|
180
|
+
public long snapshotEmissionId = -1;
|
|
181
|
+
|
|
182
|
+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
183
|
+
public void Reset()
|
|
184
|
+
{
|
|
185
|
+
ReleaseSnapshot(ref active);
|
|
186
|
+
ReleaseSnapshot(ref pending);
|
|
187
|
+
hasPending = false;
|
|
188
|
+
pendingDirty = false;
|
|
189
|
+
snapshotEmissionId = -1;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
|
|
29
193
|
public readonly Dictionary<TKey, TValue> handlers = new();
|
|
30
194
|
public readonly List<TKey> order = new();
|
|
31
195
|
public readonly List<KeyValuePair<TKey, TValue>> cache = new();
|
|
32
196
|
public long version;
|
|
33
197
|
public long lastSeenVersion = -1;
|
|
34
198
|
public long lastSeenEmissionId;
|
|
199
|
+
private readonly Dictionary<DispatchCategory, DispatchState> _dispatchStates = new();
|
|
35
200
|
|
|
36
201
|
/// <summary>
|
|
37
202
|
/// Clears all cached handler references and resets the version tracking metadata.
|
|
@@ -44,6 +209,26 @@ namespace DxMessaging.Core.MessageBus
|
|
|
44
209
|
version = 0;
|
|
45
210
|
lastSeenVersion = -1;
|
|
46
211
|
lastSeenEmissionId = 0;
|
|
212
|
+
if (_dispatchStates.Count > 0)
|
|
213
|
+
{
|
|
214
|
+
foreach (DispatchState state in _dispatchStates.Values)
|
|
215
|
+
{
|
|
216
|
+
state.Reset();
|
|
217
|
+
}
|
|
218
|
+
_dispatchStates.Clear();
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
223
|
+
public DispatchState GetOrCreateDispatchState(DispatchCategory category)
|
|
224
|
+
{
|
|
225
|
+
if (!_dispatchStates.TryGetValue(category, out DispatchState state))
|
|
226
|
+
{
|
|
227
|
+
state = new DispatchState();
|
|
228
|
+
_dispatchStates[category] = state;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
return state;
|
|
47
232
|
}
|
|
48
233
|
}
|
|
49
234
|
|
|
@@ -61,11 +246,31 @@ namespace DxMessaging.Core.MessageBus
|
|
|
61
246
|
|
|
62
247
|
private sealed class HandlerCache
|
|
63
248
|
{
|
|
249
|
+
internal sealed class DispatchState
|
|
250
|
+
{
|
|
251
|
+
public DispatchSnapshot active = DispatchSnapshot.Empty;
|
|
252
|
+
public DispatchSnapshot pending = DispatchSnapshot.Empty;
|
|
253
|
+
public bool hasPending;
|
|
254
|
+
public bool pendingDirty;
|
|
255
|
+
public long snapshotEmissionId = -1;
|
|
256
|
+
|
|
257
|
+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
258
|
+
public void Reset()
|
|
259
|
+
{
|
|
260
|
+
ReleaseSnapshot(ref active);
|
|
261
|
+
ReleaseSnapshot(ref pending);
|
|
262
|
+
hasPending = false;
|
|
263
|
+
pendingDirty = false;
|
|
264
|
+
snapshotEmissionId = -1;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
|
|
64
268
|
public readonly Dictionary<MessageHandler, int> handlers = new();
|
|
65
269
|
public readonly List<MessageHandler> cache = new();
|
|
66
270
|
public long version;
|
|
67
271
|
public long lastSeenVersion = -1;
|
|
68
272
|
public long lastSeenEmissionId;
|
|
273
|
+
private readonly Dictionary<DispatchCategory, DispatchState> _dispatchStates = new();
|
|
69
274
|
|
|
70
275
|
/// <summary>
|
|
71
276
|
/// Clears all cached handler references and resets the version tracking metadata.
|
|
@@ -77,6 +282,26 @@ namespace DxMessaging.Core.MessageBus
|
|
|
77
282
|
version = 0;
|
|
78
283
|
lastSeenVersion = -1;
|
|
79
284
|
lastSeenEmissionId = 0;
|
|
285
|
+
if (_dispatchStates.Count > 0)
|
|
286
|
+
{
|
|
287
|
+
foreach (DispatchState state in _dispatchStates.Values)
|
|
288
|
+
{
|
|
289
|
+
state.Reset();
|
|
290
|
+
}
|
|
291
|
+
_dispatchStates.Clear();
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
296
|
+
public DispatchState GetOrCreateDispatchState(DispatchCategory category)
|
|
297
|
+
{
|
|
298
|
+
if (!_dispatchStates.TryGetValue(category, out DispatchState state))
|
|
299
|
+
{
|
|
300
|
+
state = new DispatchState();
|
|
301
|
+
_dispatchStates[category] = state;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
return state;
|
|
80
305
|
}
|
|
81
306
|
}
|
|
82
307
|
|
|
@@ -201,13 +426,13 @@ namespace DxMessaging.Core.MessageBus
|
|
|
201
426
|
GlobalMessageBufferSize
|
|
202
427
|
);
|
|
203
428
|
|
|
204
|
-
private bool _diagnosticsMode =
|
|
429
|
+
private bool _diagnosticsMode = ShouldEnableDiagnostics();
|
|
205
430
|
private bool _loggedReflexiveWarning;
|
|
206
431
|
|
|
207
432
|
internal void ResetState()
|
|
208
433
|
{
|
|
209
434
|
_emissionId = 0;
|
|
210
|
-
_diagnosticsMode =
|
|
435
|
+
_diagnosticsMode = ShouldEnableDiagnostics();
|
|
211
436
|
_loggedReflexiveWarning = false;
|
|
212
437
|
|
|
213
438
|
_sinks.Clear();
|
|
@@ -333,6 +558,22 @@ namespace DxMessaging.Core.MessageBus
|
|
|
333
558
|
)
|
|
334
559
|
);
|
|
335
560
|
|
|
561
|
+
StageGlobalDispatchSnapshot<IUntargetedMessage>(
|
|
562
|
+
this,
|
|
563
|
+
_globalSinks,
|
|
564
|
+
DispatchCategory.GlobalUntargeted
|
|
565
|
+
);
|
|
566
|
+
StageGlobalDispatchSnapshot<ITargetedMessage>(
|
|
567
|
+
this,
|
|
568
|
+
_globalSinks,
|
|
569
|
+
DispatchCategory.GlobalTargeted
|
|
570
|
+
);
|
|
571
|
+
StageGlobalDispatchSnapshot<IBroadcastMessage>(
|
|
572
|
+
this,
|
|
573
|
+
_globalSinks,
|
|
574
|
+
DispatchCategory.GlobalBroadcast
|
|
575
|
+
);
|
|
576
|
+
|
|
336
577
|
return () =>
|
|
337
578
|
{
|
|
338
579
|
_globalSinks.version++;
|
|
@@ -366,6 +607,22 @@ namespace DxMessaging.Core.MessageBus
|
|
|
366
607
|
{
|
|
367
608
|
_globalSinks.handlers[messageHandler] = count - 1;
|
|
368
609
|
}
|
|
610
|
+
|
|
611
|
+
StageGlobalDispatchSnapshot<IUntargetedMessage>(
|
|
612
|
+
this,
|
|
613
|
+
_globalSinks,
|
|
614
|
+
DispatchCategory.GlobalUntargeted
|
|
615
|
+
);
|
|
616
|
+
StageGlobalDispatchSnapshot<ITargetedMessage>(
|
|
617
|
+
this,
|
|
618
|
+
_globalSinks,
|
|
619
|
+
DispatchCategory.GlobalTargeted
|
|
620
|
+
);
|
|
621
|
+
StageGlobalDispatchSnapshot<IBroadcastMessage>(
|
|
622
|
+
this,
|
|
623
|
+
_globalSinks,
|
|
624
|
+
DispatchCategory.GlobalBroadcast
|
|
625
|
+
);
|
|
369
626
|
};
|
|
370
627
|
}
|
|
371
628
|
|
|
@@ -390,8 +647,12 @@ namespace DxMessaging.Core.MessageBus
|
|
|
390
647
|
_uniqueInterceptorsAndPriorities[interceptor] = priorityCount;
|
|
391
648
|
}
|
|
392
649
|
|
|
393
|
-
|
|
394
|
-
|
|
650
|
+
if (
|
|
651
|
+
!prioritizedInterceptors.handlers.TryGetValue(
|
|
652
|
+
priority,
|
|
653
|
+
out List<object> interceptors
|
|
654
|
+
)
|
|
655
|
+
)
|
|
395
656
|
{
|
|
396
657
|
interceptors = new List<object>();
|
|
397
658
|
prioritizedInterceptors.handlers.Add(priority, interceptors);
|
|
@@ -508,8 +769,12 @@ namespace DxMessaging.Core.MessageBus
|
|
|
508
769
|
_uniqueInterceptorsAndPriorities[interceptor] = priorityCount;
|
|
509
770
|
}
|
|
510
771
|
|
|
511
|
-
|
|
512
|
-
|
|
772
|
+
if (
|
|
773
|
+
!prioritizedInterceptors.handlers.TryGetValue(
|
|
774
|
+
priority,
|
|
775
|
+
out List<object> interceptors
|
|
776
|
+
)
|
|
777
|
+
)
|
|
513
778
|
{
|
|
514
779
|
interceptors = new List<object>();
|
|
515
780
|
prioritizedInterceptors.handlers.Add(priority, interceptors);
|
|
@@ -626,8 +891,12 @@ namespace DxMessaging.Core.MessageBus
|
|
|
626
891
|
_uniqueInterceptorsAndPriorities[interceptor] = priorityCount;
|
|
627
892
|
}
|
|
628
893
|
|
|
629
|
-
|
|
630
|
-
|
|
894
|
+
if (
|
|
895
|
+
!prioritizedInterceptors.handlers.TryGetValue(
|
|
896
|
+
priority,
|
|
897
|
+
out List<object> interceptors
|
|
898
|
+
)
|
|
899
|
+
)
|
|
631
900
|
{
|
|
632
901
|
interceptors = new List<object>();
|
|
633
902
|
prioritizedInterceptors.handlers.Add(priority, interceptors);
|
|
@@ -849,35 +1118,21 @@ namespace DxMessaging.Core.MessageBus
|
|
|
849
1118
|
|
|
850
1119
|
// Pre-freeze post-processing stacks for this emission so mutations during
|
|
851
1120
|
// handlers/post-processors are not observed until the next emission.
|
|
1121
|
+
DispatchSnapshot untargetedPostSnapshot = DispatchSnapshot.Empty;
|
|
852
1122
|
if (
|
|
853
1123
|
_postProcessingSinks.TryGetValue<TMessage>(
|
|
854
|
-
out HandlerCache<int, HandlerCache>
|
|
1124
|
+
out HandlerCache<int, HandlerCache> untargetedPostHandlers
|
|
855
1125
|
)
|
|
856
|
-
&&
|
|
1126
|
+
&& untargetedPostHandlers.handlers.Count > 0
|
|
857
1127
|
)
|
|
858
1128
|
{
|
|
859
|
-
|
|
860
|
-
|
|
1129
|
+
untargetedPostSnapshot = AcquireDispatchSnapshot<TMessage>(
|
|
1130
|
+
this,
|
|
1131
|
+
untargetedPostHandlers,
|
|
1132
|
+
DispatchCategory.UntargetedPost,
|
|
861
1133
|
_emissionId
|
|
862
1134
|
);
|
|
863
|
-
|
|
864
|
-
for (int i = 0; i < frozenCount; ++i)
|
|
865
|
-
{
|
|
866
|
-
KeyValuePair<int, HandlerCache> entry = frozen[i];
|
|
867
|
-
List<MessageHandler> mhList = GetOrAddMessageHandlerStack(
|
|
868
|
-
entry.Value,
|
|
869
|
-
_emissionId
|
|
870
|
-
);
|
|
871
|
-
for (int h = 0; h < mhList.Count; ++h)
|
|
872
|
-
{
|
|
873
|
-
mhList[h]
|
|
874
|
-
.PrefreezeUntargetedPostProcessorsForEmission<TMessage>(
|
|
875
|
-
entry.Key,
|
|
876
|
-
_emissionId,
|
|
877
|
-
this
|
|
878
|
-
);
|
|
879
|
-
}
|
|
880
|
-
}
|
|
1135
|
+
PrefreezeUntargetedPostSnapshot<TMessage>(untargetedPostSnapshot);
|
|
881
1136
|
}
|
|
882
1137
|
|
|
883
1138
|
if (!RunUntargetedInterceptors(ref typedMessage))
|
|
@@ -900,71 +1155,70 @@ namespace DxMessaging.Core.MessageBus
|
|
|
900
1155
|
&& 0 < sortedHandlers.handlers.Count
|
|
901
1156
|
)
|
|
902
1157
|
{
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
RunUntargetedPostProcessing(ref typedMessage, entry.Key, entry.Value);
|
|
920
|
-
entry = handlerList[1];
|
|
921
|
-
RunUntargetedPostProcessing(ref typedMessage, entry.Key, entry.Value);
|
|
922
|
-
break;
|
|
923
|
-
}
|
|
924
|
-
case 3:
|
|
925
|
-
{
|
|
926
|
-
KeyValuePair<int, HandlerCache> entry = handlerList[0];
|
|
927
|
-
RunUntargetedPostProcessing(ref typedMessage, entry.Key, entry.Value);
|
|
928
|
-
entry = handlerList[1];
|
|
929
|
-
RunUntargetedPostProcessing(ref typedMessage, entry.Key, entry.Value);
|
|
930
|
-
entry = handlerList[2];
|
|
931
|
-
RunUntargetedPostProcessing(ref typedMessage, entry.Key, entry.Value);
|
|
932
|
-
break;
|
|
933
|
-
}
|
|
934
|
-
case 4:
|
|
935
|
-
{
|
|
936
|
-
KeyValuePair<int, HandlerCache> entry = handlerList[0];
|
|
937
|
-
RunUntargetedPostProcessing(ref typedMessage, entry.Key, entry.Value);
|
|
938
|
-
entry = handlerList[1];
|
|
939
|
-
RunUntargetedPostProcessing(ref typedMessage, entry.Key, entry.Value);
|
|
940
|
-
entry = handlerList[2];
|
|
941
|
-
RunUntargetedPostProcessing(ref typedMessage, entry.Key, entry.Value);
|
|
942
|
-
entry = handlerList[3];
|
|
943
|
-
RunUntargetedPostProcessing(ref typedMessage, entry.Key, entry.Value);
|
|
944
|
-
break;
|
|
945
|
-
}
|
|
946
|
-
case 5:
|
|
1158
|
+
DispatchSnapshot snapshot = untargetedPostSnapshot.IsEmpty
|
|
1159
|
+
? AcquireDispatchSnapshot<TMessage>(
|
|
1160
|
+
this,
|
|
1161
|
+
sortedHandlers,
|
|
1162
|
+
DispatchCategory.UntargetedPost,
|
|
1163
|
+
_emissionId
|
|
1164
|
+
)
|
|
1165
|
+
: untargetedPostSnapshot;
|
|
1166
|
+
DispatchBucket[] buckets = snapshot.buckets;
|
|
1167
|
+
int bucketCount = snapshot.bucketCount;
|
|
1168
|
+
for (int bucketIndex = 0; bucketIndex < bucketCount; ++bucketIndex)
|
|
1169
|
+
{
|
|
1170
|
+
DispatchBucket bucket = buckets[bucketIndex];
|
|
1171
|
+
DispatchEntry[] entries = bucket.entries;
|
|
1172
|
+
int entryCount = bucket.entryCount;
|
|
1173
|
+
if (entryCount == 0)
|
|
947
1174
|
{
|
|
948
|
-
|
|
949
|
-
RunUntargetedPostProcessing(ref typedMessage, entry.Key, entry.Value);
|
|
950
|
-
entry = handlerList[1];
|
|
951
|
-
RunUntargetedPostProcessing(ref typedMessage, entry.Key, entry.Value);
|
|
952
|
-
entry = handlerList[2];
|
|
953
|
-
RunUntargetedPostProcessing(ref typedMessage, entry.Key, entry.Value);
|
|
954
|
-
entry = handlerList[3];
|
|
955
|
-
RunUntargetedPostProcessing(ref typedMessage, entry.Key, entry.Value);
|
|
956
|
-
entry = handlerList[4];
|
|
957
|
-
RunUntargetedPostProcessing(ref typedMessage, entry.Key, entry.Value);
|
|
958
|
-
break;
|
|
1175
|
+
continue;
|
|
959
1176
|
}
|
|
960
|
-
|
|
1177
|
+
|
|
1178
|
+
foundAnyHandlers = true;
|
|
1179
|
+
int priority = bucket.priority;
|
|
1180
|
+
switch (entryCount)
|
|
961
1181
|
{
|
|
962
|
-
|
|
1182
|
+
case 1:
|
|
963
1183
|
{
|
|
964
|
-
|
|
965
|
-
|
|
1184
|
+
InvokeUntargetedPostEntry(ref typedMessage, priority, entries[0]);
|
|
1185
|
+
continue;
|
|
1186
|
+
}
|
|
1187
|
+
case 2:
|
|
1188
|
+
{
|
|
1189
|
+
InvokeUntargetedPostEntry(ref typedMessage, priority, entries[0]);
|
|
1190
|
+
InvokeUntargetedPostEntry(ref typedMessage, priority, entries[1]);
|
|
1191
|
+
continue;
|
|
1192
|
+
}
|
|
1193
|
+
case 3:
|
|
1194
|
+
{
|
|
1195
|
+
InvokeUntargetedPostEntry(ref typedMessage, priority, entries[0]);
|
|
1196
|
+
InvokeUntargetedPostEntry(ref typedMessage, priority, entries[1]);
|
|
1197
|
+
InvokeUntargetedPostEntry(ref typedMessage, priority, entries[2]);
|
|
1198
|
+
continue;
|
|
1199
|
+
}
|
|
1200
|
+
case 4:
|
|
1201
|
+
{
|
|
1202
|
+
InvokeUntargetedPostEntry(ref typedMessage, priority, entries[0]);
|
|
1203
|
+
InvokeUntargetedPostEntry(ref typedMessage, priority, entries[1]);
|
|
1204
|
+
InvokeUntargetedPostEntry(ref typedMessage, priority, entries[2]);
|
|
1205
|
+
InvokeUntargetedPostEntry(ref typedMessage, priority, entries[3]);
|
|
1206
|
+
continue;
|
|
1207
|
+
}
|
|
1208
|
+
case 5:
|
|
1209
|
+
{
|
|
1210
|
+
InvokeUntargetedPostEntry(ref typedMessage, priority, entries[0]);
|
|
1211
|
+
InvokeUntargetedPostEntry(ref typedMessage, priority, entries[1]);
|
|
1212
|
+
InvokeUntargetedPostEntry(ref typedMessage, priority, entries[2]);
|
|
1213
|
+
InvokeUntargetedPostEntry(ref typedMessage, priority, entries[3]);
|
|
1214
|
+
InvokeUntargetedPostEntry(ref typedMessage, priority, entries[4]);
|
|
1215
|
+
continue;
|
|
966
1216
|
}
|
|
967
|
-
|
|
1217
|
+
}
|
|
1218
|
+
|
|
1219
|
+
for (int entryIndex = 0; entryIndex < entryCount; ++entryIndex)
|
|
1220
|
+
{
|
|
1221
|
+
InvokeUntargetedPostEntry(ref typedMessage, priority, entries[entryIndex]);
|
|
968
1222
|
}
|
|
969
1223
|
}
|
|
970
1224
|
}
|
|
@@ -979,65 +1233,6 @@ namespace DxMessaging.Core.MessageBus
|
|
|
979
1233
|
}
|
|
980
1234
|
}
|
|
981
1235
|
|
|
982
|
-
private void RunUntargetedPostProcessing<TMessage>(
|
|
983
|
-
ref TMessage typedMessage,
|
|
984
|
-
int priority,
|
|
985
|
-
HandlerCache cache
|
|
986
|
-
)
|
|
987
|
-
where TMessage : IUntargetedMessage
|
|
988
|
-
{
|
|
989
|
-
if (cache.handlers.Count == 0)
|
|
990
|
-
{
|
|
991
|
-
return;
|
|
992
|
-
}
|
|
993
|
-
|
|
994
|
-
List<MessageHandler> list = GetOrAddMessageHandlerStack(cache, _emissionId);
|
|
995
|
-
switch (list.Count)
|
|
996
|
-
{
|
|
997
|
-
case 1:
|
|
998
|
-
{
|
|
999
|
-
list[0].HandleUntargetedPostProcessing(ref typedMessage, this, priority);
|
|
1000
|
-
return;
|
|
1001
|
-
}
|
|
1002
|
-
case 2:
|
|
1003
|
-
{
|
|
1004
|
-
list[0].HandleUntargetedPostProcessing(ref typedMessage, this, priority);
|
|
1005
|
-
list[1].HandleUntargetedPostProcessing(ref typedMessage, this, priority);
|
|
1006
|
-
return;
|
|
1007
|
-
}
|
|
1008
|
-
case 3:
|
|
1009
|
-
{
|
|
1010
|
-
list[0].HandleUntargetedPostProcessing(ref typedMessage, this, priority);
|
|
1011
|
-
list[1].HandleUntargetedPostProcessing(ref typedMessage, this, priority);
|
|
1012
|
-
list[2].HandleUntargetedPostProcessing(ref typedMessage, this, priority);
|
|
1013
|
-
return;
|
|
1014
|
-
}
|
|
1015
|
-
case 4:
|
|
1016
|
-
{
|
|
1017
|
-
list[0].HandleUntargetedPostProcessing(ref typedMessage, this, priority);
|
|
1018
|
-
list[1].HandleUntargetedPostProcessing(ref typedMessage, this, priority);
|
|
1019
|
-
list[2].HandleUntargetedPostProcessing(ref typedMessage, this, priority);
|
|
1020
|
-
list[3].HandleUntargetedPostProcessing(ref typedMessage, this, priority);
|
|
1021
|
-
return;
|
|
1022
|
-
}
|
|
1023
|
-
case 5:
|
|
1024
|
-
{
|
|
1025
|
-
list[0].HandleUntargetedPostProcessing(ref typedMessage, this, priority);
|
|
1026
|
-
list[1].HandleUntargetedPostProcessing(ref typedMessage, this, priority);
|
|
1027
|
-
list[2].HandleUntargetedPostProcessing(ref typedMessage, this, priority);
|
|
1028
|
-
list[3].HandleUntargetedPostProcessing(ref typedMessage, this, priority);
|
|
1029
|
-
list[4].HandleUntargetedPostProcessing(ref typedMessage, this, priority);
|
|
1030
|
-
return;
|
|
1031
|
-
}
|
|
1032
|
-
}
|
|
1033
|
-
|
|
1034
|
-
for (int i = 0; i < cache.cache.Count; ++i)
|
|
1035
|
-
{
|
|
1036
|
-
MessageHandler handler = cache.cache[i];
|
|
1037
|
-
handler.HandleUntargetedPostProcessing(ref typedMessage, this, priority);
|
|
1038
|
-
}
|
|
1039
|
-
}
|
|
1040
|
-
|
|
1041
1236
|
/// <inheritdoc />
|
|
1042
1237
|
public void UntypedTargetedBroadcast(InstanceId target, ITargetedMessage typedMessage)
|
|
1043
1238
|
{
|
|
@@ -1082,70 +1277,43 @@ namespace DxMessaging.Core.MessageBus
|
|
|
1082
1277
|
}
|
|
1083
1278
|
|
|
1084
1279
|
// Pre-freeze targeted post-processing for this emission (target-specific and without targeting)
|
|
1280
|
+
DispatchSnapshot targetedPostSnapshot = DispatchSnapshot.Empty;
|
|
1281
|
+
DispatchSnapshot targetedWithoutTargetingPostSnapshot = DispatchSnapshot.Empty;
|
|
1085
1282
|
if (
|
|
1086
1283
|
_postProcessingTargetedSinks.TryGetValue<TMessage>(
|
|
1087
|
-
out Dictionary<InstanceId, HandlerCache<int, HandlerCache>>
|
|
1284
|
+
out Dictionary<InstanceId, HandlerCache<int, HandlerCache>> targetedPostHandlers
|
|
1088
1285
|
)
|
|
1089
|
-
&&
|
|
1286
|
+
&& targetedPostHandlers.TryGetValue(
|
|
1090
1287
|
target,
|
|
1091
|
-
out HandlerCache<int, HandlerCache>
|
|
1288
|
+
out HandlerCache<int, HandlerCache> targetedPostByPriority
|
|
1092
1289
|
)
|
|
1093
|
-
&&
|
|
1290
|
+
&& targetedPostByPriority.handlers.Count > 0
|
|
1094
1291
|
)
|
|
1095
1292
|
{
|
|
1096
|
-
|
|
1097
|
-
|
|
1293
|
+
targetedPostSnapshot = AcquireDispatchSnapshot<TMessage>(
|
|
1294
|
+
this,
|
|
1295
|
+
targetedPostByPriority,
|
|
1296
|
+
DispatchCategory.TargetedPost,
|
|
1098
1297
|
_emissionId
|
|
1099
1298
|
);
|
|
1100
|
-
|
|
1101
|
-
for (int i = 0; i < frozenCount; ++i)
|
|
1102
|
-
{
|
|
1103
|
-
KeyValuePair<int, HandlerCache> entry = frozen[i];
|
|
1104
|
-
List<MessageHandler> mhList = GetOrAddMessageHandlerStack(
|
|
1105
|
-
entry.Value,
|
|
1106
|
-
_emissionId
|
|
1107
|
-
);
|
|
1108
|
-
for (int h = 0; h < mhList.Count; ++h)
|
|
1109
|
-
{
|
|
1110
|
-
mhList[h]
|
|
1111
|
-
.PrefreezeTargetedPostProcessorsForEmission<TMessage>(
|
|
1112
|
-
target,
|
|
1113
|
-
entry.Key,
|
|
1114
|
-
_emissionId,
|
|
1115
|
-
this
|
|
1116
|
-
);
|
|
1117
|
-
}
|
|
1118
|
-
}
|
|
1299
|
+
PrefreezeTargetedPostSnapshot<TMessage>(ref target, targetedPostSnapshot);
|
|
1119
1300
|
}
|
|
1120
1301
|
if (
|
|
1121
1302
|
_postProcessingTargetedWithoutTargetingSinks.TryGetValue<TMessage>(
|
|
1122
|
-
out HandlerCache<int, HandlerCache>
|
|
1303
|
+
out HandlerCache<int, HandlerCache> targetedWithoutTargetingHandlers
|
|
1123
1304
|
)
|
|
1124
|
-
&&
|
|
1305
|
+
&& targetedWithoutTargetingHandlers.handlers.Count > 0
|
|
1125
1306
|
)
|
|
1126
1307
|
{
|
|
1127
|
-
|
|
1128
|
-
|
|
1308
|
+
targetedWithoutTargetingPostSnapshot = AcquireDispatchSnapshot<TMessage>(
|
|
1309
|
+
this,
|
|
1310
|
+
targetedWithoutTargetingHandlers,
|
|
1311
|
+
DispatchCategory.TargetedWithoutTargetingPost,
|
|
1129
1312
|
_emissionId
|
|
1130
1313
|
);
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
KeyValuePair<int, HandlerCache> entry = frozen[i];
|
|
1135
|
-
List<MessageHandler> mhList = GetOrAddMessageHandlerStack(
|
|
1136
|
-
entry.Value,
|
|
1137
|
-
_emissionId
|
|
1138
|
-
);
|
|
1139
|
-
for (int h = 0; h < mhList.Count; ++h)
|
|
1140
|
-
{
|
|
1141
|
-
mhList[h]
|
|
1142
|
-
.PrefreezeTargetedWithoutTargetingPostProcessorsForEmission<TMessage>(
|
|
1143
|
-
entry.Key,
|
|
1144
|
-
_emissionId,
|
|
1145
|
-
this
|
|
1146
|
-
);
|
|
1147
|
-
}
|
|
1148
|
-
}
|
|
1314
|
+
PrefreezeTargetedWithoutTargetingPostSnapshot<TMessage>(
|
|
1315
|
+
targetedWithoutTargetingPostSnapshot
|
|
1316
|
+
);
|
|
1149
1317
|
}
|
|
1150
1318
|
|
|
1151
1319
|
if (!RunTargetedInterceptors(ref typedMessage, ref target))
|
|
@@ -1377,240 +1545,235 @@ namespace DxMessaging.Core.MessageBus
|
|
|
1377
1545
|
target,
|
|
1378
1546
|
out HandlerCache<int, HandlerCache> sortedHandlers
|
|
1379
1547
|
)
|
|
1380
|
-
&&
|
|
1548
|
+
&& sortedHandlers.handlers.Count > 0
|
|
1381
1549
|
)
|
|
1382
1550
|
{
|
|
1383
|
-
|
|
1384
|
-
|
|
1551
|
+
DispatchSnapshot snapshot = AcquireDispatchSnapshot<TMessage>(
|
|
1552
|
+
this,
|
|
1385
1553
|
sortedHandlers,
|
|
1554
|
+
DispatchCategory.Targeted,
|
|
1386
1555
|
_emissionId
|
|
1387
1556
|
);
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
}
|
|
1397
|
-
case 2:
|
|
1398
|
-
{
|
|
1399
|
-
KeyValuePair<int, HandlerCache> entry = handlerList[0];
|
|
1400
|
-
RunTargetedBroadcast(ref target, ref typedMessage, entry.Key, entry.Value);
|
|
1401
|
-
entry = handlerList[1];
|
|
1402
|
-
RunTargetedBroadcast(ref target, ref typedMessage, entry.Key, entry.Value);
|
|
1403
|
-
break;
|
|
1404
|
-
}
|
|
1405
|
-
case 3:
|
|
1406
|
-
{
|
|
1407
|
-
KeyValuePair<int, HandlerCache> entry = handlerList[0];
|
|
1408
|
-
RunTargetedBroadcast(ref target, ref typedMessage, entry.Key, entry.Value);
|
|
1409
|
-
entry = handlerList[1];
|
|
1410
|
-
RunTargetedBroadcast(ref target, ref typedMessage, entry.Key, entry.Value);
|
|
1411
|
-
entry = handlerList[2];
|
|
1412
|
-
RunTargetedBroadcast(ref target, ref typedMessage, entry.Key, entry.Value);
|
|
1413
|
-
break;
|
|
1414
|
-
}
|
|
1415
|
-
case 4:
|
|
1416
|
-
{
|
|
1417
|
-
KeyValuePair<int, HandlerCache> entry = handlerList[0];
|
|
1418
|
-
RunTargetedBroadcast(ref target, ref typedMessage, entry.Key, entry.Value);
|
|
1419
|
-
entry = handlerList[1];
|
|
1420
|
-
RunTargetedBroadcast(ref target, ref typedMessage, entry.Key, entry.Value);
|
|
1421
|
-
entry = handlerList[2];
|
|
1422
|
-
RunTargetedBroadcast(ref target, ref typedMessage, entry.Key, entry.Value);
|
|
1423
|
-
entry = handlerList[3];
|
|
1424
|
-
RunTargetedBroadcast(ref target, ref typedMessage, entry.Key, entry.Value);
|
|
1425
|
-
break;
|
|
1426
|
-
}
|
|
1427
|
-
case 5:
|
|
1557
|
+
DispatchBucket[] buckets = snapshot.buckets;
|
|
1558
|
+
int bucketCount = snapshot.bucketCount;
|
|
1559
|
+
for (int bucketIndex = 0; bucketIndex < bucketCount; ++bucketIndex)
|
|
1560
|
+
{
|
|
1561
|
+
DispatchBucket bucket = buckets[bucketIndex];
|
|
1562
|
+
DispatchEntry[] entries = bucket.entries;
|
|
1563
|
+
int entryCount = bucket.entryCount;
|
|
1564
|
+
if (entryCount == 0)
|
|
1428
1565
|
{
|
|
1429
|
-
|
|
1430
|
-
RunTargetedBroadcast(ref target, ref typedMessage, entry.Key, entry.Value);
|
|
1431
|
-
entry = handlerList[1];
|
|
1432
|
-
RunTargetedBroadcast(ref target, ref typedMessage, entry.Key, entry.Value);
|
|
1433
|
-
entry = handlerList[2];
|
|
1434
|
-
RunTargetedBroadcast(ref target, ref typedMessage, entry.Key, entry.Value);
|
|
1435
|
-
entry = handlerList[3];
|
|
1436
|
-
RunTargetedBroadcast(ref target, ref typedMessage, entry.Key, entry.Value);
|
|
1437
|
-
entry = handlerList[4];
|
|
1438
|
-
RunTargetedBroadcast(ref target, ref typedMessage, entry.Key, entry.Value);
|
|
1439
|
-
break;
|
|
1566
|
+
continue;
|
|
1440
1567
|
}
|
|
1441
|
-
|
|
1568
|
+
|
|
1569
|
+
foundAnyHandlers = true;
|
|
1570
|
+
int priority = bucket.priority;
|
|
1571
|
+
switch (entryCount)
|
|
1442
1572
|
{
|
|
1443
|
-
|
|
1573
|
+
case 1:
|
|
1444
1574
|
{
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
);
|
|
1575
|
+
InvokeTargetedEntry(ref target, ref typedMessage, priority, entries[0]);
|
|
1576
|
+
continue;
|
|
1577
|
+
}
|
|
1578
|
+
case 2:
|
|
1579
|
+
{
|
|
1580
|
+
InvokeTargetedEntry(ref target, ref typedMessage, priority, entries[0]);
|
|
1581
|
+
InvokeTargetedEntry(ref target, ref typedMessage, priority, entries[1]);
|
|
1582
|
+
continue;
|
|
1452
1583
|
}
|
|
1584
|
+
case 3:
|
|
1585
|
+
{
|
|
1586
|
+
InvokeTargetedEntry(ref target, ref typedMessage, priority, entries[0]);
|
|
1587
|
+
InvokeTargetedEntry(ref target, ref typedMessage, priority, entries[1]);
|
|
1588
|
+
InvokeTargetedEntry(ref target, ref typedMessage, priority, entries[2]);
|
|
1589
|
+
continue;
|
|
1590
|
+
}
|
|
1591
|
+
case 4:
|
|
1592
|
+
{
|
|
1593
|
+
InvokeTargetedEntry(ref target, ref typedMessage, priority, entries[0]);
|
|
1594
|
+
InvokeTargetedEntry(ref target, ref typedMessage, priority, entries[1]);
|
|
1595
|
+
InvokeTargetedEntry(ref target, ref typedMessage, priority, entries[2]);
|
|
1596
|
+
InvokeTargetedEntry(ref target, ref typedMessage, priority, entries[3]);
|
|
1597
|
+
continue;
|
|
1598
|
+
}
|
|
1599
|
+
case 5:
|
|
1600
|
+
{
|
|
1601
|
+
InvokeTargetedEntry(ref target, ref typedMessage, priority, entries[0]);
|
|
1602
|
+
InvokeTargetedEntry(ref target, ref typedMessage, priority, entries[1]);
|
|
1603
|
+
InvokeTargetedEntry(ref target, ref typedMessage, priority, entries[2]);
|
|
1604
|
+
InvokeTargetedEntry(ref target, ref typedMessage, priority, entries[3]);
|
|
1605
|
+
InvokeTargetedEntry(ref target, ref typedMessage, priority, entries[4]);
|
|
1606
|
+
continue;
|
|
1607
|
+
}
|
|
1608
|
+
}
|
|
1453
1609
|
|
|
1454
|
-
|
|
1610
|
+
for (int entryIndex = 0; entryIndex < entryCount; ++entryIndex)
|
|
1611
|
+
{
|
|
1612
|
+
InvokeTargetedEntry(
|
|
1613
|
+
ref target,
|
|
1614
|
+
ref typedMessage,
|
|
1615
|
+
priority,
|
|
1616
|
+
entries[entryIndex]
|
|
1617
|
+
);
|
|
1455
1618
|
}
|
|
1456
1619
|
}
|
|
1457
1620
|
}
|
|
1458
1621
|
|
|
1459
|
-
|
|
1622
|
+
if (InternalTargetedWithoutTargetingBroadcast(ref target, ref typedMessage))
|
|
1623
|
+
{
|
|
1624
|
+
foundAnyHandlers = true;
|
|
1625
|
+
}
|
|
1460
1626
|
|
|
1461
1627
|
if (
|
|
1462
1628
|
_postProcessingTargetedSinks.TryGetValue<TMessage>(out targetedHandlers)
|
|
1463
1629
|
&& targetedHandlers.TryGetValue(target, out sortedHandlers)
|
|
1464
|
-
&&
|
|
1630
|
+
&& sortedHandlers.handlers.Count > 0
|
|
1465
1631
|
)
|
|
1466
1632
|
{
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
);
|
|
1484
|
-
break;
|
|
1485
|
-
}
|
|
1486
|
-
case 2:
|
|
1487
|
-
{
|
|
1488
|
-
KeyValuePair<int, HandlerCache> entry = handlerList[0];
|
|
1489
|
-
RunTargetedPostProcessing(
|
|
1490
|
-
ref target,
|
|
1491
|
-
ref typedMessage,
|
|
1492
|
-
entry.Key,
|
|
1493
|
-
entry.Value
|
|
1494
|
-
);
|
|
1495
|
-
entry = handlerList[1];
|
|
1496
|
-
RunTargetedPostProcessing(
|
|
1497
|
-
ref target,
|
|
1498
|
-
ref typedMessage,
|
|
1499
|
-
entry.Key,
|
|
1500
|
-
entry.Value
|
|
1501
|
-
);
|
|
1502
|
-
break;
|
|
1503
|
-
}
|
|
1504
|
-
case 3:
|
|
1505
|
-
{
|
|
1506
|
-
KeyValuePair<int, HandlerCache> entry = handlerList[0];
|
|
1507
|
-
RunTargetedPostProcessing(
|
|
1508
|
-
ref target,
|
|
1509
|
-
ref typedMessage,
|
|
1510
|
-
entry.Key,
|
|
1511
|
-
entry.Value
|
|
1512
|
-
);
|
|
1513
|
-
entry = handlerList[1];
|
|
1514
|
-
RunTargetedPostProcessing(
|
|
1515
|
-
ref target,
|
|
1516
|
-
ref typedMessage,
|
|
1517
|
-
entry.Key,
|
|
1518
|
-
entry.Value
|
|
1519
|
-
);
|
|
1520
|
-
entry = handlerList[2];
|
|
1521
|
-
RunTargetedPostProcessing(
|
|
1522
|
-
ref target,
|
|
1523
|
-
ref typedMessage,
|
|
1524
|
-
entry.Key,
|
|
1525
|
-
entry.Value
|
|
1526
|
-
);
|
|
1527
|
-
break;
|
|
1528
|
-
}
|
|
1529
|
-
case 4:
|
|
1530
|
-
{
|
|
1531
|
-
KeyValuePair<int, HandlerCache> entry = handlerList[0];
|
|
1532
|
-
RunTargetedPostProcessing(
|
|
1533
|
-
ref target,
|
|
1534
|
-
ref typedMessage,
|
|
1535
|
-
entry.Key,
|
|
1536
|
-
entry.Value
|
|
1537
|
-
);
|
|
1538
|
-
entry = handlerList[1];
|
|
1539
|
-
RunTargetedPostProcessing(
|
|
1540
|
-
ref target,
|
|
1541
|
-
ref typedMessage,
|
|
1542
|
-
entry.Key,
|
|
1543
|
-
entry.Value
|
|
1544
|
-
);
|
|
1545
|
-
entry = handlerList[2];
|
|
1546
|
-
RunTargetedPostProcessing(
|
|
1547
|
-
ref target,
|
|
1548
|
-
ref typedMessage,
|
|
1549
|
-
entry.Key,
|
|
1550
|
-
entry.Value
|
|
1551
|
-
);
|
|
1552
|
-
entry = handlerList[3];
|
|
1553
|
-
RunTargetedPostProcessing(
|
|
1554
|
-
ref target,
|
|
1555
|
-
ref typedMessage,
|
|
1556
|
-
entry.Key,
|
|
1557
|
-
entry.Value
|
|
1558
|
-
);
|
|
1559
|
-
break;
|
|
1560
|
-
}
|
|
1561
|
-
case 5:
|
|
1633
|
+
DispatchSnapshot snapshot = targetedPostSnapshot.IsEmpty
|
|
1634
|
+
? AcquireDispatchSnapshot<TMessage>(
|
|
1635
|
+
this,
|
|
1636
|
+
sortedHandlers,
|
|
1637
|
+
DispatchCategory.TargetedPost,
|
|
1638
|
+
_emissionId
|
|
1639
|
+
)
|
|
1640
|
+
: targetedPostSnapshot;
|
|
1641
|
+
DispatchBucket[] buckets = snapshot.buckets;
|
|
1642
|
+
int bucketCount = snapshot.bucketCount;
|
|
1643
|
+
for (int bucketIndex = 0; bucketIndex < bucketCount; ++bucketIndex)
|
|
1644
|
+
{
|
|
1645
|
+
DispatchBucket bucket = buckets[bucketIndex];
|
|
1646
|
+
DispatchEntry[] entries = bucket.entries;
|
|
1647
|
+
int entryCount = bucket.entryCount;
|
|
1648
|
+
if (entryCount == 0)
|
|
1562
1649
|
{
|
|
1563
|
-
|
|
1564
|
-
RunTargetedPostProcessing(
|
|
1565
|
-
ref target,
|
|
1566
|
-
ref typedMessage,
|
|
1567
|
-
entry.Key,
|
|
1568
|
-
entry.Value
|
|
1569
|
-
);
|
|
1570
|
-
entry = handlerList[1];
|
|
1571
|
-
RunTargetedPostProcessing(
|
|
1572
|
-
ref target,
|
|
1573
|
-
ref typedMessage,
|
|
1574
|
-
entry.Key,
|
|
1575
|
-
entry.Value
|
|
1576
|
-
);
|
|
1577
|
-
entry = handlerList[2];
|
|
1578
|
-
RunTargetedPostProcessing(
|
|
1579
|
-
ref target,
|
|
1580
|
-
ref typedMessage,
|
|
1581
|
-
entry.Key,
|
|
1582
|
-
entry.Value
|
|
1583
|
-
);
|
|
1584
|
-
entry = handlerList[3];
|
|
1585
|
-
RunTargetedPostProcessing(
|
|
1586
|
-
ref target,
|
|
1587
|
-
ref typedMessage,
|
|
1588
|
-
entry.Key,
|
|
1589
|
-
entry.Value
|
|
1590
|
-
);
|
|
1591
|
-
entry = handlerList[4];
|
|
1592
|
-
RunTargetedPostProcessing(
|
|
1593
|
-
ref target,
|
|
1594
|
-
ref typedMessage,
|
|
1595
|
-
entry.Key,
|
|
1596
|
-
entry.Value
|
|
1597
|
-
);
|
|
1598
|
-
break;
|
|
1650
|
+
continue;
|
|
1599
1651
|
}
|
|
1600
|
-
|
|
1652
|
+
|
|
1653
|
+
foundAnyHandlers = true;
|
|
1654
|
+
int priority = bucket.priority;
|
|
1655
|
+
switch (entryCount)
|
|
1601
1656
|
{
|
|
1602
|
-
|
|
1657
|
+
case 1:
|
|
1603
1658
|
{
|
|
1604
|
-
|
|
1605
|
-
RunTargetedPostProcessing(
|
|
1659
|
+
InvokeTargetedPostEntry(
|
|
1606
1660
|
ref target,
|
|
1607
1661
|
ref typedMessage,
|
|
1608
|
-
|
|
1609
|
-
|
|
1662
|
+
priority,
|
|
1663
|
+
entries[0]
|
|
1664
|
+
);
|
|
1665
|
+
continue;
|
|
1666
|
+
}
|
|
1667
|
+
case 2:
|
|
1668
|
+
{
|
|
1669
|
+
InvokeTargetedPostEntry(
|
|
1670
|
+
ref target,
|
|
1671
|
+
ref typedMessage,
|
|
1672
|
+
priority,
|
|
1673
|
+
entries[0]
|
|
1674
|
+
);
|
|
1675
|
+
InvokeTargetedPostEntry(
|
|
1676
|
+
ref target,
|
|
1677
|
+
ref typedMessage,
|
|
1678
|
+
priority,
|
|
1679
|
+
entries[1]
|
|
1680
|
+
);
|
|
1681
|
+
continue;
|
|
1682
|
+
}
|
|
1683
|
+
case 3:
|
|
1684
|
+
{
|
|
1685
|
+
InvokeTargetedPostEntry(
|
|
1686
|
+
ref target,
|
|
1687
|
+
ref typedMessage,
|
|
1688
|
+
priority,
|
|
1689
|
+
entries[0]
|
|
1690
|
+
);
|
|
1691
|
+
InvokeTargetedPostEntry(
|
|
1692
|
+
ref target,
|
|
1693
|
+
ref typedMessage,
|
|
1694
|
+
priority,
|
|
1695
|
+
entries[1]
|
|
1696
|
+
);
|
|
1697
|
+
InvokeTargetedPostEntry(
|
|
1698
|
+
ref target,
|
|
1699
|
+
ref typedMessage,
|
|
1700
|
+
priority,
|
|
1701
|
+
entries[2]
|
|
1702
|
+
);
|
|
1703
|
+
continue;
|
|
1704
|
+
}
|
|
1705
|
+
case 4:
|
|
1706
|
+
{
|
|
1707
|
+
InvokeTargetedPostEntry(
|
|
1708
|
+
ref target,
|
|
1709
|
+
ref typedMessage,
|
|
1710
|
+
priority,
|
|
1711
|
+
entries[0]
|
|
1712
|
+
);
|
|
1713
|
+
InvokeTargetedPostEntry(
|
|
1714
|
+
ref target,
|
|
1715
|
+
ref typedMessage,
|
|
1716
|
+
priority,
|
|
1717
|
+
entries[1]
|
|
1718
|
+
);
|
|
1719
|
+
InvokeTargetedPostEntry(
|
|
1720
|
+
ref target,
|
|
1721
|
+
ref typedMessage,
|
|
1722
|
+
priority,
|
|
1723
|
+
entries[2]
|
|
1724
|
+
);
|
|
1725
|
+
InvokeTargetedPostEntry(
|
|
1726
|
+
ref target,
|
|
1727
|
+
ref typedMessage,
|
|
1728
|
+
priority,
|
|
1729
|
+
entries[3]
|
|
1730
|
+
);
|
|
1731
|
+
continue;
|
|
1732
|
+
}
|
|
1733
|
+
case 5:
|
|
1734
|
+
{
|
|
1735
|
+
InvokeTargetedPostEntry(
|
|
1736
|
+
ref target,
|
|
1737
|
+
ref typedMessage,
|
|
1738
|
+
priority,
|
|
1739
|
+
entries[0]
|
|
1740
|
+
);
|
|
1741
|
+
InvokeTargetedPostEntry(
|
|
1742
|
+
ref target,
|
|
1743
|
+
ref typedMessage,
|
|
1744
|
+
priority,
|
|
1745
|
+
entries[1]
|
|
1746
|
+
);
|
|
1747
|
+
InvokeTargetedPostEntry(
|
|
1748
|
+
ref target,
|
|
1749
|
+
ref typedMessage,
|
|
1750
|
+
priority,
|
|
1751
|
+
entries[2]
|
|
1752
|
+
);
|
|
1753
|
+
InvokeTargetedPostEntry(
|
|
1754
|
+
ref target,
|
|
1755
|
+
ref typedMessage,
|
|
1756
|
+
priority,
|
|
1757
|
+
entries[3]
|
|
1758
|
+
);
|
|
1759
|
+
InvokeTargetedPostEntry(
|
|
1760
|
+
ref target,
|
|
1761
|
+
ref typedMessage,
|
|
1762
|
+
priority,
|
|
1763
|
+
entries[4]
|
|
1610
1764
|
);
|
|
1765
|
+
continue;
|
|
1611
1766
|
}
|
|
1767
|
+
}
|
|
1612
1768
|
|
|
1613
|
-
|
|
1769
|
+
for (int entryIndex = 0; entryIndex < entryCount; ++entryIndex)
|
|
1770
|
+
{
|
|
1771
|
+
InvokeTargetedPostEntry(
|
|
1772
|
+
ref target,
|
|
1773
|
+
ref typedMessage,
|
|
1774
|
+
priority,
|
|
1775
|
+
entries[entryIndex]
|
|
1776
|
+
);
|
|
1614
1777
|
}
|
|
1615
1778
|
}
|
|
1616
1779
|
}
|
|
@@ -1622,153 +1785,150 @@ namespace DxMessaging.Core.MessageBus
|
|
|
1622
1785
|
&& postTwt.handlers.Count > 0
|
|
1623
1786
|
)
|
|
1624
1787
|
{
|
|
1625
|
-
|
|
1626
|
-
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
|
|
1637
|
-
|
|
1638
|
-
|
|
1639
|
-
|
|
1640
|
-
|
|
1641
|
-
);
|
|
1642
|
-
break;
|
|
1643
|
-
}
|
|
1644
|
-
case 2:
|
|
1645
|
-
{
|
|
1646
|
-
KeyValuePair<int, HandlerCache> entry = handlerList[0];
|
|
1647
|
-
RunTargetedWithoutTargetingPostProcessing(
|
|
1648
|
-
ref target,
|
|
1649
|
-
ref typedMessage,
|
|
1650
|
-
entry.Key,
|
|
1651
|
-
entry.Value
|
|
1652
|
-
);
|
|
1653
|
-
entry = handlerList[1];
|
|
1654
|
-
RunTargetedWithoutTargetingPostProcessing(
|
|
1655
|
-
ref target,
|
|
1656
|
-
ref typedMessage,
|
|
1657
|
-
entry.Key,
|
|
1658
|
-
entry.Value
|
|
1659
|
-
);
|
|
1660
|
-
break;
|
|
1661
|
-
}
|
|
1662
|
-
case 3:
|
|
1663
|
-
{
|
|
1664
|
-
KeyValuePair<int, HandlerCache> entry = handlerList[0];
|
|
1665
|
-
RunTargetedWithoutTargetingPostProcessing(
|
|
1666
|
-
ref target,
|
|
1667
|
-
ref typedMessage,
|
|
1668
|
-
entry.Key,
|
|
1669
|
-
entry.Value
|
|
1670
|
-
);
|
|
1671
|
-
entry = handlerList[1];
|
|
1672
|
-
RunTargetedWithoutTargetingPostProcessing(
|
|
1673
|
-
ref target,
|
|
1674
|
-
ref typedMessage,
|
|
1675
|
-
entry.Key,
|
|
1676
|
-
entry.Value
|
|
1677
|
-
);
|
|
1678
|
-
entry = handlerList[2];
|
|
1679
|
-
RunTargetedWithoutTargetingPostProcessing(
|
|
1680
|
-
ref target,
|
|
1681
|
-
ref typedMessage,
|
|
1682
|
-
entry.Key,
|
|
1683
|
-
entry.Value
|
|
1684
|
-
);
|
|
1685
|
-
break;
|
|
1686
|
-
}
|
|
1687
|
-
case 4:
|
|
1688
|
-
{
|
|
1689
|
-
KeyValuePair<int, HandlerCache> entry = handlerList[0];
|
|
1690
|
-
RunTargetedWithoutTargetingPostProcessing(
|
|
1691
|
-
ref target,
|
|
1692
|
-
ref typedMessage,
|
|
1693
|
-
entry.Key,
|
|
1694
|
-
entry.Value
|
|
1695
|
-
);
|
|
1696
|
-
entry = handlerList[1];
|
|
1697
|
-
RunTargetedWithoutTargetingPostProcessing(
|
|
1698
|
-
ref target,
|
|
1699
|
-
ref typedMessage,
|
|
1700
|
-
entry.Key,
|
|
1701
|
-
entry.Value
|
|
1702
|
-
);
|
|
1703
|
-
entry = handlerList[2];
|
|
1704
|
-
RunTargetedWithoutTargetingPostProcessing(
|
|
1705
|
-
ref target,
|
|
1706
|
-
ref typedMessage,
|
|
1707
|
-
entry.Key,
|
|
1708
|
-
entry.Value
|
|
1709
|
-
);
|
|
1710
|
-
entry = handlerList[3];
|
|
1711
|
-
RunTargetedWithoutTargetingPostProcessing(
|
|
1712
|
-
ref target,
|
|
1713
|
-
ref typedMessage,
|
|
1714
|
-
entry.Key,
|
|
1715
|
-
entry.Value
|
|
1716
|
-
);
|
|
1717
|
-
break;
|
|
1718
|
-
}
|
|
1719
|
-
case 5:
|
|
1788
|
+
DispatchSnapshot snapshot = targetedWithoutTargetingPostSnapshot.IsEmpty
|
|
1789
|
+
? AcquireDispatchSnapshot<TMessage>(
|
|
1790
|
+
this,
|
|
1791
|
+
postTwt,
|
|
1792
|
+
DispatchCategory.TargetedWithoutTargetingPost,
|
|
1793
|
+
_emissionId
|
|
1794
|
+
)
|
|
1795
|
+
: targetedWithoutTargetingPostSnapshot;
|
|
1796
|
+
DispatchBucket[] buckets = snapshot.buckets;
|
|
1797
|
+
int bucketCount = snapshot.bucketCount;
|
|
1798
|
+
for (int bucketIndex = 0; bucketIndex < bucketCount; ++bucketIndex)
|
|
1799
|
+
{
|
|
1800
|
+
DispatchBucket bucket = buckets[bucketIndex];
|
|
1801
|
+
DispatchEntry[] entries = bucket.entries;
|
|
1802
|
+
int entryCount = bucket.entryCount;
|
|
1803
|
+
if (entryCount == 0)
|
|
1720
1804
|
{
|
|
1721
|
-
|
|
1722
|
-
RunTargetedWithoutTargetingPostProcessing(
|
|
1723
|
-
ref target,
|
|
1724
|
-
ref typedMessage,
|
|
1725
|
-
entry.Key,
|
|
1726
|
-
entry.Value
|
|
1727
|
-
);
|
|
1728
|
-
entry = handlerList[1];
|
|
1729
|
-
RunTargetedWithoutTargetingPostProcessing(
|
|
1730
|
-
ref target,
|
|
1731
|
-
ref typedMessage,
|
|
1732
|
-
entry.Key,
|
|
1733
|
-
entry.Value
|
|
1734
|
-
);
|
|
1735
|
-
entry = handlerList[2];
|
|
1736
|
-
RunTargetedWithoutTargetingPostProcessing(
|
|
1737
|
-
ref target,
|
|
1738
|
-
ref typedMessage,
|
|
1739
|
-
entry.Key,
|
|
1740
|
-
entry.Value
|
|
1741
|
-
);
|
|
1742
|
-
entry = handlerList[3];
|
|
1743
|
-
RunTargetedWithoutTargetingPostProcessing(
|
|
1744
|
-
ref target,
|
|
1745
|
-
ref typedMessage,
|
|
1746
|
-
entry.Key,
|
|
1747
|
-
entry.Value
|
|
1748
|
-
);
|
|
1749
|
-
entry = handlerList[4];
|
|
1750
|
-
RunTargetedWithoutTargetingPostProcessing(
|
|
1751
|
-
ref target,
|
|
1752
|
-
ref typedMessage,
|
|
1753
|
-
entry.Key,
|
|
1754
|
-
entry.Value
|
|
1755
|
-
);
|
|
1756
|
-
break;
|
|
1805
|
+
continue;
|
|
1757
1806
|
}
|
|
1758
|
-
|
|
1807
|
+
|
|
1808
|
+
foundAnyHandlers = true;
|
|
1809
|
+
int priority = bucket.priority;
|
|
1810
|
+
switch (entryCount)
|
|
1759
1811
|
{
|
|
1760
|
-
|
|
1812
|
+
case 1:
|
|
1761
1813
|
{
|
|
1762
|
-
|
|
1763
|
-
RunTargetedWithoutTargetingPostProcessing(
|
|
1814
|
+
InvokeTargetedWithoutTargetingPostEntry(
|
|
1764
1815
|
ref target,
|
|
1765
1816
|
ref typedMessage,
|
|
1766
|
-
|
|
1767
|
-
|
|
1817
|
+
priority,
|
|
1818
|
+
entries[0]
|
|
1819
|
+
);
|
|
1820
|
+
continue;
|
|
1821
|
+
}
|
|
1822
|
+
case 2:
|
|
1823
|
+
{
|
|
1824
|
+
InvokeTargetedWithoutTargetingPostEntry(
|
|
1825
|
+
ref target,
|
|
1826
|
+
ref typedMessage,
|
|
1827
|
+
priority,
|
|
1828
|
+
entries[0]
|
|
1829
|
+
);
|
|
1830
|
+
InvokeTargetedWithoutTargetingPostEntry(
|
|
1831
|
+
ref target,
|
|
1832
|
+
ref typedMessage,
|
|
1833
|
+
priority,
|
|
1834
|
+
entries[1]
|
|
1835
|
+
);
|
|
1836
|
+
continue;
|
|
1837
|
+
}
|
|
1838
|
+
case 3:
|
|
1839
|
+
{
|
|
1840
|
+
InvokeTargetedWithoutTargetingPostEntry(
|
|
1841
|
+
ref target,
|
|
1842
|
+
ref typedMessage,
|
|
1843
|
+
priority,
|
|
1844
|
+
entries[0]
|
|
1845
|
+
);
|
|
1846
|
+
InvokeTargetedWithoutTargetingPostEntry(
|
|
1847
|
+
ref target,
|
|
1848
|
+
ref typedMessage,
|
|
1849
|
+
priority,
|
|
1850
|
+
entries[1]
|
|
1851
|
+
);
|
|
1852
|
+
InvokeTargetedWithoutTargetingPostEntry(
|
|
1853
|
+
ref target,
|
|
1854
|
+
ref typedMessage,
|
|
1855
|
+
priority,
|
|
1856
|
+
entries[2]
|
|
1857
|
+
);
|
|
1858
|
+
continue;
|
|
1859
|
+
}
|
|
1860
|
+
case 4:
|
|
1861
|
+
{
|
|
1862
|
+
InvokeTargetedWithoutTargetingPostEntry(
|
|
1863
|
+
ref target,
|
|
1864
|
+
ref typedMessage,
|
|
1865
|
+
priority,
|
|
1866
|
+
entries[0]
|
|
1867
|
+
);
|
|
1868
|
+
InvokeTargetedWithoutTargetingPostEntry(
|
|
1869
|
+
ref target,
|
|
1870
|
+
ref typedMessage,
|
|
1871
|
+
priority,
|
|
1872
|
+
entries[1]
|
|
1873
|
+
);
|
|
1874
|
+
InvokeTargetedWithoutTargetingPostEntry(
|
|
1875
|
+
ref target,
|
|
1876
|
+
ref typedMessage,
|
|
1877
|
+
priority,
|
|
1878
|
+
entries[2]
|
|
1879
|
+
);
|
|
1880
|
+
InvokeTargetedWithoutTargetingPostEntry(
|
|
1881
|
+
ref target,
|
|
1882
|
+
ref typedMessage,
|
|
1883
|
+
priority,
|
|
1884
|
+
entries[3]
|
|
1885
|
+
);
|
|
1886
|
+
continue;
|
|
1887
|
+
}
|
|
1888
|
+
case 5:
|
|
1889
|
+
{
|
|
1890
|
+
InvokeTargetedWithoutTargetingPostEntry(
|
|
1891
|
+
ref target,
|
|
1892
|
+
ref typedMessage,
|
|
1893
|
+
priority,
|
|
1894
|
+
entries[0]
|
|
1895
|
+
);
|
|
1896
|
+
InvokeTargetedWithoutTargetingPostEntry(
|
|
1897
|
+
ref target,
|
|
1898
|
+
ref typedMessage,
|
|
1899
|
+
priority,
|
|
1900
|
+
entries[1]
|
|
1901
|
+
);
|
|
1902
|
+
InvokeTargetedWithoutTargetingPostEntry(
|
|
1903
|
+
ref target,
|
|
1904
|
+
ref typedMessage,
|
|
1905
|
+
priority,
|
|
1906
|
+
entries[2]
|
|
1907
|
+
);
|
|
1908
|
+
InvokeTargetedWithoutTargetingPostEntry(
|
|
1909
|
+
ref target,
|
|
1910
|
+
ref typedMessage,
|
|
1911
|
+
priority,
|
|
1912
|
+
entries[3]
|
|
1913
|
+
);
|
|
1914
|
+
InvokeTargetedWithoutTargetingPostEntry(
|
|
1915
|
+
ref target,
|
|
1916
|
+
ref typedMessage,
|
|
1917
|
+
priority,
|
|
1918
|
+
entries[4]
|
|
1768
1919
|
);
|
|
1920
|
+
continue;
|
|
1769
1921
|
}
|
|
1922
|
+
}
|
|
1770
1923
|
|
|
1771
|
-
|
|
1924
|
+
for (int entryIndex = 0; entryIndex < entryCount; ++entryIndex)
|
|
1925
|
+
{
|
|
1926
|
+
InvokeTargetedWithoutTargetingPostEntry(
|
|
1927
|
+
ref target,
|
|
1928
|
+
ref typedMessage,
|
|
1929
|
+
priority,
|
|
1930
|
+
entries[entryIndex]
|
|
1931
|
+
);
|
|
1772
1932
|
}
|
|
1773
1933
|
}
|
|
1774
1934
|
}
|
|
@@ -2124,70 +2284,46 @@ namespace DxMessaging.Core.MessageBus
|
|
|
2124
2284
|
}
|
|
2125
2285
|
|
|
2126
2286
|
// Pre-freeze broadcast post-processing for this emission (source-specific and without source)
|
|
2287
|
+
DispatchSnapshot broadcastPostSnapshot = DispatchSnapshot.Empty;
|
|
2288
|
+
DispatchSnapshot broadcastWithoutSourcePostSnapshot = DispatchSnapshot.Empty;
|
|
2127
2289
|
if (
|
|
2128
2290
|
_postProcessingBroadcastSinks.TryGetValue<TMessage>(
|
|
2129
|
-
out Dictionary<
|
|
2291
|
+
out Dictionary<
|
|
2292
|
+
InstanceId,
|
|
2293
|
+
HandlerCache<int, HandlerCache>
|
|
2294
|
+
> broadcastPostHandlers
|
|
2130
2295
|
)
|
|
2131
|
-
&&
|
|
2296
|
+
&& broadcastPostHandlers.TryGetValue(
|
|
2132
2297
|
source,
|
|
2133
|
-
out HandlerCache<int, HandlerCache>
|
|
2298
|
+
out HandlerCache<int, HandlerCache> broadcastPostByPriority
|
|
2134
2299
|
)
|
|
2135
|
-
&&
|
|
2300
|
+
&& broadcastPostByPriority.handlers.Count > 0
|
|
2136
2301
|
)
|
|
2137
2302
|
{
|
|
2138
|
-
|
|
2139
|
-
|
|
2303
|
+
broadcastPostSnapshot = AcquireDispatchSnapshot<TMessage>(
|
|
2304
|
+
this,
|
|
2305
|
+
broadcastPostByPriority,
|
|
2306
|
+
DispatchCategory.BroadcastPost,
|
|
2140
2307
|
_emissionId
|
|
2141
2308
|
);
|
|
2142
|
-
|
|
2143
|
-
for (int i = 0; i < frozenCount; ++i)
|
|
2144
|
-
{
|
|
2145
|
-
KeyValuePair<int, HandlerCache> entry = frozen[i];
|
|
2146
|
-
List<MessageHandler> mhList = GetOrAddMessageHandlerStack(
|
|
2147
|
-
entry.Value,
|
|
2148
|
-
_emissionId
|
|
2149
|
-
);
|
|
2150
|
-
for (int h = 0; h < mhList.Count; ++h)
|
|
2151
|
-
{
|
|
2152
|
-
mhList[h]
|
|
2153
|
-
.PrefreezeBroadcastPostProcessorsForEmission<TMessage>(
|
|
2154
|
-
source,
|
|
2155
|
-
entry.Key,
|
|
2156
|
-
_emissionId,
|
|
2157
|
-
this
|
|
2158
|
-
);
|
|
2159
|
-
}
|
|
2160
|
-
}
|
|
2309
|
+
PrefreezeBroadcastPostSnapshot<TMessage>(ref source, broadcastPostSnapshot);
|
|
2161
2310
|
}
|
|
2162
2311
|
if (
|
|
2163
2312
|
_postProcessingBroadcastWithoutSourceSinks.TryGetValue<TMessage>(
|
|
2164
|
-
out HandlerCache<int, HandlerCache>
|
|
2313
|
+
out HandlerCache<int, HandlerCache> broadcastWithoutSourceHandlers
|
|
2165
2314
|
)
|
|
2166
|
-
&&
|
|
2315
|
+
&& broadcastWithoutSourceHandlers.handlers.Count > 0
|
|
2167
2316
|
)
|
|
2168
2317
|
{
|
|
2169
|
-
|
|
2170
|
-
|
|
2318
|
+
broadcastWithoutSourcePostSnapshot = AcquireDispatchSnapshot<TMessage>(
|
|
2319
|
+
this,
|
|
2320
|
+
broadcastWithoutSourceHandlers,
|
|
2321
|
+
DispatchCategory.BroadcastWithoutSourcePost,
|
|
2171
2322
|
_emissionId
|
|
2172
2323
|
);
|
|
2173
|
-
|
|
2174
|
-
|
|
2175
|
-
|
|
2176
|
-
KeyValuePair<int, HandlerCache> entry = frozen[i];
|
|
2177
|
-
List<MessageHandler> mhList = GetOrAddMessageHandlerStack(
|
|
2178
|
-
entry.Value,
|
|
2179
|
-
_emissionId
|
|
2180
|
-
);
|
|
2181
|
-
for (int h = 0; h < mhList.Count; ++h)
|
|
2182
|
-
{
|
|
2183
|
-
mhList[h]
|
|
2184
|
-
.PrefreezeBroadcastWithoutSourcePostProcessorsForEmission<TMessage>(
|
|
2185
|
-
entry.Key,
|
|
2186
|
-
_emissionId,
|
|
2187
|
-
this
|
|
2188
|
-
);
|
|
2189
|
-
}
|
|
2190
|
-
}
|
|
2324
|
+
PrefreezeBroadcastWithoutSourcePostSnapshot<TMessage>(
|
|
2325
|
+
broadcastWithoutSourcePostSnapshot
|
|
2326
|
+
);
|
|
2191
2327
|
}
|
|
2192
2328
|
|
|
2193
2329
|
if (!RunBroadcastInterceptors(ref typedMessage, ref source))
|
|
@@ -2232,8 +2368,9 @@ namespace DxMessaging.Core.MessageBus
|
|
|
2232
2368
|
}
|
|
2233
2369
|
|
|
2234
2370
|
bool foundAnyHandlers = false;
|
|
2235
|
-
|
|
2236
|
-
|
|
2371
|
+
_ = _broadcastSinks.TryGetValue<TMessage>(
|
|
2372
|
+
out Dictionary<InstanceId, HandlerCache<int, HandlerCache>> broadcastHandlers
|
|
2373
|
+
);
|
|
2237
2374
|
if (
|
|
2238
2375
|
broadcastHandlers != null
|
|
2239
2376
|
&& broadcastHandlers.TryGetValue(
|
|
@@ -2323,152 +2460,148 @@ namespace DxMessaging.Core.MessageBus
|
|
|
2323
2460
|
)
|
|
2324
2461
|
{
|
|
2325
2462
|
foundAnyHandlers = true;
|
|
2326
|
-
|
|
2463
|
+
DispatchSnapshot snapshot = AcquireDispatchSnapshot<TMessage>(
|
|
2464
|
+
this,
|
|
2327
2465
|
sortedHandlers,
|
|
2466
|
+
DispatchCategory.BroadcastPost,
|
|
2328
2467
|
_emissionId
|
|
2329
2468
|
);
|
|
2330
|
-
|
|
2331
|
-
|
|
2332
|
-
|
|
2333
|
-
|
|
2334
|
-
|
|
2335
|
-
|
|
2336
|
-
|
|
2337
|
-
|
|
2338
|
-
ref typedMessage,
|
|
2339
|
-
entry.Key,
|
|
2340
|
-
entry.Value
|
|
2341
|
-
);
|
|
2342
|
-
break;
|
|
2343
|
-
}
|
|
2344
|
-
case 2:
|
|
2345
|
-
{
|
|
2346
|
-
KeyValuePair<int, HandlerCache> entry = handlerList[0];
|
|
2347
|
-
RunBroadcastPostProcessing(
|
|
2348
|
-
ref source,
|
|
2349
|
-
ref typedMessage,
|
|
2350
|
-
entry.Key,
|
|
2351
|
-
entry.Value
|
|
2352
|
-
);
|
|
2353
|
-
entry = handlerList[1];
|
|
2354
|
-
RunBroadcastPostProcessing(
|
|
2355
|
-
ref source,
|
|
2356
|
-
ref typedMessage,
|
|
2357
|
-
entry.Key,
|
|
2358
|
-
entry.Value
|
|
2359
|
-
);
|
|
2360
|
-
break;
|
|
2361
|
-
}
|
|
2362
|
-
case 3:
|
|
2469
|
+
DispatchBucket[] buckets = snapshot.buckets;
|
|
2470
|
+
int bucketCount = snapshot.bucketCount;
|
|
2471
|
+
for (int bucketIndex = 0; bucketIndex < bucketCount; ++bucketIndex)
|
|
2472
|
+
{
|
|
2473
|
+
DispatchBucket bucket = buckets[bucketIndex];
|
|
2474
|
+
DispatchEntry[] entries = bucket.entries;
|
|
2475
|
+
int entryCount = bucket.entryCount;
|
|
2476
|
+
if (entryCount == 0)
|
|
2363
2477
|
{
|
|
2364
|
-
|
|
2365
|
-
RunBroadcastPostProcessing(
|
|
2366
|
-
ref source,
|
|
2367
|
-
ref typedMessage,
|
|
2368
|
-
entry.Key,
|
|
2369
|
-
entry.Value
|
|
2370
|
-
);
|
|
2371
|
-
entry = handlerList[1];
|
|
2372
|
-
RunBroadcastPostProcessing(
|
|
2373
|
-
ref source,
|
|
2374
|
-
ref typedMessage,
|
|
2375
|
-
entry.Key,
|
|
2376
|
-
entry.Value
|
|
2377
|
-
);
|
|
2378
|
-
entry = handlerList[2];
|
|
2379
|
-
RunBroadcastPostProcessing(
|
|
2380
|
-
ref source,
|
|
2381
|
-
ref typedMessage,
|
|
2382
|
-
entry.Key,
|
|
2383
|
-
entry.Value
|
|
2384
|
-
);
|
|
2385
|
-
break;
|
|
2478
|
+
continue;
|
|
2386
2479
|
}
|
|
2387
|
-
|
|
2480
|
+
|
|
2481
|
+
foundAnyHandlers = true;
|
|
2482
|
+
int priority = bucket.priority;
|
|
2483
|
+
switch (entryCount)
|
|
2388
2484
|
{
|
|
2389
|
-
|
|
2390
|
-
RunBroadcastPostProcessing(
|
|
2391
|
-
ref source,
|
|
2392
|
-
ref typedMessage,
|
|
2393
|
-
entry.Key,
|
|
2394
|
-
entry.Value
|
|
2395
|
-
);
|
|
2396
|
-
entry = handlerList[1];
|
|
2397
|
-
RunBroadcastPostProcessing(
|
|
2398
|
-
ref source,
|
|
2399
|
-
ref typedMessage,
|
|
2400
|
-
entry.Key,
|
|
2401
|
-
entry.Value
|
|
2402
|
-
);
|
|
2403
|
-
entry = handlerList[2];
|
|
2404
|
-
RunBroadcastPostProcessing(
|
|
2405
|
-
ref source,
|
|
2406
|
-
ref typedMessage,
|
|
2407
|
-
entry.Key,
|
|
2408
|
-
entry.Value
|
|
2409
|
-
);
|
|
2410
|
-
entry = handlerList[3];
|
|
2411
|
-
RunBroadcastPostProcessing(
|
|
2412
|
-
ref source,
|
|
2413
|
-
ref typedMessage,
|
|
2414
|
-
entry.Key,
|
|
2415
|
-
entry.Value
|
|
2416
|
-
);
|
|
2417
|
-
break;
|
|
2418
|
-
}
|
|
2419
|
-
case 5:
|
|
2420
|
-
{
|
|
2421
|
-
KeyValuePair<int, HandlerCache> entry = handlerList[0];
|
|
2422
|
-
RunBroadcastPostProcessing(
|
|
2423
|
-
ref source,
|
|
2424
|
-
ref typedMessage,
|
|
2425
|
-
entry.Key,
|
|
2426
|
-
entry.Value
|
|
2427
|
-
);
|
|
2428
|
-
entry = handlerList[1];
|
|
2429
|
-
RunBroadcastPostProcessing(
|
|
2430
|
-
ref source,
|
|
2431
|
-
ref typedMessage,
|
|
2432
|
-
entry.Key,
|
|
2433
|
-
entry.Value
|
|
2434
|
-
);
|
|
2435
|
-
entry = handlerList[2];
|
|
2436
|
-
RunBroadcastPostProcessing(
|
|
2437
|
-
ref source,
|
|
2438
|
-
ref typedMessage,
|
|
2439
|
-
entry.Key,
|
|
2440
|
-
entry.Value
|
|
2441
|
-
);
|
|
2442
|
-
entry = handlerList[3];
|
|
2443
|
-
RunBroadcastPostProcessing(
|
|
2444
|
-
ref source,
|
|
2445
|
-
ref typedMessage,
|
|
2446
|
-
entry.Key,
|
|
2447
|
-
entry.Value
|
|
2448
|
-
);
|
|
2449
|
-
entry = handlerList[4];
|
|
2450
|
-
RunBroadcastPostProcessing(
|
|
2451
|
-
ref source,
|
|
2452
|
-
ref typedMessage,
|
|
2453
|
-
entry.Key,
|
|
2454
|
-
entry.Value
|
|
2455
|
-
);
|
|
2456
|
-
break;
|
|
2457
|
-
}
|
|
2458
|
-
default:
|
|
2459
|
-
{
|
|
2460
|
-
for (int i = 0; i < handlerListCount; ++i)
|
|
2485
|
+
case 1:
|
|
2461
2486
|
{
|
|
2462
|
-
|
|
2463
|
-
RunBroadcastPostProcessing(
|
|
2487
|
+
InvokeBroadcastPostEntry(
|
|
2464
2488
|
ref source,
|
|
2465
2489
|
ref typedMessage,
|
|
2466
|
-
|
|
2467
|
-
|
|
2490
|
+
priority,
|
|
2491
|
+
entries[0]
|
|
2492
|
+
);
|
|
2493
|
+
continue;
|
|
2494
|
+
}
|
|
2495
|
+
case 2:
|
|
2496
|
+
{
|
|
2497
|
+
InvokeBroadcastPostEntry(
|
|
2498
|
+
ref source,
|
|
2499
|
+
ref typedMessage,
|
|
2500
|
+
priority,
|
|
2501
|
+
entries[0]
|
|
2502
|
+
);
|
|
2503
|
+
InvokeBroadcastPostEntry(
|
|
2504
|
+
ref source,
|
|
2505
|
+
ref typedMessage,
|
|
2506
|
+
priority,
|
|
2507
|
+
entries[1]
|
|
2508
|
+
);
|
|
2509
|
+
continue;
|
|
2510
|
+
}
|
|
2511
|
+
case 3:
|
|
2512
|
+
{
|
|
2513
|
+
InvokeBroadcastPostEntry(
|
|
2514
|
+
ref source,
|
|
2515
|
+
ref typedMessage,
|
|
2516
|
+
priority,
|
|
2517
|
+
entries[0]
|
|
2518
|
+
);
|
|
2519
|
+
InvokeBroadcastPostEntry(
|
|
2520
|
+
ref source,
|
|
2521
|
+
ref typedMessage,
|
|
2522
|
+
priority,
|
|
2523
|
+
entries[1]
|
|
2524
|
+
);
|
|
2525
|
+
InvokeBroadcastPostEntry(
|
|
2526
|
+
ref source,
|
|
2527
|
+
ref typedMessage,
|
|
2528
|
+
priority,
|
|
2529
|
+
entries[2]
|
|
2530
|
+
);
|
|
2531
|
+
continue;
|
|
2532
|
+
}
|
|
2533
|
+
case 4:
|
|
2534
|
+
{
|
|
2535
|
+
InvokeBroadcastPostEntry(
|
|
2536
|
+
ref source,
|
|
2537
|
+
ref typedMessage,
|
|
2538
|
+
priority,
|
|
2539
|
+
entries[0]
|
|
2540
|
+
);
|
|
2541
|
+
InvokeBroadcastPostEntry(
|
|
2542
|
+
ref source,
|
|
2543
|
+
ref typedMessage,
|
|
2544
|
+
priority,
|
|
2545
|
+
entries[1]
|
|
2546
|
+
);
|
|
2547
|
+
InvokeBroadcastPostEntry(
|
|
2548
|
+
ref source,
|
|
2549
|
+
ref typedMessage,
|
|
2550
|
+
priority,
|
|
2551
|
+
entries[2]
|
|
2552
|
+
);
|
|
2553
|
+
InvokeBroadcastPostEntry(
|
|
2554
|
+
ref source,
|
|
2555
|
+
ref typedMessage,
|
|
2556
|
+
priority,
|
|
2557
|
+
entries[3]
|
|
2558
|
+
);
|
|
2559
|
+
continue;
|
|
2560
|
+
}
|
|
2561
|
+
case 5:
|
|
2562
|
+
{
|
|
2563
|
+
InvokeBroadcastPostEntry(
|
|
2564
|
+
ref source,
|
|
2565
|
+
ref typedMessage,
|
|
2566
|
+
priority,
|
|
2567
|
+
entries[0]
|
|
2568
|
+
);
|
|
2569
|
+
InvokeBroadcastPostEntry(
|
|
2570
|
+
ref source,
|
|
2571
|
+
ref typedMessage,
|
|
2572
|
+
priority,
|
|
2573
|
+
entries[1]
|
|
2574
|
+
);
|
|
2575
|
+
InvokeBroadcastPostEntry(
|
|
2576
|
+
ref source,
|
|
2577
|
+
ref typedMessage,
|
|
2578
|
+
priority,
|
|
2579
|
+
entries[2]
|
|
2580
|
+
);
|
|
2581
|
+
InvokeBroadcastPostEntry(
|
|
2582
|
+
ref source,
|
|
2583
|
+
ref typedMessage,
|
|
2584
|
+
priority,
|
|
2585
|
+
entries[3]
|
|
2586
|
+
);
|
|
2587
|
+
InvokeBroadcastPostEntry(
|
|
2588
|
+
ref source,
|
|
2589
|
+
ref typedMessage,
|
|
2590
|
+
priority,
|
|
2591
|
+
entries[4]
|
|
2468
2592
|
);
|
|
2593
|
+
continue;
|
|
2469
2594
|
}
|
|
2595
|
+
}
|
|
2470
2596
|
|
|
2471
|
-
|
|
2597
|
+
for (int entryIndex = 0; entryIndex < entryCount; ++entryIndex)
|
|
2598
|
+
{
|
|
2599
|
+
InvokeBroadcastPostEntry(
|
|
2600
|
+
ref source,
|
|
2601
|
+
ref typedMessage,
|
|
2602
|
+
priority,
|
|
2603
|
+
entries[entryIndex]
|
|
2604
|
+
);
|
|
2472
2605
|
}
|
|
2473
2606
|
}
|
|
2474
2607
|
}
|
|
@@ -2478,20 +2611,149 @@ namespace DxMessaging.Core.MessageBus
|
|
|
2478
2611
|
&& 0 < sortedHandlers.handlers.Count
|
|
2479
2612
|
)
|
|
2480
2613
|
{
|
|
2481
|
-
|
|
2614
|
+
DispatchSnapshot snapshot = AcquireDispatchSnapshot<TMessage>(
|
|
2615
|
+
this,
|
|
2482
2616
|
sortedHandlers,
|
|
2617
|
+
DispatchCategory.BroadcastWithoutSourcePost,
|
|
2483
2618
|
_emissionId
|
|
2484
2619
|
);
|
|
2485
|
-
|
|
2486
|
-
|
|
2487
|
-
|
|
2488
|
-
|
|
2489
|
-
|
|
2490
|
-
|
|
2491
|
-
|
|
2492
|
-
|
|
2493
|
-
|
|
2494
|
-
|
|
2620
|
+
DispatchBucket[] buckets = snapshot.buckets;
|
|
2621
|
+
int bucketCount = snapshot.bucketCount;
|
|
2622
|
+
for (int bucketIndex = 0; bucketIndex < bucketCount; ++bucketIndex)
|
|
2623
|
+
{
|
|
2624
|
+
DispatchBucket bucket = buckets[bucketIndex];
|
|
2625
|
+
DispatchEntry[] entries = bucket.entries;
|
|
2626
|
+
int entryCount = bucket.entryCount;
|
|
2627
|
+
if (entryCount == 0)
|
|
2628
|
+
{
|
|
2629
|
+
continue;
|
|
2630
|
+
}
|
|
2631
|
+
|
|
2632
|
+
bwsFound = true;
|
|
2633
|
+
int priority = bucket.priority;
|
|
2634
|
+
switch (entryCount)
|
|
2635
|
+
{
|
|
2636
|
+
case 1:
|
|
2637
|
+
{
|
|
2638
|
+
InvokeBroadcastWithoutSourcePostEntry(
|
|
2639
|
+
ref source,
|
|
2640
|
+
ref typedMessage,
|
|
2641
|
+
priority,
|
|
2642
|
+
entries[0]
|
|
2643
|
+
);
|
|
2644
|
+
continue;
|
|
2645
|
+
}
|
|
2646
|
+
case 2:
|
|
2647
|
+
{
|
|
2648
|
+
InvokeBroadcastWithoutSourcePostEntry(
|
|
2649
|
+
ref source,
|
|
2650
|
+
ref typedMessage,
|
|
2651
|
+
priority,
|
|
2652
|
+
entries[0]
|
|
2653
|
+
);
|
|
2654
|
+
InvokeBroadcastWithoutSourcePostEntry(
|
|
2655
|
+
ref source,
|
|
2656
|
+
ref typedMessage,
|
|
2657
|
+
priority,
|
|
2658
|
+
entries[1]
|
|
2659
|
+
);
|
|
2660
|
+
continue;
|
|
2661
|
+
}
|
|
2662
|
+
case 3:
|
|
2663
|
+
{
|
|
2664
|
+
InvokeBroadcastWithoutSourcePostEntry(
|
|
2665
|
+
ref source,
|
|
2666
|
+
ref typedMessage,
|
|
2667
|
+
priority,
|
|
2668
|
+
entries[0]
|
|
2669
|
+
);
|
|
2670
|
+
InvokeBroadcastWithoutSourcePostEntry(
|
|
2671
|
+
ref source,
|
|
2672
|
+
ref typedMessage,
|
|
2673
|
+
priority,
|
|
2674
|
+
entries[1]
|
|
2675
|
+
);
|
|
2676
|
+
InvokeBroadcastWithoutSourcePostEntry(
|
|
2677
|
+
ref source,
|
|
2678
|
+
ref typedMessage,
|
|
2679
|
+
priority,
|
|
2680
|
+
entries[2]
|
|
2681
|
+
);
|
|
2682
|
+
continue;
|
|
2683
|
+
}
|
|
2684
|
+
case 4:
|
|
2685
|
+
{
|
|
2686
|
+
InvokeBroadcastWithoutSourcePostEntry(
|
|
2687
|
+
ref source,
|
|
2688
|
+
ref typedMessage,
|
|
2689
|
+
priority,
|
|
2690
|
+
entries[0]
|
|
2691
|
+
);
|
|
2692
|
+
InvokeBroadcastWithoutSourcePostEntry(
|
|
2693
|
+
ref source,
|
|
2694
|
+
ref typedMessage,
|
|
2695
|
+
priority,
|
|
2696
|
+
entries[1]
|
|
2697
|
+
);
|
|
2698
|
+
InvokeBroadcastWithoutSourcePostEntry(
|
|
2699
|
+
ref source,
|
|
2700
|
+
ref typedMessage,
|
|
2701
|
+
priority,
|
|
2702
|
+
entries[2]
|
|
2703
|
+
);
|
|
2704
|
+
InvokeBroadcastWithoutSourcePostEntry(
|
|
2705
|
+
ref source,
|
|
2706
|
+
ref typedMessage,
|
|
2707
|
+
priority,
|
|
2708
|
+
entries[3]
|
|
2709
|
+
);
|
|
2710
|
+
continue;
|
|
2711
|
+
}
|
|
2712
|
+
case 5:
|
|
2713
|
+
{
|
|
2714
|
+
InvokeBroadcastWithoutSourcePostEntry(
|
|
2715
|
+
ref source,
|
|
2716
|
+
ref typedMessage,
|
|
2717
|
+
priority,
|
|
2718
|
+
entries[0]
|
|
2719
|
+
);
|
|
2720
|
+
InvokeBroadcastWithoutSourcePostEntry(
|
|
2721
|
+
ref source,
|
|
2722
|
+
ref typedMessage,
|
|
2723
|
+
priority,
|
|
2724
|
+
entries[1]
|
|
2725
|
+
);
|
|
2726
|
+
InvokeBroadcastWithoutSourcePostEntry(
|
|
2727
|
+
ref source,
|
|
2728
|
+
ref typedMessage,
|
|
2729
|
+
priority,
|
|
2730
|
+
entries[2]
|
|
2731
|
+
);
|
|
2732
|
+
InvokeBroadcastWithoutSourcePostEntry(
|
|
2733
|
+
ref source,
|
|
2734
|
+
ref typedMessage,
|
|
2735
|
+
priority,
|
|
2736
|
+
entries[3]
|
|
2737
|
+
);
|
|
2738
|
+
InvokeBroadcastWithoutSourcePostEntry(
|
|
2739
|
+
ref source,
|
|
2740
|
+
ref typedMessage,
|
|
2741
|
+
priority,
|
|
2742
|
+
entries[4]
|
|
2743
|
+
);
|
|
2744
|
+
continue;
|
|
2745
|
+
}
|
|
2746
|
+
}
|
|
2747
|
+
|
|
2748
|
+
for (int entryIndex = 0; entryIndex < entryCount; ++entryIndex)
|
|
2749
|
+
{
|
|
2750
|
+
InvokeBroadcastWithoutSourcePostEntry(
|
|
2751
|
+
ref source,
|
|
2752
|
+
ref typedMessage,
|
|
2753
|
+
priority,
|
|
2754
|
+
entries[entryIndex]
|
|
2755
|
+
);
|
|
2756
|
+
}
|
|
2495
2757
|
}
|
|
2496
2758
|
}
|
|
2497
2759
|
|
|
@@ -2506,32 +2768,6 @@ namespace DxMessaging.Core.MessageBus
|
|
|
2506
2768
|
}
|
|
2507
2769
|
}
|
|
2508
2770
|
|
|
2509
|
-
private void RunBroadcastWithoutSourcePostProcessing<TMessage>(
|
|
2510
|
-
ref InstanceId source,
|
|
2511
|
-
ref TMessage typedMessage,
|
|
2512
|
-
int priority,
|
|
2513
|
-
HandlerCache cache
|
|
2514
|
-
)
|
|
2515
|
-
where TMessage : IBroadcastMessage
|
|
2516
|
-
{
|
|
2517
|
-
List<MessageHandler> messageHandlers = GetOrAddMessageHandlerStack(cache, _emissionId);
|
|
2518
|
-
int messageHandlersCount = messageHandlers.Count;
|
|
2519
|
-
if (messageHandlersCount == 0)
|
|
2520
|
-
{
|
|
2521
|
-
return;
|
|
2522
|
-
}
|
|
2523
|
-
for (int i = 0; i < messageHandlersCount; ++i)
|
|
2524
|
-
{
|
|
2525
|
-
MessageHandler handler = messageHandlers[i];
|
|
2526
|
-
handler.HandleSourcedBroadcastWithoutSourcePostProcessing(
|
|
2527
|
-
ref source,
|
|
2528
|
-
ref typedMessage,
|
|
2529
|
-
this,
|
|
2530
|
-
priority
|
|
2531
|
-
);
|
|
2532
|
-
}
|
|
2533
|
-
}
|
|
2534
|
-
|
|
2535
2771
|
private void RunBroadcastPostProcessing<TMessage>(
|
|
2536
2772
|
ref InstanceId source,
|
|
2537
2773
|
ref TMessage typedMessage,
|
|
@@ -2765,128 +3001,144 @@ namespace DxMessaging.Core.MessageBus
|
|
|
2765
3001
|
|
|
2766
3002
|
private void BroadcastGlobalUntargeted(ref IUntargetedMessage message)
|
|
2767
3003
|
{
|
|
2768
|
-
|
|
2769
|
-
|
|
2770
|
-
return;
|
|
2771
|
-
}
|
|
2772
|
-
|
|
2773
|
-
List<MessageHandler> messageHandlers = GetOrAddMessageHandlerStack(
|
|
3004
|
+
DispatchSnapshot snapshot = AcquireGlobalDispatchSnapshot<IUntargetedMessage>(
|
|
3005
|
+
this,
|
|
2774
3006
|
_globalSinks,
|
|
3007
|
+
DispatchCategory.GlobalUntargeted,
|
|
2775
3008
|
_emissionId
|
|
2776
3009
|
);
|
|
2777
|
-
|
|
2778
|
-
|
|
3010
|
+
DispatchBucket[] buckets = snapshot.buckets;
|
|
3011
|
+
int bucketCount = snapshot.bucketCount;
|
|
3012
|
+
if (bucketCount == 0)
|
|
2779
3013
|
{
|
|
2780
|
-
|
|
3014
|
+
return;
|
|
2781
3015
|
}
|
|
2782
|
-
|
|
2783
|
-
|
|
3016
|
+
|
|
3017
|
+
for (int bucketIndex = 0; bucketIndex < bucketCount; ++bucketIndex)
|
|
2784
3018
|
{
|
|
2785
|
-
|
|
3019
|
+
DispatchBucket bucket = buckets[bucketIndex];
|
|
3020
|
+
DispatchEntry[] entries = bucket.entries;
|
|
3021
|
+
int entryCount = bucket.entryCount;
|
|
3022
|
+
if (entryCount == 0)
|
|
2786
3023
|
{
|
|
2787
|
-
|
|
2788
|
-
return;
|
|
3024
|
+
continue;
|
|
2789
3025
|
}
|
|
2790
|
-
|
|
3026
|
+
|
|
3027
|
+
switch (entryCount)
|
|
2791
3028
|
{
|
|
2792
|
-
|
|
2793
|
-
|
|
2794
|
-
|
|
3029
|
+
case 1:
|
|
3030
|
+
{
|
|
3031
|
+
InvokeGlobalUntargetedEntry(ref message, entries[0]);
|
|
3032
|
+
continue;
|
|
3033
|
+
}
|
|
3034
|
+
case 2:
|
|
3035
|
+
{
|
|
3036
|
+
InvokeGlobalUntargetedEntry(ref message, entries[0]);
|
|
3037
|
+
InvokeGlobalUntargetedEntry(ref message, entries[1]);
|
|
3038
|
+
continue;
|
|
3039
|
+
}
|
|
3040
|
+
case 3:
|
|
3041
|
+
{
|
|
3042
|
+
InvokeGlobalUntargetedEntry(ref message, entries[0]);
|
|
3043
|
+
InvokeGlobalUntargetedEntry(ref message, entries[1]);
|
|
3044
|
+
InvokeGlobalUntargetedEntry(ref message, entries[2]);
|
|
3045
|
+
continue;
|
|
3046
|
+
}
|
|
3047
|
+
case 4:
|
|
3048
|
+
{
|
|
3049
|
+
InvokeGlobalUntargetedEntry(ref message, entries[0]);
|
|
3050
|
+
InvokeGlobalUntargetedEntry(ref message, entries[1]);
|
|
3051
|
+
InvokeGlobalUntargetedEntry(ref message, entries[2]);
|
|
3052
|
+
InvokeGlobalUntargetedEntry(ref message, entries[3]);
|
|
3053
|
+
continue;
|
|
3054
|
+
}
|
|
3055
|
+
case 5:
|
|
3056
|
+
{
|
|
3057
|
+
InvokeGlobalUntargetedEntry(ref message, entries[0]);
|
|
3058
|
+
InvokeGlobalUntargetedEntry(ref message, entries[1]);
|
|
3059
|
+
InvokeGlobalUntargetedEntry(ref message, entries[2]);
|
|
3060
|
+
InvokeGlobalUntargetedEntry(ref message, entries[3]);
|
|
3061
|
+
InvokeGlobalUntargetedEntry(ref message, entries[4]);
|
|
3062
|
+
continue;
|
|
3063
|
+
}
|
|
2795
3064
|
}
|
|
2796
|
-
|
|
3065
|
+
|
|
3066
|
+
for (int entryIndex = 0; entryIndex < entryCount; ++entryIndex)
|
|
2797
3067
|
{
|
|
2798
|
-
|
|
2799
|
-
messageHandlers[1].HandleGlobalUntargetedMessage(ref message, this);
|
|
2800
|
-
messageHandlers[2].HandleGlobalUntargetedMessage(ref message, this);
|
|
2801
|
-
return;
|
|
2802
|
-
}
|
|
2803
|
-
case 4:
|
|
2804
|
-
{
|
|
2805
|
-
messageHandlers[0].HandleGlobalUntargetedMessage(ref message, this);
|
|
2806
|
-
messageHandlers[1].HandleGlobalUntargetedMessage(ref message, this);
|
|
2807
|
-
messageHandlers[2].HandleGlobalUntargetedMessage(ref message, this);
|
|
2808
|
-
messageHandlers[3].HandleGlobalUntargetedMessage(ref message, this);
|
|
2809
|
-
return;
|
|
2810
|
-
}
|
|
2811
|
-
case 5:
|
|
2812
|
-
{
|
|
2813
|
-
messageHandlers[0].HandleGlobalUntargetedMessage(ref message, this);
|
|
2814
|
-
messageHandlers[1].HandleGlobalUntargetedMessage(ref message, this);
|
|
2815
|
-
messageHandlers[2].HandleGlobalUntargetedMessage(ref message, this);
|
|
2816
|
-
messageHandlers[3].HandleGlobalUntargetedMessage(ref message, this);
|
|
2817
|
-
messageHandlers[4].HandleGlobalUntargetedMessage(ref message, this);
|
|
2818
|
-
return;
|
|
3068
|
+
InvokeGlobalUntargetedEntry(ref message, entries[entryIndex]);
|
|
2819
3069
|
}
|
|
2820
3070
|
}
|
|
2821
|
-
|
|
2822
|
-
for (int i = 0; i < messageHandlersCount; ++i)
|
|
2823
|
-
{
|
|
2824
|
-
MessageHandler handler = messageHandlers[i];
|
|
2825
|
-
handler.HandleGlobalUntargetedMessage(ref message, this);
|
|
2826
|
-
}
|
|
2827
3071
|
}
|
|
2828
3072
|
|
|
2829
3073
|
private void BroadcastGlobalTargeted(ref InstanceId target, ref ITargetedMessage message)
|
|
2830
3074
|
{
|
|
2831
|
-
|
|
2832
|
-
|
|
2833
|
-
return;
|
|
2834
|
-
}
|
|
2835
|
-
|
|
2836
|
-
List<MessageHandler> messageHandlers = GetOrAddMessageHandlerStack(
|
|
3075
|
+
DispatchSnapshot snapshot = AcquireGlobalDispatchSnapshot<ITargetedMessage>(
|
|
3076
|
+
this,
|
|
2837
3077
|
_globalSinks,
|
|
3078
|
+
DispatchCategory.GlobalTargeted,
|
|
2838
3079
|
_emissionId
|
|
2839
3080
|
);
|
|
2840
|
-
|
|
2841
|
-
|
|
3081
|
+
DispatchBucket[] buckets = snapshot.buckets;
|
|
3082
|
+
int bucketCount = snapshot.bucketCount;
|
|
3083
|
+
if (bucketCount == 0)
|
|
2842
3084
|
{
|
|
2843
|
-
|
|
3085
|
+
return;
|
|
2844
3086
|
}
|
|
2845
|
-
|
|
2846
|
-
|
|
3087
|
+
|
|
3088
|
+
for (int bucketIndex = 0; bucketIndex < bucketCount; ++bucketIndex)
|
|
2847
3089
|
{
|
|
2848
|
-
|
|
2849
|
-
|
|
2850
|
-
|
|
2851
|
-
|
|
2852
|
-
}
|
|
2853
|
-
case 2:
|
|
2854
|
-
{
|
|
2855
|
-
messageHandlers[0].HandleGlobalTargetedMessage(ref target, ref message, this);
|
|
2856
|
-
messageHandlers[1].HandleGlobalTargetedMessage(ref target, ref message, this);
|
|
2857
|
-
return;
|
|
2858
|
-
}
|
|
2859
|
-
case 3:
|
|
3090
|
+
DispatchBucket bucket = buckets[bucketIndex];
|
|
3091
|
+
DispatchEntry[] entries = bucket.entries;
|
|
3092
|
+
int entryCount = bucket.entryCount;
|
|
3093
|
+
if (entryCount == 0)
|
|
2860
3094
|
{
|
|
2861
|
-
|
|
2862
|
-
messageHandlers[1].HandleGlobalTargetedMessage(ref target, ref message, this);
|
|
2863
|
-
messageHandlers[2].HandleGlobalTargetedMessage(ref target, ref message, this);
|
|
2864
|
-
return;
|
|
3095
|
+
continue;
|
|
2865
3096
|
}
|
|
2866
|
-
|
|
3097
|
+
|
|
3098
|
+
switch (entryCount)
|
|
2867
3099
|
{
|
|
2868
|
-
|
|
2869
|
-
|
|
2870
|
-
|
|
2871
|
-
|
|
2872
|
-
|
|
3100
|
+
case 1:
|
|
3101
|
+
{
|
|
3102
|
+
InvokeGlobalTargetedEntry(ref target, ref message, entries[0]);
|
|
3103
|
+
continue;
|
|
3104
|
+
}
|
|
3105
|
+
case 2:
|
|
3106
|
+
{
|
|
3107
|
+
InvokeGlobalTargetedEntry(ref target, ref message, entries[0]);
|
|
3108
|
+
InvokeGlobalTargetedEntry(ref target, ref message, entries[1]);
|
|
3109
|
+
continue;
|
|
3110
|
+
}
|
|
3111
|
+
case 3:
|
|
3112
|
+
{
|
|
3113
|
+
InvokeGlobalTargetedEntry(ref target, ref message, entries[0]);
|
|
3114
|
+
InvokeGlobalTargetedEntry(ref target, ref message, entries[1]);
|
|
3115
|
+
InvokeGlobalTargetedEntry(ref target, ref message, entries[2]);
|
|
3116
|
+
continue;
|
|
3117
|
+
}
|
|
3118
|
+
case 4:
|
|
3119
|
+
{
|
|
3120
|
+
InvokeGlobalTargetedEntry(ref target, ref message, entries[0]);
|
|
3121
|
+
InvokeGlobalTargetedEntry(ref target, ref message, entries[1]);
|
|
3122
|
+
InvokeGlobalTargetedEntry(ref target, ref message, entries[2]);
|
|
3123
|
+
InvokeGlobalTargetedEntry(ref target, ref message, entries[3]);
|
|
3124
|
+
continue;
|
|
3125
|
+
}
|
|
3126
|
+
case 5:
|
|
3127
|
+
{
|
|
3128
|
+
InvokeGlobalTargetedEntry(ref target, ref message, entries[0]);
|
|
3129
|
+
InvokeGlobalTargetedEntry(ref target, ref message, entries[1]);
|
|
3130
|
+
InvokeGlobalTargetedEntry(ref target, ref message, entries[2]);
|
|
3131
|
+
InvokeGlobalTargetedEntry(ref target, ref message, entries[3]);
|
|
3132
|
+
InvokeGlobalTargetedEntry(ref target, ref message, entries[4]);
|
|
3133
|
+
continue;
|
|
3134
|
+
}
|
|
2873
3135
|
}
|
|
2874
|
-
|
|
3136
|
+
|
|
3137
|
+
for (int entryIndex = 0; entryIndex < entryCount; ++entryIndex)
|
|
2875
3138
|
{
|
|
2876
|
-
|
|
2877
|
-
messageHandlers[1].HandleGlobalTargetedMessage(ref target, ref message, this);
|
|
2878
|
-
messageHandlers[2].HandleGlobalTargetedMessage(ref target, ref message, this);
|
|
2879
|
-
messageHandlers[3].HandleGlobalTargetedMessage(ref target, ref message, this);
|
|
2880
|
-
messageHandlers[4].HandleGlobalTargetedMessage(ref target, ref message, this);
|
|
2881
|
-
return;
|
|
3139
|
+
InvokeGlobalTargetedEntry(ref target, ref message, entries[entryIndex]);
|
|
2882
3140
|
}
|
|
2883
3141
|
}
|
|
2884
|
-
|
|
2885
|
-
for (int i = 0; i < messageHandlersCount; ++i)
|
|
2886
|
-
{
|
|
2887
|
-
MessageHandler handler = messageHandlers[i];
|
|
2888
|
-
handler.HandleGlobalTargetedMessage(ref target, ref message, this);
|
|
2889
|
-
}
|
|
2890
3142
|
}
|
|
2891
3143
|
|
|
2892
3144
|
private void BroadcastGlobalSourcedBroadcast(
|
|
@@ -2894,80 +3146,73 @@ namespace DxMessaging.Core.MessageBus
|
|
|
2894
3146
|
ref IBroadcastMessage message
|
|
2895
3147
|
)
|
|
2896
3148
|
{
|
|
2897
|
-
|
|
2898
|
-
|
|
2899
|
-
return;
|
|
2900
|
-
}
|
|
2901
|
-
|
|
2902
|
-
List<MessageHandler> messageHandlers = GetOrAddMessageHandlerStack(
|
|
3149
|
+
DispatchSnapshot snapshot = AcquireGlobalDispatchSnapshot<IBroadcastMessage>(
|
|
3150
|
+
this,
|
|
2903
3151
|
_globalSinks,
|
|
3152
|
+
DispatchCategory.GlobalBroadcast,
|
|
2904
3153
|
_emissionId
|
|
2905
3154
|
);
|
|
2906
|
-
|
|
2907
|
-
|
|
3155
|
+
DispatchBucket[] buckets = snapshot.buckets;
|
|
3156
|
+
int bucketCount = snapshot.bucketCount;
|
|
3157
|
+
if (bucketCount == 0)
|
|
2908
3158
|
{
|
|
2909
|
-
|
|
3159
|
+
return;
|
|
2910
3160
|
}
|
|
2911
|
-
|
|
2912
|
-
|
|
3161
|
+
|
|
3162
|
+
for (int bucketIndex = 0; bucketIndex < bucketCount; ++bucketIndex)
|
|
2913
3163
|
{
|
|
2914
|
-
|
|
2915
|
-
|
|
2916
|
-
|
|
2917
|
-
|
|
2918
|
-
return;
|
|
2919
|
-
}
|
|
2920
|
-
case 2:
|
|
2921
|
-
{
|
|
2922
|
-
messageHandlers[0]
|
|
2923
|
-
.HandleGlobalSourcedBroadcastMessage(ref source, ref message, this);
|
|
2924
|
-
messageHandlers[1]
|
|
2925
|
-
.HandleGlobalSourcedBroadcastMessage(ref source, ref message, this);
|
|
2926
|
-
return;
|
|
2927
|
-
}
|
|
2928
|
-
case 3:
|
|
3164
|
+
DispatchBucket bucket = buckets[bucketIndex];
|
|
3165
|
+
DispatchEntry[] entries = bucket.entries;
|
|
3166
|
+
int entryCount = bucket.entryCount;
|
|
3167
|
+
if (entryCount == 0)
|
|
2929
3168
|
{
|
|
2930
|
-
|
|
2931
|
-
.HandleGlobalSourcedBroadcastMessage(ref source, ref message, this);
|
|
2932
|
-
messageHandlers[1]
|
|
2933
|
-
.HandleGlobalSourcedBroadcastMessage(ref source, ref message, this);
|
|
2934
|
-
messageHandlers[2]
|
|
2935
|
-
.HandleGlobalSourcedBroadcastMessage(ref source, ref message, this);
|
|
2936
|
-
return;
|
|
3169
|
+
continue;
|
|
2937
3170
|
}
|
|
2938
|
-
|
|
3171
|
+
|
|
3172
|
+
switch (entryCount)
|
|
2939
3173
|
{
|
|
2940
|
-
|
|
2941
|
-
|
|
2942
|
-
|
|
2943
|
-
|
|
2944
|
-
|
|
2945
|
-
|
|
2946
|
-
|
|
2947
|
-
|
|
2948
|
-
|
|
3174
|
+
case 1:
|
|
3175
|
+
{
|
|
3176
|
+
InvokeGlobalBroadcastEntry(ref source, ref message, entries[0]);
|
|
3177
|
+
continue;
|
|
3178
|
+
}
|
|
3179
|
+
case 2:
|
|
3180
|
+
{
|
|
3181
|
+
InvokeGlobalBroadcastEntry(ref source, ref message, entries[0]);
|
|
3182
|
+
InvokeGlobalBroadcastEntry(ref source, ref message, entries[1]);
|
|
3183
|
+
continue;
|
|
3184
|
+
}
|
|
3185
|
+
case 3:
|
|
3186
|
+
{
|
|
3187
|
+
InvokeGlobalBroadcastEntry(ref source, ref message, entries[0]);
|
|
3188
|
+
InvokeGlobalBroadcastEntry(ref source, ref message, entries[1]);
|
|
3189
|
+
InvokeGlobalBroadcastEntry(ref source, ref message, entries[2]);
|
|
3190
|
+
continue;
|
|
3191
|
+
}
|
|
3192
|
+
case 4:
|
|
3193
|
+
{
|
|
3194
|
+
InvokeGlobalBroadcastEntry(ref source, ref message, entries[0]);
|
|
3195
|
+
InvokeGlobalBroadcastEntry(ref source, ref message, entries[1]);
|
|
3196
|
+
InvokeGlobalBroadcastEntry(ref source, ref message, entries[2]);
|
|
3197
|
+
InvokeGlobalBroadcastEntry(ref source, ref message, entries[3]);
|
|
3198
|
+
continue;
|
|
3199
|
+
}
|
|
3200
|
+
case 5:
|
|
3201
|
+
{
|
|
3202
|
+
InvokeGlobalBroadcastEntry(ref source, ref message, entries[0]);
|
|
3203
|
+
InvokeGlobalBroadcastEntry(ref source, ref message, entries[1]);
|
|
3204
|
+
InvokeGlobalBroadcastEntry(ref source, ref message, entries[2]);
|
|
3205
|
+
InvokeGlobalBroadcastEntry(ref source, ref message, entries[3]);
|
|
3206
|
+
InvokeGlobalBroadcastEntry(ref source, ref message, entries[4]);
|
|
3207
|
+
continue;
|
|
3208
|
+
}
|
|
2949
3209
|
}
|
|
2950
|
-
|
|
3210
|
+
|
|
3211
|
+
for (int entryIndex = 0; entryIndex < entryCount; ++entryIndex)
|
|
2951
3212
|
{
|
|
2952
|
-
|
|
2953
|
-
.HandleGlobalSourcedBroadcastMessage(ref source, ref message, this);
|
|
2954
|
-
messageHandlers[1]
|
|
2955
|
-
.HandleGlobalSourcedBroadcastMessage(ref source, ref message, this);
|
|
2956
|
-
messageHandlers[2]
|
|
2957
|
-
.HandleGlobalSourcedBroadcastMessage(ref source, ref message, this);
|
|
2958
|
-
messageHandlers[3]
|
|
2959
|
-
.HandleGlobalSourcedBroadcastMessage(ref source, ref message, this);
|
|
2960
|
-
messageHandlers[4]
|
|
2961
|
-
.HandleGlobalSourcedBroadcastMessage(ref source, ref message, this);
|
|
2962
|
-
return;
|
|
3213
|
+
InvokeGlobalBroadcastEntry(ref source, ref message, entries[entryIndex]);
|
|
2963
3214
|
}
|
|
2964
3215
|
}
|
|
2965
|
-
|
|
2966
|
-
for (int i = 0; i < messageHandlersCount; ++i)
|
|
2967
|
-
{
|
|
2968
|
-
MessageHandler handler = messageHandlers[i];
|
|
2969
|
-
handler.HandleGlobalSourcedBroadcastMessage(ref source, ref message, this);
|
|
2970
|
-
}
|
|
2971
3216
|
}
|
|
2972
3217
|
|
|
2973
3218
|
private bool TryGetUntargetedInterceptorCaches<TMessage>(
|
|
@@ -3191,135 +3436,152 @@ namespace DxMessaging.Core.MessageBus
|
|
|
3191
3436
|
return false;
|
|
3192
3437
|
}
|
|
3193
3438
|
|
|
3194
|
-
|
|
3439
|
+
DispatchSnapshot snapshot = AcquireDispatchSnapshot<TMessage>(
|
|
3440
|
+
this,
|
|
3195
3441
|
sortedHandlers,
|
|
3442
|
+
DispatchCategory.Untargeted,
|
|
3196
3443
|
_emissionId
|
|
3197
3444
|
);
|
|
3445
|
+
DispatchBucket[] buckets = snapshot.buckets;
|
|
3446
|
+
int bucketCount = snapshot.bucketCount;
|
|
3198
3447
|
|
|
3199
|
-
|
|
3200
|
-
switch (handlerListCount)
|
|
3448
|
+
if (bucketCount == 0)
|
|
3201
3449
|
{
|
|
3202
|
-
|
|
3203
|
-
|
|
3204
|
-
|
|
3205
|
-
|
|
3206
|
-
|
|
3207
|
-
|
|
3208
|
-
|
|
3209
|
-
|
|
3210
|
-
|
|
3211
|
-
|
|
3212
|
-
|
|
3213
|
-
RunUntargetedBroadcast(ref message, entry.Key, entry.Value);
|
|
3214
|
-
return true;
|
|
3215
|
-
}
|
|
3216
|
-
case 3:
|
|
3450
|
+
return false;
|
|
3451
|
+
}
|
|
3452
|
+
|
|
3453
|
+
bool invoked = false;
|
|
3454
|
+
|
|
3455
|
+
for (int i = 0; i < bucketCount; ++i)
|
|
3456
|
+
{
|
|
3457
|
+
DispatchBucket bucket = buckets[i];
|
|
3458
|
+
DispatchEntry[] entries = bucket.entries;
|
|
3459
|
+
int entryCount = bucket.entryCount;
|
|
3460
|
+
if (entryCount == 0)
|
|
3217
3461
|
{
|
|
3218
|
-
|
|
3219
|
-
RunUntargetedBroadcast(ref message, entry.Key, entry.Value);
|
|
3220
|
-
entry = handlerList[1];
|
|
3221
|
-
RunUntargetedBroadcast(ref message, entry.Key, entry.Value);
|
|
3222
|
-
entry = handlerList[2];
|
|
3223
|
-
RunUntargetedBroadcast(ref message, entry.Key, entry.Value);
|
|
3224
|
-
return true;
|
|
3462
|
+
continue;
|
|
3225
3463
|
}
|
|
3226
|
-
|
|
3464
|
+
|
|
3465
|
+
invoked = true;
|
|
3466
|
+
int priority = bucket.priority;
|
|
3467
|
+
switch (entryCount)
|
|
3227
3468
|
{
|
|
3228
|
-
|
|
3229
|
-
|
|
3230
|
-
|
|
3231
|
-
|
|
3232
|
-
|
|
3233
|
-
|
|
3234
|
-
|
|
3235
|
-
|
|
3236
|
-
|
|
3469
|
+
case 1:
|
|
3470
|
+
{
|
|
3471
|
+
InvokeUntargetedEntry(ref message, priority, entries[0]);
|
|
3472
|
+
continue;
|
|
3473
|
+
}
|
|
3474
|
+
case 2:
|
|
3475
|
+
{
|
|
3476
|
+
InvokeUntargetedEntry(ref message, priority, entries[0]);
|
|
3477
|
+
InvokeUntargetedEntry(ref message, priority, entries[1]);
|
|
3478
|
+
continue;
|
|
3479
|
+
}
|
|
3480
|
+
case 3:
|
|
3481
|
+
{
|
|
3482
|
+
InvokeUntargetedEntry(ref message, priority, entries[0]);
|
|
3483
|
+
InvokeUntargetedEntry(ref message, priority, entries[1]);
|
|
3484
|
+
InvokeUntargetedEntry(ref message, priority, entries[2]);
|
|
3485
|
+
continue;
|
|
3486
|
+
}
|
|
3487
|
+
case 4:
|
|
3488
|
+
{
|
|
3489
|
+
InvokeUntargetedEntry(ref message, priority, entries[0]);
|
|
3490
|
+
InvokeUntargetedEntry(ref message, priority, entries[1]);
|
|
3491
|
+
InvokeUntargetedEntry(ref message, priority, entries[2]);
|
|
3492
|
+
InvokeUntargetedEntry(ref message, priority, entries[3]);
|
|
3493
|
+
continue;
|
|
3494
|
+
}
|
|
3495
|
+
case 5:
|
|
3496
|
+
{
|
|
3497
|
+
InvokeUntargetedEntry(ref message, priority, entries[0]);
|
|
3498
|
+
InvokeUntargetedEntry(ref message, priority, entries[1]);
|
|
3499
|
+
InvokeUntargetedEntry(ref message, priority, entries[2]);
|
|
3500
|
+
InvokeUntargetedEntry(ref message, priority, entries[3]);
|
|
3501
|
+
InvokeUntargetedEntry(ref message, priority, entries[4]);
|
|
3502
|
+
continue;
|
|
3503
|
+
}
|
|
3237
3504
|
}
|
|
3238
|
-
|
|
3505
|
+
|
|
3506
|
+
for (int handlerIndex = 0; handlerIndex < entryCount; ++handlerIndex)
|
|
3239
3507
|
{
|
|
3240
|
-
|
|
3241
|
-
RunUntargetedBroadcast(ref message, entry.Key, entry.Value);
|
|
3242
|
-
entry = handlerList[1];
|
|
3243
|
-
RunUntargetedBroadcast(ref message, entry.Key, entry.Value);
|
|
3244
|
-
entry = handlerList[2];
|
|
3245
|
-
RunUntargetedBroadcast(ref message, entry.Key, entry.Value);
|
|
3246
|
-
entry = handlerList[3];
|
|
3247
|
-
RunUntargetedBroadcast(ref message, entry.Key, entry.Value);
|
|
3248
|
-
entry = handlerList[4];
|
|
3249
|
-
RunUntargetedBroadcast(ref message, entry.Key, entry.Value);
|
|
3250
|
-
return true;
|
|
3508
|
+
InvokeUntargetedEntry(ref message, priority, entries[handlerIndex]);
|
|
3251
3509
|
}
|
|
3252
3510
|
}
|
|
3253
3511
|
|
|
3254
|
-
|
|
3512
|
+
return invoked;
|
|
3513
|
+
}
|
|
3514
|
+
|
|
3515
|
+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
3516
|
+
private void InvokeUntargetedEntry<TMessage>(
|
|
3517
|
+
ref TMessage message,
|
|
3518
|
+
int priority,
|
|
3519
|
+
DispatchEntry entry
|
|
3520
|
+
)
|
|
3521
|
+
where TMessage : IMessage
|
|
3522
|
+
{
|
|
3523
|
+
MessageHandler messageHandler = entry.handler;
|
|
3524
|
+
if (!messageHandler.active)
|
|
3255
3525
|
{
|
|
3256
|
-
|
|
3257
|
-
RunUntargetedBroadcast(ref message, entry.Key, entry.Value);
|
|
3526
|
+
return;
|
|
3258
3527
|
}
|
|
3259
|
-
|
|
3528
|
+
|
|
3529
|
+
MessageHandler.UntargetedDispatchLink<TMessage> link =
|
|
3530
|
+
Unsafe.As<MessageHandler.UntargetedDispatchLink<TMessage>>(entry.dispatch);
|
|
3531
|
+
link.Invoke(messageHandler, ref message, priority, _emissionId);
|
|
3260
3532
|
}
|
|
3261
3533
|
|
|
3262
|
-
|
|
3534
|
+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
3535
|
+
private void InvokeUntargetedPostEntry<TMessage>(
|
|
3263
3536
|
ref TMessage message,
|
|
3264
3537
|
int priority,
|
|
3265
|
-
|
|
3538
|
+
DispatchEntry entry
|
|
3266
3539
|
)
|
|
3267
|
-
where TMessage :
|
|
3540
|
+
where TMessage : IUntargetedMessage
|
|
3268
3541
|
{
|
|
3269
|
-
|
|
3542
|
+
MessageHandler handler = entry.handler;
|
|
3543
|
+
if (!handler.active)
|
|
3270
3544
|
{
|
|
3271
3545
|
return;
|
|
3272
3546
|
}
|
|
3273
|
-
|
|
3274
|
-
|
|
3275
|
-
|
|
3547
|
+
|
|
3548
|
+
MessageHandler.UntargetedPostDispatchLink<TMessage> link =
|
|
3549
|
+
Unsafe.As<MessageHandler.UntargetedPostDispatchLink<TMessage>>(entry.dispatch);
|
|
3550
|
+
link.Invoke(handler, ref message, priority, _emissionId);
|
|
3551
|
+
}
|
|
3552
|
+
|
|
3553
|
+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
3554
|
+
private void PrefreezeUntargetedPostSnapshot<TMessage>(DispatchSnapshot snapshot)
|
|
3555
|
+
where TMessage : IUntargetedMessage
|
|
3556
|
+
{
|
|
3557
|
+
if (snapshot.IsEmpty)
|
|
3276
3558
|
{
|
|
3277
3559
|
return;
|
|
3278
3560
|
}
|
|
3279
|
-
|
|
3561
|
+
|
|
3562
|
+
DispatchBucket[] buckets = snapshot.buckets;
|
|
3563
|
+
int bucketCount = snapshot.bucketCount;
|
|
3564
|
+
for (int bucketIndex = 0; bucketIndex < bucketCount; ++bucketIndex)
|
|
3280
3565
|
{
|
|
3281
|
-
|
|
3282
|
-
|
|
3283
|
-
|
|
3284
|
-
|
|
3285
|
-
}
|
|
3286
|
-
case 2:
|
|
3287
|
-
{
|
|
3288
|
-
messageHandlers[0].HandleUntargetedMessage(ref message, this, priority);
|
|
3289
|
-
messageHandlers[1].HandleUntargetedMessage(ref message, this, priority);
|
|
3290
|
-
return;
|
|
3291
|
-
}
|
|
3292
|
-
case 3:
|
|
3293
|
-
{
|
|
3294
|
-
messageHandlers[0].HandleUntargetedMessage(ref message, this, priority);
|
|
3295
|
-
messageHandlers[1].HandleUntargetedMessage(ref message, this, priority);
|
|
3296
|
-
messageHandlers[2].HandleUntargetedMessage(ref message, this, priority);
|
|
3297
|
-
return;
|
|
3298
|
-
}
|
|
3299
|
-
case 4:
|
|
3566
|
+
DispatchBucket bucket = buckets[bucketIndex];
|
|
3567
|
+
DispatchEntry[] entries = bucket.entries;
|
|
3568
|
+
int entryCount = bucket.entryCount;
|
|
3569
|
+
if (entryCount == 0)
|
|
3300
3570
|
{
|
|
3301
|
-
|
|
3302
|
-
messageHandlers[1].HandleUntargetedMessage(ref message, this, priority);
|
|
3303
|
-
messageHandlers[2].HandleUntargetedMessage(ref message, this, priority);
|
|
3304
|
-
messageHandlers[3].HandleUntargetedMessage(ref message, this, priority);
|
|
3305
|
-
return;
|
|
3571
|
+
continue;
|
|
3306
3572
|
}
|
|
3307
|
-
|
|
3573
|
+
|
|
3574
|
+
int priority = bucket.priority;
|
|
3575
|
+
for (int entryIndex = 0; entryIndex < entryCount; ++entryIndex)
|
|
3308
3576
|
{
|
|
3309
|
-
|
|
3310
|
-
|
|
3311
|
-
|
|
3312
|
-
|
|
3313
|
-
|
|
3314
|
-
|
|
3577
|
+
entries[entryIndex]
|
|
3578
|
+
.handler.PrefreezeUntargetedPostProcessorsForEmission<TMessage>(
|
|
3579
|
+
priority,
|
|
3580
|
+
_emissionId,
|
|
3581
|
+
this
|
|
3582
|
+
);
|
|
3315
3583
|
}
|
|
3316
3584
|
}
|
|
3317
|
-
|
|
3318
|
-
for (int i = 0; i < messageHandlersCount; ++i)
|
|
3319
|
-
{
|
|
3320
|
-
MessageHandler handler = messageHandlers[i];
|
|
3321
|
-
handler.HandleUntargetedMessage(ref message, this, priority);
|
|
3322
|
-
}
|
|
3323
3585
|
}
|
|
3324
3586
|
|
|
3325
3587
|
private bool InternalTargetedWithoutTargetingBroadcast<TMessage>(
|
|
@@ -3336,73 +3598,162 @@ namespace DxMessaging.Core.MessageBus
|
|
|
3336
3598
|
return false;
|
|
3337
3599
|
}
|
|
3338
3600
|
|
|
3339
|
-
|
|
3601
|
+
DispatchSnapshot snapshot = AcquireDispatchSnapshot<TMessage>(
|
|
3602
|
+
this,
|
|
3340
3603
|
sortedHandlers,
|
|
3604
|
+
DispatchCategory.TargetedWithoutTargeting,
|
|
3341
3605
|
_emissionId
|
|
3342
3606
|
);
|
|
3607
|
+
DispatchBucket[] buckets = snapshot.buckets;
|
|
3608
|
+
int bucketCount = snapshot.bucketCount;
|
|
3609
|
+
bool invoked = false;
|
|
3343
3610
|
|
|
3344
|
-
int
|
|
3345
|
-
switch (handlerListCount)
|
|
3611
|
+
for (int bucketIndex = 0; bucketIndex < bucketCount; ++bucketIndex)
|
|
3346
3612
|
{
|
|
3347
|
-
|
|
3348
|
-
|
|
3349
|
-
|
|
3350
|
-
|
|
3351
|
-
return true;
|
|
3352
|
-
}
|
|
3353
|
-
case 2:
|
|
3354
|
-
{
|
|
3355
|
-
KeyValuePair<int, HandlerCache> entry = handlerList[0];
|
|
3356
|
-
RunTargetedWithoutTargeting(ref target, ref message, entry.Key, entry.Value);
|
|
3357
|
-
entry = handlerList[1];
|
|
3358
|
-
RunTargetedWithoutTargeting(ref target, ref message, entry.Key, entry.Value);
|
|
3359
|
-
return true;
|
|
3360
|
-
}
|
|
3361
|
-
case 3:
|
|
3613
|
+
DispatchBucket bucket = buckets[bucketIndex];
|
|
3614
|
+
DispatchEntry[] entries = bucket.entries;
|
|
3615
|
+
int entryCount = bucket.entryCount;
|
|
3616
|
+
if (entryCount == 0)
|
|
3362
3617
|
{
|
|
3363
|
-
|
|
3364
|
-
RunTargetedWithoutTargeting(ref target, ref message, entry.Key, entry.Value);
|
|
3365
|
-
entry = handlerList[1];
|
|
3366
|
-
RunTargetedWithoutTargeting(ref target, ref message, entry.Key, entry.Value);
|
|
3367
|
-
entry = handlerList[2];
|
|
3368
|
-
RunTargetedWithoutTargeting(ref target, ref message, entry.Key, entry.Value);
|
|
3369
|
-
return true;
|
|
3618
|
+
continue;
|
|
3370
3619
|
}
|
|
3371
|
-
|
|
3620
|
+
|
|
3621
|
+
invoked = true;
|
|
3622
|
+
int priority = bucket.priority;
|
|
3623
|
+
if (entries[0].prefreeze.kind == PrefreezeKindTargetedWithoutTargetingHandlers)
|
|
3372
3624
|
{
|
|
3373
|
-
|
|
3374
|
-
|
|
3375
|
-
|
|
3376
|
-
|
|
3377
|
-
|
|
3378
|
-
RunTargetedWithoutTargeting(ref target, ref message, entry.Key, entry.Value);
|
|
3379
|
-
entry = handlerList[3];
|
|
3380
|
-
RunTargetedWithoutTargeting(ref target, ref message, entry.Key, entry.Value);
|
|
3381
|
-
return true;
|
|
3625
|
+
PrefreezeTargetedWithoutTargetingEntries<TMessage>(
|
|
3626
|
+
entries,
|
|
3627
|
+
entryCount,
|
|
3628
|
+
priority
|
|
3629
|
+
);
|
|
3382
3630
|
}
|
|
3383
|
-
|
|
3631
|
+
switch (entryCount)
|
|
3384
3632
|
{
|
|
3385
|
-
|
|
3386
|
-
|
|
3387
|
-
|
|
3388
|
-
|
|
3389
|
-
|
|
3390
|
-
|
|
3391
|
-
|
|
3392
|
-
|
|
3393
|
-
|
|
3394
|
-
|
|
3395
|
-
|
|
3396
|
-
|
|
3397
|
-
|
|
3633
|
+
case 1:
|
|
3634
|
+
{
|
|
3635
|
+
InvokeTargetedWithoutTargetingEntry(
|
|
3636
|
+
ref target,
|
|
3637
|
+
ref message,
|
|
3638
|
+
priority,
|
|
3639
|
+
entries[0]
|
|
3640
|
+
);
|
|
3641
|
+
continue;
|
|
3642
|
+
}
|
|
3643
|
+
case 2:
|
|
3644
|
+
{
|
|
3645
|
+
InvokeTargetedWithoutTargetingEntry(
|
|
3646
|
+
ref target,
|
|
3647
|
+
ref message,
|
|
3648
|
+
priority,
|
|
3649
|
+
entries[0]
|
|
3650
|
+
);
|
|
3651
|
+
InvokeTargetedWithoutTargetingEntry(
|
|
3652
|
+
ref target,
|
|
3653
|
+
ref message,
|
|
3654
|
+
priority,
|
|
3655
|
+
entries[1]
|
|
3656
|
+
);
|
|
3657
|
+
continue;
|
|
3658
|
+
}
|
|
3659
|
+
case 3:
|
|
3660
|
+
{
|
|
3661
|
+
InvokeTargetedWithoutTargetingEntry(
|
|
3662
|
+
ref target,
|
|
3663
|
+
ref message,
|
|
3664
|
+
priority,
|
|
3665
|
+
entries[0]
|
|
3666
|
+
);
|
|
3667
|
+
InvokeTargetedWithoutTargetingEntry(
|
|
3668
|
+
ref target,
|
|
3669
|
+
ref message,
|
|
3670
|
+
priority,
|
|
3671
|
+
entries[1]
|
|
3672
|
+
);
|
|
3673
|
+
InvokeTargetedWithoutTargetingEntry(
|
|
3674
|
+
ref target,
|
|
3675
|
+
ref message,
|
|
3676
|
+
priority,
|
|
3677
|
+
entries[2]
|
|
3678
|
+
);
|
|
3679
|
+
continue;
|
|
3680
|
+
}
|
|
3681
|
+
case 4:
|
|
3682
|
+
{
|
|
3683
|
+
InvokeTargetedWithoutTargetingEntry(
|
|
3684
|
+
ref target,
|
|
3685
|
+
ref message,
|
|
3686
|
+
priority,
|
|
3687
|
+
entries[0]
|
|
3688
|
+
);
|
|
3689
|
+
InvokeTargetedWithoutTargetingEntry(
|
|
3690
|
+
ref target,
|
|
3691
|
+
ref message,
|
|
3692
|
+
priority,
|
|
3693
|
+
entries[1]
|
|
3694
|
+
);
|
|
3695
|
+
InvokeTargetedWithoutTargetingEntry(
|
|
3696
|
+
ref target,
|
|
3697
|
+
ref message,
|
|
3698
|
+
priority,
|
|
3699
|
+
entries[2]
|
|
3700
|
+
);
|
|
3701
|
+
InvokeTargetedWithoutTargetingEntry(
|
|
3702
|
+
ref target,
|
|
3703
|
+
ref message,
|
|
3704
|
+
priority,
|
|
3705
|
+
entries[3]
|
|
3706
|
+
);
|
|
3707
|
+
continue;
|
|
3708
|
+
}
|
|
3709
|
+
case 5:
|
|
3710
|
+
{
|
|
3711
|
+
InvokeTargetedWithoutTargetingEntry(
|
|
3712
|
+
ref target,
|
|
3713
|
+
ref message,
|
|
3714
|
+
priority,
|
|
3715
|
+
entries[0]
|
|
3716
|
+
);
|
|
3717
|
+
InvokeTargetedWithoutTargetingEntry(
|
|
3718
|
+
ref target,
|
|
3719
|
+
ref message,
|
|
3720
|
+
priority,
|
|
3721
|
+
entries[1]
|
|
3722
|
+
);
|
|
3723
|
+
InvokeTargetedWithoutTargetingEntry(
|
|
3724
|
+
ref target,
|
|
3725
|
+
ref message,
|
|
3726
|
+
priority,
|
|
3727
|
+
entries[2]
|
|
3728
|
+
);
|
|
3729
|
+
InvokeTargetedWithoutTargetingEntry(
|
|
3730
|
+
ref target,
|
|
3731
|
+
ref message,
|
|
3732
|
+
priority,
|
|
3733
|
+
entries[3]
|
|
3734
|
+
);
|
|
3735
|
+
InvokeTargetedWithoutTargetingEntry(
|
|
3736
|
+
ref target,
|
|
3737
|
+
ref message,
|
|
3738
|
+
priority,
|
|
3739
|
+
entries[4]
|
|
3740
|
+
);
|
|
3741
|
+
continue;
|
|
3742
|
+
}
|
|
3743
|
+
}
|
|
3398
3744
|
|
|
3399
|
-
|
|
3400
|
-
|
|
3401
|
-
|
|
3402
|
-
|
|
3745
|
+
for (int entryIndex = 0; entryIndex < entryCount; ++entryIndex)
|
|
3746
|
+
{
|
|
3747
|
+
InvokeTargetedWithoutTargetingEntry(
|
|
3748
|
+
ref target,
|
|
3749
|
+
ref message,
|
|
3750
|
+
priority,
|
|
3751
|
+
entries[entryIndex]
|
|
3752
|
+
);
|
|
3753
|
+
}
|
|
3403
3754
|
}
|
|
3404
3755
|
|
|
3405
|
-
return
|
|
3756
|
+
return invoked;
|
|
3406
3757
|
}
|
|
3407
3758
|
|
|
3408
3759
|
private void RunTargetedWithoutTargeting<TMessage>(
|
|
@@ -3754,6 +4105,8 @@ namespace DxMessaging.Core.MessageBus
|
|
|
3754
4105
|
|
|
3755
4106
|
InstanceId handlerOwnerId = messageHandler.owner;
|
|
3756
4107
|
HandlerCache<int, HandlerCache> handlers = sinks.GetOrAdd<T>();
|
|
4108
|
+
HandlerCache<int, HandlerCache> capturedHandlers = handlers;
|
|
4109
|
+
DispatchCategory dispatchCategory = GetDispatchCategory(registrationMethod);
|
|
3757
4110
|
|
|
3758
4111
|
if (!handlers.handlers.TryGetValue(priority, out HandlerCache cache))
|
|
3759
4112
|
{
|
|
@@ -3775,6 +4128,7 @@ namespace DxMessaging.Core.MessageBus
|
|
|
3775
4128
|
int count = handler.GetValueOrDefault(messageHandler, 0);
|
|
3776
4129
|
|
|
3777
4130
|
handler[messageHandler] = count + 1;
|
|
4131
|
+
StageDispatchSnapshot<T>(this, capturedHandlers, dispatchCategory);
|
|
3778
4132
|
Type type = typeof(T);
|
|
3779
4133
|
_log.Log(
|
|
3780
4134
|
new MessagingRegistration(
|
|
@@ -3854,6 +4208,7 @@ namespace DxMessaging.Core.MessageBus
|
|
|
3854
4208
|
{
|
|
3855
4209
|
handler[messageHandler] = count - 1;
|
|
3856
4210
|
}
|
|
4211
|
+
StageDispatchSnapshot<T>(this, handlers, dispatchCategory);
|
|
3857
4212
|
};
|
|
3858
4213
|
}
|
|
3859
4214
|
|
|
@@ -3873,6 +4228,7 @@ namespace DxMessaging.Core.MessageBus
|
|
|
3873
4228
|
|
|
3874
4229
|
Dictionary<InstanceId, HandlerCache<int, HandlerCache>> broadcastHandlers =
|
|
3875
4230
|
sinks.GetOrAdd<T>();
|
|
4231
|
+
DispatchCategory dispatchCategory = GetDispatchCategory(registrationMethod);
|
|
3876
4232
|
|
|
3877
4233
|
if (
|
|
3878
4234
|
!broadcastHandlers.TryGetValue(
|
|
@@ -3915,6 +4271,7 @@ namespace DxMessaging.Core.MessageBus
|
|
|
3915
4271
|
registrationMethod
|
|
3916
4272
|
)
|
|
3917
4273
|
);
|
|
4274
|
+
StageDispatchSnapshot<T>(this, handlers, dispatchCategory);
|
|
3918
4275
|
|
|
3919
4276
|
return () =>
|
|
3920
4277
|
{
|
|
@@ -3990,9 +4347,858 @@ namespace DxMessaging.Core.MessageBus
|
|
|
3990
4347
|
{
|
|
3991
4348
|
handler[messageHandler] = count - 1;
|
|
3992
4349
|
}
|
|
4350
|
+
StageDispatchSnapshot<T>(this, handlers, dispatchCategory);
|
|
3993
4351
|
};
|
|
3994
4352
|
}
|
|
3995
4353
|
|
|
4354
|
+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
4355
|
+
private static void StageDispatchSnapshot<TMessage>(
|
|
4356
|
+
MessageBus messageBus,
|
|
4357
|
+
HandlerCache<int, HandlerCache> handlers,
|
|
4358
|
+
DispatchCategory category
|
|
4359
|
+
)
|
|
4360
|
+
where TMessage : IMessage
|
|
4361
|
+
{
|
|
4362
|
+
if (handlers == null || category == DispatchCategory.None)
|
|
4363
|
+
{
|
|
4364
|
+
return;
|
|
4365
|
+
}
|
|
4366
|
+
|
|
4367
|
+
HandlerCache<int, HandlerCache>.DispatchState state = handlers.GetOrCreateDispatchState(
|
|
4368
|
+
category
|
|
4369
|
+
);
|
|
4370
|
+
if (state.hasPending)
|
|
4371
|
+
{
|
|
4372
|
+
ReleaseSnapshot(ref state.pending);
|
|
4373
|
+
}
|
|
4374
|
+
state.hasPending = true;
|
|
4375
|
+
state.pendingDirty = true;
|
|
4376
|
+
}
|
|
4377
|
+
|
|
4378
|
+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
4379
|
+
private static void StageGlobalDispatchSnapshot<TMessage>(
|
|
4380
|
+
MessageBus messageBus,
|
|
4381
|
+
HandlerCache handlers,
|
|
4382
|
+
DispatchCategory category
|
|
4383
|
+
)
|
|
4384
|
+
where TMessage : IMessage
|
|
4385
|
+
{
|
|
4386
|
+
if (handlers == null || category == DispatchCategory.None)
|
|
4387
|
+
{
|
|
4388
|
+
return;
|
|
4389
|
+
}
|
|
4390
|
+
|
|
4391
|
+
HandlerCache.DispatchState state = handlers.GetOrCreateDispatchState(category);
|
|
4392
|
+
if (state.hasPending)
|
|
4393
|
+
{
|
|
4394
|
+
ReleaseSnapshot(ref state.pending);
|
|
4395
|
+
}
|
|
4396
|
+
|
|
4397
|
+
state.hasPending = true;
|
|
4398
|
+
state.pendingDirty = true;
|
|
4399
|
+
}
|
|
4400
|
+
|
|
4401
|
+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
4402
|
+
private static void ReleaseSnapshot(ref DispatchSnapshot snapshot)
|
|
4403
|
+
{
|
|
4404
|
+
if (snapshot == null)
|
|
4405
|
+
{
|
|
4406
|
+
return;
|
|
4407
|
+
}
|
|
4408
|
+
|
|
4409
|
+
snapshot.Release();
|
|
4410
|
+
snapshot = DispatchSnapshot.Empty;
|
|
4411
|
+
}
|
|
4412
|
+
|
|
4413
|
+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
4414
|
+
private static DispatchSnapshot AcquireDispatchSnapshot<TMessage>(
|
|
4415
|
+
MessageBus messageBus,
|
|
4416
|
+
HandlerCache<int, HandlerCache> handlers,
|
|
4417
|
+
DispatchCategory category,
|
|
4418
|
+
long emissionId
|
|
4419
|
+
)
|
|
4420
|
+
where TMessage : IMessage
|
|
4421
|
+
{
|
|
4422
|
+
if (handlers == null)
|
|
4423
|
+
{
|
|
4424
|
+
return DispatchSnapshot.Empty;
|
|
4425
|
+
}
|
|
4426
|
+
|
|
4427
|
+
if (category == DispatchCategory.None)
|
|
4428
|
+
{
|
|
4429
|
+
return DispatchSnapshot.Empty;
|
|
4430
|
+
}
|
|
4431
|
+
|
|
4432
|
+
HandlerCache<int, HandlerCache>.DispatchState state = handlers.GetOrCreateDispatchState(
|
|
4433
|
+
category
|
|
4434
|
+
);
|
|
4435
|
+
|
|
4436
|
+
bool hasHandlers = handlers.handlers.Count > 0;
|
|
4437
|
+
|
|
4438
|
+
if (state.hasPending)
|
|
4439
|
+
{
|
|
4440
|
+
if (state.pendingDirty || (hasHandlers && state.pending.IsEmpty))
|
|
4441
|
+
{
|
|
4442
|
+
ReleaseSnapshot(ref state.pending);
|
|
4443
|
+
state.pending = hasHandlers
|
|
4444
|
+
? BuildDispatchSnapshot<TMessage>(messageBus, handlers, category)
|
|
4445
|
+
: DispatchSnapshot.Empty;
|
|
4446
|
+
|
|
4447
|
+
state.pendingDirty = false;
|
|
4448
|
+
}
|
|
4449
|
+
}
|
|
4450
|
+
else if (state.active.IsEmpty && hasHandlers)
|
|
4451
|
+
{
|
|
4452
|
+
ReleaseSnapshot(ref state.pending);
|
|
4453
|
+
state.pending = BuildDispatchSnapshot<TMessage>(messageBus, handlers, category);
|
|
4454
|
+
state.hasPending = true;
|
|
4455
|
+
state.pendingDirty = false;
|
|
4456
|
+
}
|
|
4457
|
+
|
|
4458
|
+
if (state.snapshotEmissionId != emissionId)
|
|
4459
|
+
{
|
|
4460
|
+
if (state.hasPending)
|
|
4461
|
+
{
|
|
4462
|
+
ReleaseSnapshot(ref state.active);
|
|
4463
|
+
if (state.pendingDirty || (hasHandlers && state.pending.IsEmpty))
|
|
4464
|
+
{
|
|
4465
|
+
ReleaseSnapshot(ref state.pending);
|
|
4466
|
+
state.pending = hasHandlers
|
|
4467
|
+
? BuildDispatchSnapshot<TMessage>(messageBus, handlers, category)
|
|
4468
|
+
: DispatchSnapshot.Empty;
|
|
4469
|
+
|
|
4470
|
+
state.pendingDirty = false;
|
|
4471
|
+
}
|
|
4472
|
+
|
|
4473
|
+
state.active = state.pending ?? DispatchSnapshot.Empty;
|
|
4474
|
+
state.pending = DispatchSnapshot.Empty;
|
|
4475
|
+
state.hasPending = false;
|
|
4476
|
+
state.pendingDirty = false;
|
|
4477
|
+
}
|
|
4478
|
+
else if (!hasHandlers && !state.active.IsEmpty)
|
|
4479
|
+
{
|
|
4480
|
+
ReleaseSnapshot(ref state.active);
|
|
4481
|
+
state.active = DispatchSnapshot.Empty;
|
|
4482
|
+
}
|
|
4483
|
+
|
|
4484
|
+
state.snapshotEmissionId = emissionId;
|
|
4485
|
+
}
|
|
4486
|
+
|
|
4487
|
+
return state.active;
|
|
4488
|
+
}
|
|
4489
|
+
|
|
4490
|
+
private static DispatchSnapshot BuildDispatchSnapshot<TMessage>(
|
|
4491
|
+
MessageBus messageBus,
|
|
4492
|
+
HandlerCache<int, HandlerCache> handlers,
|
|
4493
|
+
DispatchCategory category
|
|
4494
|
+
)
|
|
4495
|
+
where TMessage : IMessage
|
|
4496
|
+
{
|
|
4497
|
+
if (handlers == null || handlers.order.Count == 0)
|
|
4498
|
+
{
|
|
4499
|
+
return DispatchSnapshot.Empty;
|
|
4500
|
+
}
|
|
4501
|
+
|
|
4502
|
+
List<int> orderedPriorities = handlers.order;
|
|
4503
|
+
int priorityCount = orderedPriorities.Count;
|
|
4504
|
+
DispatchBucket[] buckets = DispatchBucketPool.Rent(priorityCount);
|
|
4505
|
+
|
|
4506
|
+
for (int i = 0; i < priorityCount; ++i)
|
|
4507
|
+
{
|
|
4508
|
+
int priority = orderedPriorities[i];
|
|
4509
|
+
if (
|
|
4510
|
+
!handlers.handlers.TryGetValue(priority, out HandlerCache cache)
|
|
4511
|
+
|| cache == null
|
|
4512
|
+
)
|
|
4513
|
+
{
|
|
4514
|
+
buckets[i] = DispatchBucket.CreateEmpty(priority);
|
|
4515
|
+
continue;
|
|
4516
|
+
}
|
|
4517
|
+
|
|
4518
|
+
Dictionary<MessageHandler, int> handlerLookup = cache.handlers;
|
|
4519
|
+
if (handlerLookup == null || handlerLookup.Count == 0)
|
|
4520
|
+
{
|
|
4521
|
+
buckets[i] = DispatchBucket.CreateEmpty(priority);
|
|
4522
|
+
continue;
|
|
4523
|
+
}
|
|
4524
|
+
|
|
4525
|
+
int entryCount = handlerLookup.Count;
|
|
4526
|
+
DispatchEntry[] entries = DispatchEntryPool.Rent(entryCount);
|
|
4527
|
+
FillDispatchEntries<TMessage>(
|
|
4528
|
+
messageBus,
|
|
4529
|
+
handlerLookup,
|
|
4530
|
+
category,
|
|
4531
|
+
priority,
|
|
4532
|
+
entries
|
|
4533
|
+
);
|
|
4534
|
+
buckets[i] = new DispatchBucket(priority, entries, entryCount, pooledEntries: true);
|
|
4535
|
+
}
|
|
4536
|
+
|
|
4537
|
+
return new DispatchSnapshot(buckets, priorityCount, pooled: true);
|
|
4538
|
+
}
|
|
4539
|
+
|
|
4540
|
+
private static void FillDispatchEntries<TMessage>(
|
|
4541
|
+
MessageBus messageBus,
|
|
4542
|
+
Dictionary<MessageHandler, int> handlerLookup,
|
|
4543
|
+
DispatchCategory category,
|
|
4544
|
+
int priority,
|
|
4545
|
+
DispatchEntry[] entries
|
|
4546
|
+
)
|
|
4547
|
+
where TMessage : IMessage
|
|
4548
|
+
{
|
|
4549
|
+
if (handlerLookup == null)
|
|
4550
|
+
{
|
|
4551
|
+
return;
|
|
4552
|
+
}
|
|
4553
|
+
|
|
4554
|
+
PrefreezeDescriptor prefreeze = CreatePrefreezeDescriptor(category, priority);
|
|
4555
|
+
int index = 0;
|
|
4556
|
+
foreach (KeyValuePair<MessageHandler, int> kvp in handlerLookup)
|
|
4557
|
+
{
|
|
4558
|
+
MessageHandler messageHandler = kvp.Key;
|
|
4559
|
+
object dispatch = GetDispatchLink<TMessage>(messageBus, messageHandler, category);
|
|
4560
|
+
entries[index++] = new DispatchEntry(messageHandler, dispatch, prefreeze);
|
|
4561
|
+
}
|
|
4562
|
+
if (index < entries.Length)
|
|
4563
|
+
{
|
|
4564
|
+
Array.Clear(entries, index, entries.Length - index);
|
|
4565
|
+
}
|
|
4566
|
+
}
|
|
4567
|
+
|
|
4568
|
+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
4569
|
+
private static DispatchSnapshot AcquireGlobalDispatchSnapshot<TMessage>(
|
|
4570
|
+
MessageBus messageBus,
|
|
4571
|
+
HandlerCache handlers,
|
|
4572
|
+
DispatchCategory category,
|
|
4573
|
+
long emissionId
|
|
4574
|
+
)
|
|
4575
|
+
where TMessage : IMessage
|
|
4576
|
+
{
|
|
4577
|
+
if (handlers == null || category == DispatchCategory.None)
|
|
4578
|
+
{
|
|
4579
|
+
return DispatchSnapshot.Empty;
|
|
4580
|
+
}
|
|
4581
|
+
|
|
4582
|
+
HandlerCache.DispatchState state = handlers.GetOrCreateDispatchState(category);
|
|
4583
|
+
bool hasHandlers = handlers.handlers.Count > 0;
|
|
4584
|
+
|
|
4585
|
+
if (state.hasPending)
|
|
4586
|
+
{
|
|
4587
|
+
if (state.pendingDirty || (hasHandlers && state.pending.IsEmpty))
|
|
4588
|
+
{
|
|
4589
|
+
ReleaseSnapshot(ref state.pending);
|
|
4590
|
+
if (hasHandlers)
|
|
4591
|
+
{
|
|
4592
|
+
state.pending = BuildGlobalDispatchSnapshot<TMessage>(
|
|
4593
|
+
messageBus,
|
|
4594
|
+
handlers,
|
|
4595
|
+
category
|
|
4596
|
+
);
|
|
4597
|
+
}
|
|
4598
|
+
else
|
|
4599
|
+
{
|
|
4600
|
+
state.pending = DispatchSnapshot.Empty;
|
|
4601
|
+
}
|
|
4602
|
+
|
|
4603
|
+
state.pendingDirty = false;
|
|
4604
|
+
}
|
|
4605
|
+
}
|
|
4606
|
+
else if (state.active.IsEmpty && hasHandlers)
|
|
4607
|
+
{
|
|
4608
|
+
ReleaseSnapshot(ref state.pending);
|
|
4609
|
+
state.pending = BuildGlobalDispatchSnapshot<TMessage>(
|
|
4610
|
+
messageBus,
|
|
4611
|
+
handlers,
|
|
4612
|
+
category
|
|
4613
|
+
);
|
|
4614
|
+
state.hasPending = true;
|
|
4615
|
+
state.pendingDirty = false;
|
|
4616
|
+
}
|
|
4617
|
+
|
|
4618
|
+
if (state.snapshotEmissionId != emissionId)
|
|
4619
|
+
{
|
|
4620
|
+
if (state.hasPending)
|
|
4621
|
+
{
|
|
4622
|
+
ReleaseSnapshot(ref state.active);
|
|
4623
|
+
if (state.pendingDirty || (hasHandlers && state.pending.IsEmpty))
|
|
4624
|
+
{
|
|
4625
|
+
ReleaseSnapshot(ref state.pending);
|
|
4626
|
+
state.pending = hasHandlers
|
|
4627
|
+
? BuildGlobalDispatchSnapshot<TMessage>(messageBus, handlers, category)
|
|
4628
|
+
: DispatchSnapshot.Empty;
|
|
4629
|
+
|
|
4630
|
+
state.pendingDirty = false;
|
|
4631
|
+
}
|
|
4632
|
+
|
|
4633
|
+
state.active = state.pending ?? DispatchSnapshot.Empty;
|
|
4634
|
+
state.pending = DispatchSnapshot.Empty;
|
|
4635
|
+
state.hasPending = false;
|
|
4636
|
+
state.pendingDirty = false;
|
|
4637
|
+
}
|
|
4638
|
+
else if (!hasHandlers && !state.active.IsEmpty)
|
|
4639
|
+
{
|
|
4640
|
+
ReleaseSnapshot(ref state.active);
|
|
4641
|
+
state.active = DispatchSnapshot.Empty;
|
|
4642
|
+
}
|
|
4643
|
+
|
|
4644
|
+
state.snapshotEmissionId = emissionId;
|
|
4645
|
+
}
|
|
4646
|
+
|
|
4647
|
+
return state.active;
|
|
4648
|
+
}
|
|
4649
|
+
|
|
4650
|
+
private static DispatchSnapshot BuildGlobalDispatchSnapshot<TMessage>(
|
|
4651
|
+
MessageBus messageBus,
|
|
4652
|
+
HandlerCache handlers,
|
|
4653
|
+
DispatchCategory category
|
|
4654
|
+
)
|
|
4655
|
+
where TMessage : IMessage
|
|
4656
|
+
{
|
|
4657
|
+
if (handlers == null || handlers.handlers.Count == 0)
|
|
4658
|
+
{
|
|
4659
|
+
return DispatchSnapshot.Empty;
|
|
4660
|
+
}
|
|
4661
|
+
|
|
4662
|
+
DispatchBucket[] buckets = DispatchBucketPool.Rent(1);
|
|
4663
|
+
Dictionary<MessageHandler, int> handlerLookup = handlers.handlers;
|
|
4664
|
+
int entryCount = handlerLookup.Count;
|
|
4665
|
+
DispatchEntry[] entries = DispatchEntryPool.Rent(entryCount);
|
|
4666
|
+
PrefreezeDescriptor prefreeze = CreatePrefreezeDescriptor(category, 0);
|
|
4667
|
+
int index = 0;
|
|
4668
|
+
foreach (KeyValuePair<MessageHandler, int> kvp in handlerLookup)
|
|
4669
|
+
{
|
|
4670
|
+
MessageHandler messageHandler = kvp.Key;
|
|
4671
|
+
object dispatch = GetDispatchLink<TMessage>(messageBus, messageHandler, category);
|
|
4672
|
+
entries[index++] = new DispatchEntry(messageHandler, dispatch, prefreeze);
|
|
4673
|
+
}
|
|
4674
|
+
|
|
4675
|
+
buckets[0] = new DispatchBucket(0, entries, entryCount, pooledEntries: true);
|
|
4676
|
+
return new DispatchSnapshot(buckets, 1, pooled: true);
|
|
4677
|
+
}
|
|
4678
|
+
|
|
4679
|
+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
4680
|
+
private static PrefreezeDescriptor CreatePrefreezeDescriptor(
|
|
4681
|
+
DispatchCategory category,
|
|
4682
|
+
int priority
|
|
4683
|
+
)
|
|
4684
|
+
{
|
|
4685
|
+
switch (category)
|
|
4686
|
+
{
|
|
4687
|
+
case DispatchCategory.TargetedWithoutTargeting:
|
|
4688
|
+
return new PrefreezeDescriptor(
|
|
4689
|
+
PrefreezeKindTargetedWithoutTargetingHandlers,
|
|
4690
|
+
priority
|
|
4691
|
+
);
|
|
4692
|
+
case DispatchCategory.BroadcastWithoutSource:
|
|
4693
|
+
return new PrefreezeDescriptor(
|
|
4694
|
+
PrefreezeKindBroadcastWithoutSourceHandlers,
|
|
4695
|
+
priority
|
|
4696
|
+
);
|
|
4697
|
+
case DispatchCategory.GlobalUntargeted:
|
|
4698
|
+
return new PrefreezeDescriptor(PrefreezeKindGlobalUntargetedHandlers, priority);
|
|
4699
|
+
case DispatchCategory.GlobalTargeted:
|
|
4700
|
+
return new PrefreezeDescriptor(PrefreezeKindGlobalTargetedHandlers, priority);
|
|
4701
|
+
case DispatchCategory.GlobalBroadcast:
|
|
4702
|
+
return new PrefreezeDescriptor(PrefreezeKindGlobalBroadcastHandlers, priority);
|
|
4703
|
+
default:
|
|
4704
|
+
return PrefreezeDescriptor.Empty;
|
|
4705
|
+
}
|
|
4706
|
+
}
|
|
4707
|
+
|
|
4708
|
+
private static object GetDispatchLink<TMessage>(
|
|
4709
|
+
MessageBus messageBus,
|
|
4710
|
+
MessageHandler handler,
|
|
4711
|
+
DispatchCategory category
|
|
4712
|
+
)
|
|
4713
|
+
where TMessage : IMessage
|
|
4714
|
+
{
|
|
4715
|
+
switch (category)
|
|
4716
|
+
{
|
|
4717
|
+
case DispatchCategory.Untargeted:
|
|
4718
|
+
return handler.GetOrCreateUntargetedDispatchLink<TMessage>(messageBus);
|
|
4719
|
+
case DispatchCategory.UntargetedPost:
|
|
4720
|
+
return handler.GetOrCreateUntargetedPostDispatchLink<TMessage>(messageBus);
|
|
4721
|
+
case DispatchCategory.Targeted:
|
|
4722
|
+
return handler.GetOrCreateTargetedDispatchLink<TMessage>(messageBus);
|
|
4723
|
+
case DispatchCategory.TargetedPost:
|
|
4724
|
+
return handler.GetOrCreateTargetedPostDispatchLink<TMessage>(messageBus);
|
|
4725
|
+
case DispatchCategory.TargetedWithoutTargeting:
|
|
4726
|
+
return handler.GetOrCreateTargetedWithoutTargetingDispatchLink<TMessage>(
|
|
4727
|
+
messageBus
|
|
4728
|
+
);
|
|
4729
|
+
case DispatchCategory.TargetedWithoutTargetingPost:
|
|
4730
|
+
return handler.GetOrCreateTargetedWithoutTargetingPostDispatchLink<TMessage>(
|
|
4731
|
+
messageBus
|
|
4732
|
+
);
|
|
4733
|
+
case DispatchCategory.Broadcast:
|
|
4734
|
+
return handler.GetOrCreateBroadcastDispatchLink<TMessage>(messageBus);
|
|
4735
|
+
case DispatchCategory.BroadcastPost:
|
|
4736
|
+
return handler.GetOrCreateBroadcastPostDispatchLink<TMessage>(messageBus);
|
|
4737
|
+
case DispatchCategory.BroadcastWithoutSource:
|
|
4738
|
+
return handler.GetOrCreateBroadcastWithoutSourceDispatchLink<TMessage>(
|
|
4739
|
+
messageBus
|
|
4740
|
+
);
|
|
4741
|
+
case DispatchCategory.BroadcastWithoutSourcePost:
|
|
4742
|
+
return handler.GetOrCreateBroadcastWithoutSourcePostDispatchLink<TMessage>(
|
|
4743
|
+
messageBus
|
|
4744
|
+
);
|
|
4745
|
+
case DispatchCategory.GlobalUntargeted:
|
|
4746
|
+
case DispatchCategory.GlobalTargeted:
|
|
4747
|
+
case DispatchCategory.GlobalBroadcast:
|
|
4748
|
+
return null;
|
|
4749
|
+
default:
|
|
4750
|
+
return handler.GetOrCreateUntargetedDispatchLink<TMessage>(messageBus);
|
|
4751
|
+
}
|
|
4752
|
+
}
|
|
4753
|
+
|
|
4754
|
+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
4755
|
+
private static DispatchCategory GetDispatchCategory(RegistrationMethod registrationMethod)
|
|
4756
|
+
{
|
|
4757
|
+
switch (registrationMethod)
|
|
4758
|
+
{
|
|
4759
|
+
case RegistrationMethod.Untargeted:
|
|
4760
|
+
return DispatchCategory.Untargeted;
|
|
4761
|
+
case RegistrationMethod.UntargetedPostProcessor:
|
|
4762
|
+
return DispatchCategory.UntargetedPost;
|
|
4763
|
+
case RegistrationMethod.Targeted:
|
|
4764
|
+
return DispatchCategory.Targeted;
|
|
4765
|
+
case RegistrationMethod.TargetedPostProcessor:
|
|
4766
|
+
return DispatchCategory.TargetedPost;
|
|
4767
|
+
case RegistrationMethod.TargetedWithoutTargeting:
|
|
4768
|
+
return DispatchCategory.TargetedWithoutTargeting;
|
|
4769
|
+
case RegistrationMethod.TargetedWithoutTargetingPostProcessor:
|
|
4770
|
+
return DispatchCategory.TargetedWithoutTargetingPost;
|
|
4771
|
+
case RegistrationMethod.Broadcast:
|
|
4772
|
+
return DispatchCategory.Broadcast;
|
|
4773
|
+
case RegistrationMethod.BroadcastPostProcessor:
|
|
4774
|
+
return DispatchCategory.BroadcastPost;
|
|
4775
|
+
case RegistrationMethod.BroadcastWithoutSource:
|
|
4776
|
+
return DispatchCategory.BroadcastWithoutSource;
|
|
4777
|
+
case RegistrationMethod.BroadcastWithoutSourcePostProcessor:
|
|
4778
|
+
return DispatchCategory.BroadcastWithoutSourcePost;
|
|
4779
|
+
default:
|
|
4780
|
+
return DispatchCategory.None;
|
|
4781
|
+
}
|
|
4782
|
+
}
|
|
4783
|
+
|
|
4784
|
+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
4785
|
+
private void InvokeTargetedEntry<TMessage>(
|
|
4786
|
+
ref InstanceId target,
|
|
4787
|
+
ref TMessage message,
|
|
4788
|
+
int priority,
|
|
4789
|
+
DispatchEntry entry
|
|
4790
|
+
)
|
|
4791
|
+
where TMessage : ITargetedMessage
|
|
4792
|
+
{
|
|
4793
|
+
MessageHandler handler = entry.handler;
|
|
4794
|
+
if (!handler.active)
|
|
4795
|
+
{
|
|
4796
|
+
return;
|
|
4797
|
+
}
|
|
4798
|
+
|
|
4799
|
+
MessageHandler.TargetedDispatchLink<TMessage> link =
|
|
4800
|
+
Unsafe.As<MessageHandler.TargetedDispatchLink<TMessage>>(entry.dispatch);
|
|
4801
|
+
link.Invoke(handler, ref target, ref message, priority, _emissionId);
|
|
4802
|
+
}
|
|
4803
|
+
|
|
4804
|
+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
4805
|
+
private void InvokeTargetedPostEntry<TMessage>(
|
|
4806
|
+
ref InstanceId target,
|
|
4807
|
+
ref TMessage message,
|
|
4808
|
+
int priority,
|
|
4809
|
+
DispatchEntry entry
|
|
4810
|
+
)
|
|
4811
|
+
where TMessage : ITargetedMessage
|
|
4812
|
+
{
|
|
4813
|
+
MessageHandler handler = entry.handler;
|
|
4814
|
+
if (!handler.active)
|
|
4815
|
+
{
|
|
4816
|
+
return;
|
|
4817
|
+
}
|
|
4818
|
+
|
|
4819
|
+
MessageHandler.TargetedPostDispatchLink<TMessage> link =
|
|
4820
|
+
Unsafe.As<MessageHandler.TargetedPostDispatchLink<TMessage>>(entry.dispatch);
|
|
4821
|
+
link.Invoke(handler, ref target, ref message, priority, _emissionId);
|
|
4822
|
+
}
|
|
4823
|
+
|
|
4824
|
+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
4825
|
+
private void PrefreezeTargetedPostSnapshot<TMessage>(
|
|
4826
|
+
ref InstanceId target,
|
|
4827
|
+
DispatchSnapshot snapshot
|
|
4828
|
+
)
|
|
4829
|
+
where TMessage : ITargetedMessage
|
|
4830
|
+
{
|
|
4831
|
+
if (snapshot.IsEmpty)
|
|
4832
|
+
{
|
|
4833
|
+
return;
|
|
4834
|
+
}
|
|
4835
|
+
|
|
4836
|
+
DispatchBucket[] buckets = snapshot.buckets;
|
|
4837
|
+
int bucketCount = snapshot.bucketCount;
|
|
4838
|
+
for (int bucketIndex = 0; bucketIndex < bucketCount; ++bucketIndex)
|
|
4839
|
+
{
|
|
4840
|
+
DispatchBucket bucket = buckets[bucketIndex];
|
|
4841
|
+
DispatchEntry[] entries = bucket.entries;
|
|
4842
|
+
int entryCount = bucket.entryCount;
|
|
4843
|
+
if (entryCount == 0)
|
|
4844
|
+
{
|
|
4845
|
+
continue;
|
|
4846
|
+
}
|
|
4847
|
+
|
|
4848
|
+
int priority = bucket.priority;
|
|
4849
|
+
for (int entryIndex = 0; entryIndex < entryCount; ++entryIndex)
|
|
4850
|
+
{
|
|
4851
|
+
entries[entryIndex]
|
|
4852
|
+
.handler.PrefreezeTargetedPostProcessorsForEmission<TMessage>(
|
|
4853
|
+
target,
|
|
4854
|
+
priority,
|
|
4855
|
+
_emissionId,
|
|
4856
|
+
this
|
|
4857
|
+
);
|
|
4858
|
+
}
|
|
4859
|
+
}
|
|
4860
|
+
}
|
|
4861
|
+
|
|
4862
|
+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
4863
|
+
private void InvokeGlobalUntargetedEntry<TMessage>(
|
|
4864
|
+
ref TMessage message,
|
|
4865
|
+
DispatchEntry entry
|
|
4866
|
+
)
|
|
4867
|
+
where TMessage : IUntargetedMessage
|
|
4868
|
+
{
|
|
4869
|
+
MessageHandler handler = entry.handler;
|
|
4870
|
+
if (entry.prefreeze.kind == PrefreezeKindGlobalUntargetedHandlers)
|
|
4871
|
+
{
|
|
4872
|
+
handler.PrefreezeGlobalUntargetedForEmission(_emissionId, this);
|
|
4873
|
+
}
|
|
4874
|
+
|
|
4875
|
+
if (!handler.active)
|
|
4876
|
+
{
|
|
4877
|
+
return;
|
|
4878
|
+
}
|
|
4879
|
+
|
|
4880
|
+
ref IUntargetedMessage interfaceMessage = ref Unsafe.As<TMessage, IUntargetedMessage>(
|
|
4881
|
+
ref message
|
|
4882
|
+
);
|
|
4883
|
+
handler.HandleGlobalUntargetedMessage(ref interfaceMessage, this);
|
|
4884
|
+
}
|
|
4885
|
+
|
|
4886
|
+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
4887
|
+
private void InvokeGlobalTargetedEntry<TMessage>(
|
|
4888
|
+
ref InstanceId target,
|
|
4889
|
+
ref TMessage message,
|
|
4890
|
+
DispatchEntry entry
|
|
4891
|
+
)
|
|
4892
|
+
where TMessage : ITargetedMessage
|
|
4893
|
+
{
|
|
4894
|
+
MessageHandler handler = entry.handler;
|
|
4895
|
+
if (entry.prefreeze.kind == PrefreezeKindGlobalTargetedHandlers)
|
|
4896
|
+
{
|
|
4897
|
+
handler.PrefreezeGlobalTargetedForEmission(_emissionId, this);
|
|
4898
|
+
}
|
|
4899
|
+
|
|
4900
|
+
if (!handler.active)
|
|
4901
|
+
{
|
|
4902
|
+
return;
|
|
4903
|
+
}
|
|
4904
|
+
|
|
4905
|
+
ref ITargetedMessage interfaceMessage = ref Unsafe.As<TMessage, ITargetedMessage>(
|
|
4906
|
+
ref message
|
|
4907
|
+
);
|
|
4908
|
+
handler.HandleGlobalTargetedMessage(ref target, ref interfaceMessage, this);
|
|
4909
|
+
}
|
|
4910
|
+
|
|
4911
|
+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
4912
|
+
private void InvokeGlobalBroadcastEntry<TMessage>(
|
|
4913
|
+
ref InstanceId source,
|
|
4914
|
+
ref TMessage message,
|
|
4915
|
+
DispatchEntry entry
|
|
4916
|
+
)
|
|
4917
|
+
where TMessage : IBroadcastMessage
|
|
4918
|
+
{
|
|
4919
|
+
MessageHandler handler = entry.handler;
|
|
4920
|
+
if (entry.prefreeze.kind == PrefreezeKindGlobalBroadcastHandlers)
|
|
4921
|
+
{
|
|
4922
|
+
handler.PrefreezeGlobalBroadcastForEmission(_emissionId, this);
|
|
4923
|
+
}
|
|
4924
|
+
|
|
4925
|
+
if (!handler.active)
|
|
4926
|
+
{
|
|
4927
|
+
return;
|
|
4928
|
+
}
|
|
4929
|
+
|
|
4930
|
+
ref IBroadcastMessage interfaceMessage = ref Unsafe.As<TMessage, IBroadcastMessage>(
|
|
4931
|
+
ref message
|
|
4932
|
+
);
|
|
4933
|
+
handler.HandleGlobalSourcedBroadcastMessage(ref source, ref interfaceMessage, this);
|
|
4934
|
+
}
|
|
4935
|
+
|
|
4936
|
+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
4937
|
+
private void PrefreezeTargetedWithoutTargetingEntries<TMessage>(
|
|
4938
|
+
DispatchEntry[] entries,
|
|
4939
|
+
int entryCount,
|
|
4940
|
+
int priority
|
|
4941
|
+
)
|
|
4942
|
+
where TMessage : ITargetedMessage
|
|
4943
|
+
{
|
|
4944
|
+
for (int entryIndex = 0; entryIndex < entryCount; ++entryIndex)
|
|
4945
|
+
{
|
|
4946
|
+
entries[entryIndex]
|
|
4947
|
+
.handler.PrefreezeTargetedWithoutTargetingHandlersForEmission<TMessage>(
|
|
4948
|
+
priority,
|
|
4949
|
+
_emissionId,
|
|
4950
|
+
this
|
|
4951
|
+
);
|
|
4952
|
+
}
|
|
4953
|
+
}
|
|
4954
|
+
|
|
4955
|
+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
4956
|
+
private void InvokeTargetedWithoutTargetingEntry<TMessage>(
|
|
4957
|
+
ref InstanceId target,
|
|
4958
|
+
ref TMessage message,
|
|
4959
|
+
int priority,
|
|
4960
|
+
DispatchEntry entry
|
|
4961
|
+
)
|
|
4962
|
+
where TMessage : ITargetedMessage
|
|
4963
|
+
{
|
|
4964
|
+
MessageHandler handler = entry.handler;
|
|
4965
|
+
if (!handler.active)
|
|
4966
|
+
{
|
|
4967
|
+
return;
|
|
4968
|
+
}
|
|
4969
|
+
|
|
4970
|
+
MessageHandler.TargetedWithoutTargetingDispatchLink<TMessage> link =
|
|
4971
|
+
Unsafe.As<MessageHandler.TargetedWithoutTargetingDispatchLink<TMessage>>(
|
|
4972
|
+
entry.dispatch
|
|
4973
|
+
);
|
|
4974
|
+
link.Invoke(handler, ref target, ref message, priority, _emissionId);
|
|
4975
|
+
}
|
|
4976
|
+
|
|
4977
|
+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
4978
|
+
private void InvokeTargetedWithoutTargetingPostEntry<TMessage>(
|
|
4979
|
+
ref InstanceId target,
|
|
4980
|
+
ref TMessage message,
|
|
4981
|
+
int priority,
|
|
4982
|
+
DispatchEntry entry
|
|
4983
|
+
)
|
|
4984
|
+
where TMessage : ITargetedMessage
|
|
4985
|
+
{
|
|
4986
|
+
MessageHandler handler = entry.handler;
|
|
4987
|
+
if (!handler.active)
|
|
4988
|
+
{
|
|
4989
|
+
return;
|
|
4990
|
+
}
|
|
4991
|
+
|
|
4992
|
+
MessageHandler.TargetedWithoutTargetingPostDispatchLink<TMessage> link =
|
|
4993
|
+
Unsafe.As<MessageHandler.TargetedWithoutTargetingPostDispatchLink<TMessage>>(
|
|
4994
|
+
entry.dispatch
|
|
4995
|
+
);
|
|
4996
|
+
link.Invoke(handler, ref target, ref message, priority, _emissionId);
|
|
4997
|
+
}
|
|
4998
|
+
|
|
4999
|
+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
5000
|
+
private void PrefreezeTargetedWithoutTargetingPostSnapshot<TMessage>(
|
|
5001
|
+
DispatchSnapshot snapshot
|
|
5002
|
+
)
|
|
5003
|
+
where TMessage : ITargetedMessage
|
|
5004
|
+
{
|
|
5005
|
+
if (snapshot.IsEmpty)
|
|
5006
|
+
{
|
|
5007
|
+
return;
|
|
5008
|
+
}
|
|
5009
|
+
|
|
5010
|
+
DispatchBucket[] buckets = snapshot.buckets;
|
|
5011
|
+
int bucketCount = snapshot.bucketCount;
|
|
5012
|
+
for (int bucketIndex = 0; bucketIndex < bucketCount; ++bucketIndex)
|
|
5013
|
+
{
|
|
5014
|
+
DispatchBucket bucket = buckets[bucketIndex];
|
|
5015
|
+
DispatchEntry[] entries = bucket.entries;
|
|
5016
|
+
int entryCount = bucket.entryCount;
|
|
5017
|
+
if (entryCount == 0)
|
|
5018
|
+
{
|
|
5019
|
+
continue;
|
|
5020
|
+
}
|
|
5021
|
+
|
|
5022
|
+
int priority = bucket.priority;
|
|
5023
|
+
for (int entryIndex = 0; entryIndex < entryCount; ++entryIndex)
|
|
5024
|
+
{
|
|
5025
|
+
entries[entryIndex]
|
|
5026
|
+
.handler.PrefreezeTargetedWithoutTargetingPostProcessorsForEmission<TMessage>(
|
|
5027
|
+
priority,
|
|
5028
|
+
_emissionId,
|
|
5029
|
+
this
|
|
5030
|
+
);
|
|
5031
|
+
}
|
|
5032
|
+
}
|
|
5033
|
+
}
|
|
5034
|
+
|
|
5035
|
+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
5036
|
+
private void InvokeBroadcastEntry<TMessage>(
|
|
5037
|
+
ref InstanceId source,
|
|
5038
|
+
ref TMessage message,
|
|
5039
|
+
int priority,
|
|
5040
|
+
DispatchEntry entry
|
|
5041
|
+
)
|
|
5042
|
+
where TMessage : IBroadcastMessage
|
|
5043
|
+
{
|
|
5044
|
+
MessageHandler handler = entry.handler;
|
|
5045
|
+
if (!handler.active)
|
|
5046
|
+
{
|
|
5047
|
+
return;
|
|
5048
|
+
}
|
|
5049
|
+
|
|
5050
|
+
MessageHandler.BroadcastDispatchLink<TMessage> link =
|
|
5051
|
+
Unsafe.As<MessageHandler.BroadcastDispatchLink<TMessage>>(entry.dispatch);
|
|
5052
|
+
link.Invoke(handler, ref source, ref message, priority, _emissionId);
|
|
5053
|
+
}
|
|
5054
|
+
|
|
5055
|
+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
5056
|
+
private void InvokeBroadcastPostEntry<TMessage>(
|
|
5057
|
+
ref InstanceId source,
|
|
5058
|
+
ref TMessage message,
|
|
5059
|
+
int priority,
|
|
5060
|
+
DispatchEntry entry
|
|
5061
|
+
)
|
|
5062
|
+
where TMessage : IBroadcastMessage
|
|
5063
|
+
{
|
|
5064
|
+
MessageHandler handler = entry.handler;
|
|
5065
|
+
if (!handler.active)
|
|
5066
|
+
{
|
|
5067
|
+
return;
|
|
5068
|
+
}
|
|
5069
|
+
|
|
5070
|
+
MessageHandler.BroadcastPostDispatchLink<TMessage> link =
|
|
5071
|
+
Unsafe.As<MessageHandler.BroadcastPostDispatchLink<TMessage>>(entry.dispatch);
|
|
5072
|
+
link.Invoke(handler, ref source, ref message, priority, _emissionId);
|
|
5073
|
+
}
|
|
5074
|
+
|
|
5075
|
+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
5076
|
+
private void PrefreezeBroadcastPostSnapshot<TMessage>(
|
|
5077
|
+
ref InstanceId source,
|
|
5078
|
+
DispatchSnapshot snapshot
|
|
5079
|
+
)
|
|
5080
|
+
where TMessage : IBroadcastMessage
|
|
5081
|
+
{
|
|
5082
|
+
if (snapshot.IsEmpty)
|
|
5083
|
+
{
|
|
5084
|
+
return;
|
|
5085
|
+
}
|
|
5086
|
+
|
|
5087
|
+
DispatchBucket[] buckets = snapshot.buckets;
|
|
5088
|
+
int bucketCount = snapshot.bucketCount;
|
|
5089
|
+
for (int bucketIndex = 0; bucketIndex < bucketCount; ++bucketIndex)
|
|
5090
|
+
{
|
|
5091
|
+
DispatchBucket bucket = buckets[bucketIndex];
|
|
5092
|
+
DispatchEntry[] entries = bucket.entries;
|
|
5093
|
+
int entryCount = bucket.entryCount;
|
|
5094
|
+
if (entryCount == 0)
|
|
5095
|
+
{
|
|
5096
|
+
continue;
|
|
5097
|
+
}
|
|
5098
|
+
|
|
5099
|
+
int priority = bucket.priority;
|
|
5100
|
+
for (int entryIndex = 0; entryIndex < entryCount; ++entryIndex)
|
|
5101
|
+
{
|
|
5102
|
+
entries[entryIndex]
|
|
5103
|
+
.handler.PrefreezeBroadcastPostProcessorsForEmission<TMessage>(
|
|
5104
|
+
source,
|
|
5105
|
+
priority,
|
|
5106
|
+
_emissionId,
|
|
5107
|
+
this
|
|
5108
|
+
);
|
|
5109
|
+
}
|
|
5110
|
+
}
|
|
5111
|
+
}
|
|
5112
|
+
|
|
5113
|
+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
5114
|
+
private void InvokeBroadcastWithoutSourceEntry<TMessage>(
|
|
5115
|
+
ref InstanceId source,
|
|
5116
|
+
ref TMessage message,
|
|
5117
|
+
int priority,
|
|
5118
|
+
DispatchEntry entry
|
|
5119
|
+
)
|
|
5120
|
+
where TMessage : IBroadcastMessage
|
|
5121
|
+
{
|
|
5122
|
+
MessageHandler handler = entry.handler;
|
|
5123
|
+
if (entry.prefreeze.kind == PrefreezeKindBroadcastWithoutSourceHandlers)
|
|
5124
|
+
{
|
|
5125
|
+
handler.PrefreezeBroadcastWithoutSourceHandlersForEmission<TMessage>(
|
|
5126
|
+
entry.prefreeze.priority,
|
|
5127
|
+
_emissionId,
|
|
5128
|
+
this
|
|
5129
|
+
);
|
|
5130
|
+
}
|
|
5131
|
+
|
|
5132
|
+
if (!handler.active)
|
|
5133
|
+
{
|
|
5134
|
+
return;
|
|
5135
|
+
}
|
|
5136
|
+
|
|
5137
|
+
MessageHandler.BroadcastWithoutSourceDispatchLink<TMessage> link =
|
|
5138
|
+
Unsafe.As<MessageHandler.BroadcastWithoutSourceDispatchLink<TMessage>>(
|
|
5139
|
+
entry.dispatch
|
|
5140
|
+
);
|
|
5141
|
+
link.Invoke(handler, ref source, ref message, priority, _emissionId);
|
|
5142
|
+
}
|
|
5143
|
+
|
|
5144
|
+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
5145
|
+
private void InvokeBroadcastWithoutSourcePostEntry<TMessage>(
|
|
5146
|
+
ref InstanceId source,
|
|
5147
|
+
ref TMessage message,
|
|
5148
|
+
int priority,
|
|
5149
|
+
DispatchEntry entry
|
|
5150
|
+
)
|
|
5151
|
+
where TMessage : IBroadcastMessage
|
|
5152
|
+
{
|
|
5153
|
+
MessageHandler handler = entry.handler;
|
|
5154
|
+
if (!handler.active)
|
|
5155
|
+
{
|
|
5156
|
+
return;
|
|
5157
|
+
}
|
|
5158
|
+
|
|
5159
|
+
MessageHandler.BroadcastWithoutSourcePostDispatchLink<TMessage> link =
|
|
5160
|
+
Unsafe.As<MessageHandler.BroadcastWithoutSourcePostDispatchLink<TMessage>>(
|
|
5161
|
+
entry.dispatch
|
|
5162
|
+
);
|
|
5163
|
+
link.Invoke(handler, ref source, ref message, priority, _emissionId);
|
|
5164
|
+
}
|
|
5165
|
+
|
|
5166
|
+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
5167
|
+
private void PrefreezeBroadcastWithoutSourcePostSnapshot<TMessage>(
|
|
5168
|
+
DispatchSnapshot snapshot
|
|
5169
|
+
)
|
|
5170
|
+
where TMessage : IBroadcastMessage
|
|
5171
|
+
{
|
|
5172
|
+
if (snapshot.IsEmpty)
|
|
5173
|
+
{
|
|
5174
|
+
return;
|
|
5175
|
+
}
|
|
5176
|
+
|
|
5177
|
+
DispatchBucket[] buckets = snapshot.buckets;
|
|
5178
|
+
int bucketCount = snapshot.bucketCount;
|
|
5179
|
+
for (int bucketIndex = 0; bucketIndex < bucketCount; ++bucketIndex)
|
|
5180
|
+
{
|
|
5181
|
+
DispatchBucket bucket = buckets[bucketIndex];
|
|
5182
|
+
DispatchEntry[] entries = bucket.entries;
|
|
5183
|
+
int entryCount = bucket.entryCount;
|
|
5184
|
+
if (entryCount == 0)
|
|
5185
|
+
{
|
|
5186
|
+
continue;
|
|
5187
|
+
}
|
|
5188
|
+
|
|
5189
|
+
int priority = bucket.priority;
|
|
5190
|
+
for (int entryIndex = 0; entryIndex < entryCount; ++entryIndex)
|
|
5191
|
+
{
|
|
5192
|
+
entries[entryIndex]
|
|
5193
|
+
.handler.PrefreezeBroadcastWithoutSourcePostProcessorsForEmission<TMessage>(
|
|
5194
|
+
priority,
|
|
5195
|
+
_emissionId,
|
|
5196
|
+
this
|
|
5197
|
+
);
|
|
5198
|
+
}
|
|
5199
|
+
}
|
|
5200
|
+
}
|
|
5201
|
+
|
|
3996
5202
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
3997
5203
|
private static List<KeyValuePair<int, HandlerCache>> GetOrAddMessageHandlerStack(
|
|
3998
5204
|
HandlerCache<int, HandlerCache> cache,
|