com.wallstop-studios.dxmessaging 2.2.0 → 3.1.0
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/CHANGELOG.md +315 -67
- package/CHANGELOG.md.meta +7 -7
- package/Editor/Analyzers/BaseCallIlInspector.cs +277 -0
- package/Editor/Analyzers/BaseCallIlInspector.cs.meta +11 -0
- package/Editor/Analyzers/BaseCallLogMessageParser.cs +295 -0
- package/Editor/Analyzers/BaseCallLogMessageParser.cs.meta +11 -0
- package/Editor/Analyzers/BaseCallReportAggregator.cs +308 -0
- package/Editor/Analyzers/BaseCallReportAggregator.cs.meta +11 -0
- package/Editor/Analyzers/BaseCallTypeScanner.cs +110 -0
- package/Editor/Analyzers/BaseCallTypeScanner.cs.meta +11 -0
- package/Editor/Analyzers/BaseCallTypeScannerCore.cs +562 -0
- package/Editor/Analyzers/BaseCallTypeScannerCore.cs.meta +11 -0
- package/Editor/Analyzers/DxMessagingConsoleHarvester.cs +1129 -0
- package/Editor/Analyzers/DxMessagingConsoleHarvester.cs.meta +11 -0
- package/Editor/Analyzers/Microsoft.CodeAnalysis.CSharp.dll.meta +44 -44
- package/Editor/Analyzers/Microsoft.CodeAnalysis.dll.meta +44 -44
- package/Editor/Analyzers/System.Collections.Immutable.dll.meta +44 -44
- package/Editor/Analyzers/System.Reflection.Metadata.dll.meta +44 -44
- package/Editor/Analyzers/System.Runtime.CompilerServices.Unsafe.dll.meta +44 -44
- package/Editor/Analyzers/WallstopStudios.DxMessaging.Analyzer.dll +0 -0
- package/Editor/Analyzers/WallstopStudios.DxMessaging.Analyzer.dll.meta +46 -0
- package/Editor/Analyzers/WallstopStudios.DxMessaging.SourceGenerators.dll +0 -0
- package/Editor/Analyzers/WallstopStudios.DxMessaging.SourceGenerators.dll.meta +72 -72
- package/Editor/Analyzers.meta +8 -8
- package/Editor/AssemblyInfo.cs.meta +11 -3
- package/Editor/CustomEditors/MessageAwareComponentFallbackEditor.cs +81 -0
- package/Editor/CustomEditors/MessageAwareComponentFallbackEditor.cs.meta +11 -0
- package/Editor/CustomEditors/MessageAwareComponentInspectorOverlay.cs +429 -0
- package/Editor/CustomEditors/MessageAwareComponentInspectorOverlay.cs.meta +11 -0
- package/Editor/CustomEditors/MessagingComponentEditor.cs +1 -1
- package/Editor/CustomEditors/MessagingComponentEditor.cs.meta +11 -3
- package/Editor/CustomEditors.meta +2 -2
- package/Editor/DxMessagingEditorIdle.cs +62 -0
- package/Editor/DxMessagingEditorIdle.cs.meta +11 -0
- package/Editor/DxMessagingEditorInitializer.cs +112 -15
- package/Editor/DxMessagingEditorInitializer.cs.meta +11 -3
- package/Editor/DxMessagingEditorLog.cs +32 -0
- package/Editor/DxMessagingEditorLog.cs.meta +11 -0
- package/Editor/DxMessagingMenu.cs.meta +11 -11
- package/Editor/DxMessagingSceneBuildProcessor.cs.meta +11 -11
- package/Editor/Settings/DxMessagingBaseCallIgnoreSync.cs +313 -0
- package/Editor/Settings/DxMessagingBaseCallIgnoreSync.cs.meta +11 -0
- package/Editor/Settings/DxMessagingSettings.cs +261 -11
- package/Editor/Settings/DxMessagingSettings.cs.meta +11 -3
- package/Editor/Settings/DxMessagingSettingsProvider.cs +50 -33
- package/Editor/Settings/DxMessagingSettingsProvider.cs.meta +11 -3
- package/Editor/Settings.meta +2 -2
- package/Editor/SetupCscRsp.cs +406 -39
- package/Editor/SetupCscRsp.cs.meta +11 -3
- package/Editor/Testing/MessagingComponentEditorHarness.cs +2 -2
- package/Editor/Testing/MessagingComponentEditorHarness.cs.meta +11 -3
- package/Editor/Testing.meta +3 -3
- package/Editor/WallstopStudios.DxMessaging.Editor.asmdef +14 -14
- package/Editor/WallstopStudios.DxMessaging.Editor.asmdef.meta +7 -7
- package/Editor.meta +8 -8
- package/LICENSE.md +9 -9
- package/LICENSE.md.meta +7 -7
- package/README.md +940 -900
- package/README.md.meta +7 -7
- package/Runtime/AssemblyInfo.cs +4 -0
- package/Runtime/AssemblyInfo.cs.meta +11 -3
- package/Runtime/Core/Attributes/DxAutoConstructorAttribute.cs.meta +11 -3
- package/Runtime/Core/Attributes/DxBroadcastMessageAttribute.cs.meta +11 -3
- package/Runtime/Core/Attributes/DxIgnoreMissingBaseCallAttribute.cs +26 -0
- package/Runtime/Core/Attributes/DxIgnoreMissingBaseCallAttribute.cs.meta +11 -0
- package/Runtime/Core/Attributes/DxOptionalParameterAttribute.cs +2 -4
- package/Runtime/Core/Attributes/DxOptionalParameterAttribute.cs.meta +11 -3
- package/Runtime/Core/Attributes/DxTargetedMessageAttribute.cs.meta +11 -3
- package/Runtime/Core/Attributes/DxUntargetedMessageAttribute.cs.meta +11 -3
- package/Runtime/Core/Attributes/Il2CppSetOptionAttribute.cs +56 -0
- package/Runtime/Core/Attributes/Il2CppSetOptionAttribute.cs.meta +11 -0
- package/Runtime/Core/Attributes.meta +2 -2
- package/Runtime/Core/Configuration/DxMessagingRuntimeSettings.cs +195 -0
- package/Runtime/Core/Configuration/DxMessagingRuntimeSettings.cs.meta +11 -0
- package/Runtime/Core/Configuration/DxMessagingRuntimeSettingsProvider.cs +179 -0
- package/Runtime/Core/Configuration/DxMessagingRuntimeSettingsProvider.cs.meta +11 -0
- package/Runtime/Core/Configuration.meta +9 -0
- package/Runtime/Core/DataStructure/CyclicBuffer.cs +46 -28
- package/Runtime/Core/DataStructure/CyclicBuffer.cs.meta +11 -3
- package/Runtime/Core/DataStructure.meta +2 -2
- package/Runtime/Core/Diagnostics/MessageEmissionData.cs.meta +11 -3
- package/Runtime/Core/Diagnostics/MessageRegistrationData.cs.meta +11 -3
- package/Runtime/Core/Diagnostics/MessageRegistrationType.cs.meta +11 -3
- package/Runtime/Core/Diagnostics.meta +2 -2
- package/Runtime/Core/DxMessagingStaticState.cs +19 -0
- package/Runtime/Core/DxMessagingStaticState.cs.meta +11 -11
- package/Runtime/Core/Extensions/EnumExtensions.cs +6 -5
- package/Runtime/Core/Extensions/EnumExtensions.cs.meta +11 -3
- package/Runtime/Core/Extensions/IListExtensions.cs.meta +11 -3
- package/Runtime/Core/Extensions/MessageBusExtensions.cs.meta +12 -12
- package/Runtime/Core/Extensions/MessageExtensions.cs +0 -60
- package/Runtime/Core/Extensions/MessageExtensions.cs.meta +11 -11
- package/Runtime/Core/Extensions.meta +8 -8
- package/Runtime/Core/Helper/MessageCache.cs +32 -0
- package/Runtime/Core/Helper/MessageCache.cs.meta +11 -3
- package/Runtime/Core/Helper/MessageHelperIndexer.cs.meta +11 -3
- package/Runtime/Core/Helper.meta +2 -2
- package/Runtime/Core/IMessage.cs +3 -3
- package/Runtime/Core/IMessage.cs.meta +11 -11
- package/Runtime/Core/InstanceId.cs +25 -1
- package/Runtime/Core/InstanceId.cs.meta +11 -11
- package/Runtime/Core/Internal/DxUnsafe.cs +60 -0
- package/Runtime/Core/Internal/DxUnsafe.cs.meta +11 -0
- package/Runtime/Core/Internal/FlatDispatch.cs +198 -0
- package/Runtime/Core/Internal/FlatDispatch.cs.meta +11 -0
- package/Runtime/Core/Internal/TypedGlobalSlotIndex.cs +38 -0
- package/Runtime/Core/Internal/TypedGlobalSlotIndex.cs.meta +11 -0
- package/Runtime/Core/Internal/TypedSlotIndex.cs +81 -0
- package/Runtime/Core/Internal/TypedSlotIndex.cs.meta +11 -0
- package/Runtime/Core/Internal/TypedSlots.cs +597 -0
- package/Runtime/Core/Internal/TypedSlots.cs.meta +11 -0
- package/Runtime/Core/Internal.meta +9 -0
- package/Runtime/Core/MessageBus/DiagnosticsTarget.cs.meta +11 -11
- package/Runtime/Core/MessageBus/GlobalMessageBusProvider.cs.meta +11 -11
- package/Runtime/Core/MessageBus/IMessageBus.cs +189 -15
- package/Runtime/Core/MessageBus/IMessageBus.cs.meta +11 -11
- package/Runtime/Core/MessageBus/IMessageBusProvider.cs.meta +11 -11
- package/Runtime/Core/MessageBus/IMessageRegistrationBuilder.cs +1 -0
- package/Runtime/Core/MessageBus/IMessageRegistrationBuilder.cs.meta +11 -11
- package/Runtime/Core/MessageBus/Internal/BusContextIndex.cs +16 -0
- package/Runtime/Core/MessageBus/Internal/BusContextIndex.cs.meta +11 -0
- package/Runtime/Core/MessageBus/Internal/BusSinkIndex.cs +40 -0
- package/Runtime/Core/MessageBus/Internal/BusSinkIndex.cs.meta +11 -0
- package/Runtime/Core/MessageBus/Internal/BusSlots.cs +719 -0
- package/Runtime/Core/MessageBus/Internal/BusSlots.cs.meta +11 -0
- package/Runtime/Core/MessageBus/Internal/DispatchKind.cs +38 -0
- package/Runtime/Core/MessageBus/Internal/DispatchKind.cs.meta +11 -0
- package/Runtime/Core/MessageBus/Internal/DispatchPhase.cs +20 -0
- package/Runtime/Core/MessageBus/Internal/DispatchPhase.cs.meta +11 -0
- package/Runtime/Core/MessageBus/Internal/DispatchVariant.cs +28 -0
- package/Runtime/Core/MessageBus/Internal/DispatchVariant.cs.meta +11 -0
- package/Runtime/Core/MessageBus/Internal/IEvictableSlot.cs +48 -0
- package/Runtime/Core/MessageBus/Internal/IEvictableSlot.cs.meta +11 -0
- package/Runtime/Core/MessageBus/Internal/ISweepable.cs +15 -0
- package/Runtime/Core/MessageBus/Internal/ISweepable.cs.meta +11 -0
- package/Runtime/Core/MessageBus/Internal/RegistrationMethodAxes.cs +222 -0
- package/Runtime/Core/MessageBus/Internal/RegistrationMethodAxes.cs.meta +11 -0
- package/Runtime/Core/MessageBus/Internal/SlotKey.cs +192 -0
- package/Runtime/Core/MessageBus/Internal/SlotKey.cs.meta +11 -0
- package/Runtime/Core/MessageBus/Internal.meta +9 -0
- package/Runtime/Core/MessageBus/MessageBus.cs +5366 -3838
- package/Runtime/Core/MessageBus/MessageBus.cs.meta +11 -11
- package/Runtime/Core/MessageBus/MessageBusRebindMode.cs.meta +11 -11
- package/Runtime/Core/MessageBus/MessageRegistrationBuilder.cs +187 -14
- package/Runtime/Core/MessageBus/MessageRegistrationBuilder.cs.meta +11 -11
- package/Runtime/Core/MessageBus/MessagingRegistration.cs.meta +11 -11
- package/Runtime/Core/MessageBus/RegistrationLog.cs.meta +11 -11
- package/Runtime/Core/MessageBus.meta +8 -8
- package/Runtime/Core/MessageHandler.cs +2399 -1042
- package/Runtime/Core/MessageHandler.cs.meta +11 -11
- package/Runtime/Core/MessageRegistrationHandle.cs.meta +11 -11
- package/Runtime/Core/MessageRegistrationToken.cs +429 -44
- package/Runtime/Core/MessageRegistrationToken.cs.meta +11 -11
- package/Runtime/Core/Messages/GlobalStringMessage.cs.meta +11 -3
- package/Runtime/Core/Messages/IBroadcastMessage.cs.meta +11 -11
- package/Runtime/Core/Messages/ITargetedMessage.cs.meta +11 -11
- package/Runtime/Core/Messages/IUntargetedMessage.cs.meta +11 -11
- package/Runtime/Core/Messages/ReflexiveMessage.cs.meta +11 -3
- package/Runtime/Core/Messages/SourcedStringMessage.cs.meta +11 -11
- package/Runtime/Core/Messages/StringMessage.cs.meta +11 -3
- package/Runtime/Core/Messages.meta +8 -8
- package/Runtime/Core/MessagingDebug.cs.meta +11 -11
- package/Runtime/Core/Pooling/CollectionPool.cs +266 -0
- package/Runtime/Core/Pooling/CollectionPool.cs.meta +11 -0
- package/Runtime/Core/Pooling/CollectionPoolDiagnostics.cs +30 -0
- package/Runtime/Core/Pooling/CollectionPoolDiagnostics.cs.meta +11 -0
- package/Runtime/Core/Pooling/DxPools.cs +157 -0
- package/Runtime/Core/Pooling/DxPools.cs.meta +11 -0
- package/Runtime/Core/Pooling/EvictionPlayerLoopHook.cs +106 -0
- package/Runtime/Core/Pooling/EvictionPlayerLoopHook.cs.meta +11 -0
- package/Runtime/Core/Pooling/IDxMessagingClock.cs +18 -0
- package/Runtime/Core/Pooling/IDxMessagingClock.cs.meta +11 -0
- package/Runtime/Core/Pooling/PoolDiagnosticsSnapshot.cs +55 -0
- package/Runtime/Core/Pooling/PoolDiagnosticsSnapshot.cs.meta +11 -0
- package/Runtime/Core/Pooling/StopwatchClock.cs +27 -0
- package/Runtime/Core/Pooling/StopwatchClock.cs.meta +11 -0
- package/Runtime/Core/Pooling/UnityRealtimeClock.cs +31 -0
- package/Runtime/Core/Pooling/UnityRealtimeClock.cs.meta +11 -0
- package/Runtime/Core/Pooling.meta +9 -0
- package/Runtime/Core.meta +8 -8
- package/Runtime/Unity/CurrentGlobalMessageBusProvider.cs.meta +12 -12
- package/Runtime/Unity/DxMessagingRuntimeInitializer.cs.meta +11 -11
- package/Runtime/Unity/InitialGlobalMessageBusProvider.cs.meta +12 -12
- package/Runtime/Unity/Integrations/Reflex/AssemblyInfo.cs.meta +11 -3
- package/Runtime/Unity/Integrations/Reflex/ReflexRegistrationInstaller.cs +73 -0
- package/Runtime/Unity/Integrations/Reflex/ReflexRegistrationInstaller.cs.meta +11 -11
- package/Runtime/Unity/Integrations/Reflex/WallstopStudios.DxMessaging.Reflex.asmdef +20 -20
- package/Runtime/Unity/Integrations/Reflex/WallstopStudios.DxMessaging.Reflex.asmdef.meta +7 -7
- package/Runtime/Unity/Integrations/Reflex.meta +8 -8
- package/Runtime/Unity/Integrations/VContainer/AssemblyInfo.cs.meta +11 -3
- package/Runtime/Unity/Integrations/VContainer/VContainerRegistrationExtensions.cs +109 -1
- package/Runtime/Unity/Integrations/VContainer/VContainerRegistrationExtensions.cs.meta +11 -11
- package/Runtime/Unity/Integrations/VContainer/WallstopStudios.DxMessaging.VContainer.asmdef +30 -30
- package/Runtime/Unity/Integrations/VContainer/WallstopStudios.DxMessaging.VContainer.asmdef.meta +7 -7
- package/Runtime/Unity/Integrations/VContainer.meta +8 -8
- package/Runtime/Unity/Integrations/Zenject/AssemblyInfo.cs.meta +11 -3
- package/Runtime/Unity/Integrations/Zenject/WallstopStudios.DxMessaging.Zenject.asmdef +30 -30
- package/Runtime/Unity/Integrations/Zenject/WallstopStudios.DxMessaging.Zenject.asmdef.meta +7 -7
- package/Runtime/Unity/Integrations/Zenject/ZenjectRegistrationInstaller.cs +79 -1
- package/Runtime/Unity/Integrations/Zenject/ZenjectRegistrationInstaller.cs.meta +11 -11
- package/Runtime/Unity/Integrations/Zenject.meta +8 -8
- package/Runtime/Unity/Integrations.meta +8 -8
- package/Runtime/Unity/MessageAwareComponent.cs +74 -0
- package/Runtime/Unity/MessageAwareComponent.cs.meta +11 -11
- package/Runtime/Unity/MessageBusProviderHandle.cs.meta +12 -12
- package/Runtime/Unity/MessagingComponent.cs +43 -10
- package/Runtime/Unity/MessagingComponent.cs.meta +11 -11
- package/Runtime/Unity/MessagingComponentInstaller.cs.meta +12 -12
- package/Runtime/Unity/ScriptableMessageBusProvider.cs.meta +12 -12
- package/Runtime/Unity.meta +8 -8
- package/Runtime/WallstopStudios.DxMessaging.asmdef +14 -14
- package/Runtime/WallstopStudios.DxMessaging.asmdef.meta +7 -7
- package/Runtime.meta +8 -8
- package/Samples~/DI/Prefabs/MessagingInstallerSample.prefab +98 -98
- package/Samples~/DI/Prefabs/MessagingInstallerSample.prefab.meta +7 -7
- package/Samples~/DI/Prefabs.meta +8 -8
- package/Samples~/DI/Providers/GlobalMessageBusProvider.asset +14 -14
- package/Samples~/DI/Providers/GlobalMessageBusProvider.asset.meta +8 -8
- package/Samples~/DI/Providers/InitialGlobalMessageBusProvider.asset +14 -14
- package/Samples~/DI/Providers/InitialGlobalMessageBusProvider.asset.meta +8 -8
- package/Samples~/DI/Providers.meta +8 -8
- package/Samples~/DI/README.md +51 -51
- package/Samples~/DI/README.md.meta +7 -7
- package/Samples~/DI/Reflex/SampleInstaller.cs +7 -0
- package/Samples~/DI/Reflex/SampleInstaller.cs.meta +11 -11
- package/Samples~/DI/Reflex.meta +8 -8
- package/Samples~/DI/VContainer/SampleLifetimeScope.cs +6 -1
- package/Samples~/DI/VContainer/SampleLifetimeScope.cs.meta +11 -11
- package/Samples~/DI/VContainer.meta +8 -8
- package/Samples~/DI/Zenject/SampleInstaller.cs +8 -0
- package/Samples~/DI/Zenject/SampleInstaller.cs.meta +11 -11
- package/Samples~/DI/Zenject.meta +8 -8
- package/Samples~/DI.meta +8 -8
- package/Samples~/Mini Combat/Boot.cs.meta +11 -11
- package/Samples~/Mini Combat/Enemy.cs.meta +11 -11
- package/Samples~/Mini Combat/Messages.cs.meta +11 -11
- package/Samples~/Mini Combat/Player.cs.meta +11 -11
- package/Samples~/Mini Combat/README.md +324 -323
- package/Samples~/Mini Combat/README.md.meta +7 -7
- package/Samples~/Mini Combat/UIOverlay.cs.meta +11 -11
- package/Samples~/Mini Combat/Walkthrough.md +430 -430
- package/Samples~/Mini Combat/Walkthrough.md.meta +7 -7
- package/Samples~/Mini Combat/WallstopStudios.DxMessaging.MiniCombat.Sample.asmdef +13 -13
- package/Samples~/Mini Combat/WallstopStudios.DxMessaging.MiniCombat.Sample.asmdef.meta +7 -7
- package/Samples~/Mini Combat.meta +8 -8
- package/Samples~/UI Buttons + Inspector/DiagnosticsEnabler.cs.meta +11 -11
- package/Samples~/UI Buttons + Inspector/Messages.cs.meta +11 -11
- package/Samples~/UI Buttons + Inspector/MessagingObserver.cs.meta +11 -11
- package/Samples~/UI Buttons + Inspector/README.md +210 -209
- package/Samples~/UI Buttons + Inspector/README.md.meta +7 -7
- package/Samples~/UI Buttons + Inspector/UIButtonEmitter.cs.meta +11 -11
- package/Samples~/UI Buttons + Inspector/WallstopStudios.DxMessaging.UIButtons.Sample.asmdef +13 -13
- package/Samples~/UI Buttons + Inspector/WallstopStudios.DxMessaging.UIButtons.Sample.asmdef.meta +7 -7
- package/Samples~/UI Buttons + Inspector.meta +8 -8
- package/SourceGenerators/Directory.Build.props +50 -3
- package/SourceGenerators/Directory.Build.props.meta +7 -7
- package/SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators/DxAutoConstructorGenerator.cs +96 -63
- package/SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators/DxAutoConstructorGenerator.cs.meta +11 -11
- package/SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators/DxMessageIdGenerator.cs +745 -87
- package/SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators/DxMessageIdGenerator.cs.meta +11 -3
- package/SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators.csproj +39 -46
- package/SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators.csproj.meta +7 -7
- package/SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators.meta +8 -8
- package/SourceGenerators/global.json +7 -0
- package/SourceGenerators/global.json.meta +7 -0
- package/SourceGenerators.meta +8 -8
- package/Third Party Notices.md +3 -3
- package/Third Party Notices.md.meta +7 -7
- package/package.json +102 -92
- package/package.json.meta +7 -7
|
@@ -15,7 +15,7 @@ namespace DxMessaging.Core.DataStructure
|
|
|
15
15
|
[Serializable]
|
|
16
16
|
internal sealed class CyclicBuffer<T> : IReadOnlyList<T>
|
|
17
17
|
{
|
|
18
|
-
|
|
18
|
+
internal struct CyclicBufferEnumerator : IEnumerator<T>
|
|
19
19
|
{
|
|
20
20
|
private readonly CyclicBuffer<T> _buffer;
|
|
21
21
|
|
|
@@ -70,13 +70,15 @@ namespace DxMessaging.Core.DataStructure
|
|
|
70
70
|
/// <summary>Maximum number of elements retained in the buffer.</summary>
|
|
71
71
|
public int Capacity { get; private set; }
|
|
72
72
|
|
|
73
|
-
/// <summary>Current number of elements stored (
|
|
73
|
+
/// <summary>Current number of elements stored (<= <see cref="Capacity"/>).</summary>
|
|
74
74
|
public int Count { get; private set; }
|
|
75
75
|
|
|
76
76
|
private readonly List<T> _buffer;
|
|
77
77
|
private readonly List<T> _cache;
|
|
78
78
|
private int _position;
|
|
79
79
|
|
|
80
|
+
internal int ScratchCacheCount => _cache.Count;
|
|
81
|
+
|
|
80
82
|
/// <summary>
|
|
81
83
|
/// Accesses the element at the specified chronological index (0 = oldest).
|
|
82
84
|
/// </summary>
|
|
@@ -180,30 +182,37 @@ namespace DxMessaging.Core.DataStructure
|
|
|
180
182
|
comparer ??= EqualityComparer<T>.Default;
|
|
181
183
|
|
|
182
184
|
_cache.Clear();
|
|
183
|
-
|
|
185
|
+
try
|
|
184
186
|
{
|
|
185
|
-
|
|
186
|
-
|
|
187
|
+
for (int i = 0; i < Count; ++i)
|
|
188
|
+
{
|
|
189
|
+
_cache.Add(_buffer[AdjustedIndexFor(i)]);
|
|
190
|
+
}
|
|
187
191
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
{
|
|
192
|
-
if (comparer.Equals(_cache[i], element))
|
|
192
|
+
// Find and remove the element
|
|
193
|
+
bool removed = false;
|
|
194
|
+
for (int i = 0; i < _cache.Count; ++i)
|
|
193
195
|
{
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
196
|
+
if (comparer.Equals(_cache[i], element))
|
|
197
|
+
{
|
|
198
|
+
_cache.RemoveAt(i);
|
|
199
|
+
removed = true;
|
|
200
|
+
break;
|
|
201
|
+
}
|
|
197
202
|
}
|
|
198
|
-
}
|
|
199
203
|
|
|
200
|
-
|
|
204
|
+
if (!removed)
|
|
205
|
+
{
|
|
206
|
+
return false;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
RebuildFromCache();
|
|
210
|
+
return true;
|
|
211
|
+
}
|
|
212
|
+
finally
|
|
201
213
|
{
|
|
202
|
-
|
|
214
|
+
_cache.Clear();
|
|
203
215
|
}
|
|
204
|
-
|
|
205
|
-
RebuildFromCache();
|
|
206
|
-
return true;
|
|
207
216
|
}
|
|
208
217
|
|
|
209
218
|
/// <summary>
|
|
@@ -219,19 +228,26 @@ namespace DxMessaging.Core.DataStructure
|
|
|
219
228
|
}
|
|
220
229
|
|
|
221
230
|
_cache.Clear();
|
|
222
|
-
|
|
231
|
+
try
|
|
223
232
|
{
|
|
224
|
-
|
|
225
|
-
|
|
233
|
+
for (int i = 0; i < Count; ++i)
|
|
234
|
+
{
|
|
235
|
+
_cache.Add(_buffer[AdjustedIndexFor(i)]);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
int removedCount = _cache.RemoveAll(predicate);
|
|
239
|
+
if (removedCount == 0)
|
|
240
|
+
{
|
|
241
|
+
return 0;
|
|
242
|
+
}
|
|
226
243
|
|
|
227
|
-
|
|
228
|
-
|
|
244
|
+
RebuildFromCache();
|
|
245
|
+
return removedCount;
|
|
246
|
+
}
|
|
247
|
+
finally
|
|
229
248
|
{
|
|
230
|
-
|
|
249
|
+
_cache.Clear();
|
|
231
250
|
}
|
|
232
|
-
|
|
233
|
-
RebuildFromCache();
|
|
234
|
-
return removedCount;
|
|
235
251
|
}
|
|
236
252
|
|
|
237
253
|
private void RebuildFromCache()
|
|
@@ -240,6 +256,7 @@ namespace DxMessaging.Core.DataStructure
|
|
|
240
256
|
_buffer.AddRange(_cache);
|
|
241
257
|
Count = _cache.Count;
|
|
242
258
|
_position = Count < Capacity ? Count : 0;
|
|
259
|
+
_cache.Clear();
|
|
243
260
|
}
|
|
244
261
|
|
|
245
262
|
/// <summary>
|
|
@@ -250,6 +267,7 @@ namespace DxMessaging.Core.DataStructure
|
|
|
250
267
|
Count = 0;
|
|
251
268
|
_position = 0;
|
|
252
269
|
_buffer.Clear();
|
|
270
|
+
_cache.Clear();
|
|
253
271
|
}
|
|
254
272
|
|
|
255
273
|
/// <summary>
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: 7d8dbf8640e24846bf35fb18a1b7c504
|
|
3
|
-
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: 7d8dbf8640e24846bf35fb18a1b7c504
|
|
3
|
+
MonoImporter:
|
|
4
|
+
externalObjects: {}
|
|
5
|
+
serializedVersion: 2
|
|
6
|
+
defaultReferences: []
|
|
7
|
+
executionOrder: 0
|
|
8
|
+
icon: {instanceID: 0}
|
|
9
|
+
userData:
|
|
10
|
+
assetBundleName:
|
|
11
|
+
assetBundleVariant:
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: 9862044472704c86ade5612ddcdfd5b5
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: 9862044472704c86ade5612ddcdfd5b5
|
|
3
3
|
timeCreated: 1749671887
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: 8eafaabae0f549ec82f67ea18be788e1
|
|
3
|
-
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: 8eafaabae0f549ec82f67ea18be788e1
|
|
3
|
+
MonoImporter:
|
|
4
|
+
externalObjects: {}
|
|
5
|
+
serializedVersion: 2
|
|
6
|
+
defaultReferences: []
|
|
7
|
+
executionOrder: 0
|
|
8
|
+
icon: {instanceID: 0}
|
|
9
|
+
userData:
|
|
10
|
+
assetBundleName:
|
|
11
|
+
assetBundleVariant:
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: 01598791b01241caabfecea4c1f5880d
|
|
3
|
-
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: 01598791b01241caabfecea4c1f5880d
|
|
3
|
+
MonoImporter:
|
|
4
|
+
externalObjects: {}
|
|
5
|
+
serializedVersion: 2
|
|
6
|
+
defaultReferences: []
|
|
7
|
+
executionOrder: 0
|
|
8
|
+
icon: {instanceID: 0}
|
|
9
|
+
userData:
|
|
10
|
+
assetBundleName:
|
|
11
|
+
assetBundleVariant:
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: 7d393cfbb3c8429d83af17a737fdaf0e
|
|
3
|
-
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: 7d393cfbb3c8429d83af17a737fdaf0e
|
|
3
|
+
MonoImporter:
|
|
4
|
+
externalObjects: {}
|
|
5
|
+
serializedVersion: 2
|
|
6
|
+
defaultReferences: []
|
|
7
|
+
executionOrder: 0
|
|
8
|
+
icon: {instanceID: 0}
|
|
9
|
+
userData:
|
|
10
|
+
assetBundleName:
|
|
11
|
+
assetBundleVariant:
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: 9606a03ced274c3888a4d993309786a4
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: 9606a03ced274c3888a4d993309786a4
|
|
3
3
|
timeCreated: 1749672323
|
|
@@ -50,7 +50,26 @@ namespace DxMessaging.Core
|
|
|
50
50
|
MessageRegistrationHandle.SetIdSeed(Baseline.MessageRegistrationHandleSeed);
|
|
51
51
|
MessageRegistrationBuilder.SetSyntheticOwnerCounter(Baseline.SyntheticOwnerCounter);
|
|
52
52
|
|
|
53
|
+
// Capture the active global bus before ResetStatics swaps it back to the default
|
|
54
|
+
// instance. If a user installed a custom global bus via SetGlobalMessageBus, we
|
|
55
|
+
// also bump that bus's reset generation so deregister closures captured against
|
|
56
|
+
// it (e.g. a deferred Object.Destroy that lands after Reset) silently no-op
|
|
57
|
+
// instead of logging spurious over-deregistration errors. We deliberately do NOT
|
|
58
|
+
// call ResetState() on the custom bus -- that would clear its sinks, which the
|
|
59
|
+
// user may have intentionally preserved.
|
|
60
|
+
IMessageBus activeBus = MessageHandler.MessageBus;
|
|
61
|
+
IMessageBus defaultBus = MessageHandler.InitialGlobalMessageBus;
|
|
62
|
+
|
|
53
63
|
MessageHandler.ResetStatics();
|
|
64
|
+
MessageBus.MessageBus.ResetStaticPools();
|
|
65
|
+
|
|
66
|
+
if (
|
|
67
|
+
!ReferenceEquals(activeBus, defaultBus)
|
|
68
|
+
&& activeBus is MessageBus.MessageBus customConcrete
|
|
69
|
+
)
|
|
70
|
+
{
|
|
71
|
+
customConcrete.BumpResetGeneration();
|
|
72
|
+
}
|
|
54
73
|
}
|
|
55
74
|
}
|
|
56
75
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: 2fbeee7b1ae4484f978aba9de68b3d1d
|
|
3
|
-
MonoImporter:
|
|
4
|
-
externalObjects: {}
|
|
5
|
-
serializedVersion: 2
|
|
6
|
-
defaultReferences: []
|
|
7
|
-
executionOrder: 0
|
|
8
|
-
icon: {instanceID: 0}
|
|
9
|
-
userData:
|
|
10
|
-
assetBundleName:
|
|
11
|
-
assetBundleVariant:
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: 2fbeee7b1ae4484f978aba9de68b3d1d
|
|
3
|
+
MonoImporter:
|
|
4
|
+
externalObjects: {}
|
|
5
|
+
serializedVersion: 2
|
|
6
|
+
defaultReferences: []
|
|
7
|
+
executionOrder: 0
|
|
8
|
+
icon: {instanceID: 0}
|
|
9
|
+
userData:
|
|
10
|
+
assetBundleName:
|
|
11
|
+
assetBundleVariant:
|
|
@@ -2,6 +2,7 @@ namespace DxMessaging.Core.Extensions
|
|
|
2
2
|
{
|
|
3
3
|
using System;
|
|
4
4
|
using System.Runtime.CompilerServices;
|
|
5
|
+
using DxMessaging.Core.Internal;
|
|
5
6
|
|
|
6
7
|
internal static class EnumExtensions
|
|
7
8
|
{
|
|
@@ -26,12 +27,12 @@ namespace DxMessaging.Core.Extensions
|
|
|
26
27
|
{
|
|
27
28
|
try
|
|
28
29
|
{
|
|
29
|
-
return
|
|
30
|
+
return DxUnsafe.SizeOf<T>() switch
|
|
30
31
|
{
|
|
31
|
-
1 =>
|
|
32
|
-
2 =>
|
|
33
|
-
4 =>
|
|
34
|
-
8 =>
|
|
32
|
+
1 => DxUnsafe.As<T, byte>(ref value),
|
|
33
|
+
2 => DxUnsafe.As<T, ushort>(ref value),
|
|
34
|
+
4 => DxUnsafe.As<T, uint>(ref value),
|
|
35
|
+
8 => DxUnsafe.As<T, ulong>(ref value),
|
|
35
36
|
_ => null,
|
|
36
37
|
};
|
|
37
38
|
}
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: f01ee914d7634a69a85f86bb02f2f07e
|
|
3
|
-
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: f01ee914d7634a69a85f86bb02f2f07e
|
|
3
|
+
MonoImporter:
|
|
4
|
+
externalObjects: {}
|
|
5
|
+
serializedVersion: 2
|
|
6
|
+
defaultReferences: []
|
|
7
|
+
executionOrder: 0
|
|
8
|
+
icon: {instanceID: 0}
|
|
9
|
+
userData:
|
|
10
|
+
assetBundleName:
|
|
11
|
+
assetBundleVariant:
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: f6956caef19744a0b0d96215d4e5154a
|
|
3
|
-
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: f6956caef19744a0b0d96215d4e5154a
|
|
3
|
+
MonoImporter:
|
|
4
|
+
externalObjects: {}
|
|
5
|
+
serializedVersion: 2
|
|
6
|
+
defaultReferences: []
|
|
7
|
+
executionOrder: 0
|
|
8
|
+
icon: {instanceID: 0}
|
|
9
|
+
userData:
|
|
10
|
+
assetBundleName:
|
|
11
|
+
assetBundleVariant:
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: 2d2a3b7979da4f248a398e05be9f83d4
|
|
3
|
-
MonoImporter:
|
|
4
|
-
externalObjects: {}
|
|
5
|
-
serializedVersion: 2
|
|
6
|
-
defaultReferences: []
|
|
7
|
-
executionOrder: 0
|
|
8
|
-
icon: {instanceID: 0}
|
|
9
|
-
userData:
|
|
10
|
-
assetBundleName:
|
|
11
|
-
assetBundleVariant:
|
|
12
|
-
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: 2d2a3b7979da4f248a398e05be9f83d4
|
|
3
|
+
MonoImporter:
|
|
4
|
+
externalObjects: {}
|
|
5
|
+
serializedVersion: 2
|
|
6
|
+
defaultReferences: []
|
|
7
|
+
executionOrder: 0
|
|
8
|
+
icon: {instanceID: 0}
|
|
9
|
+
userData:
|
|
10
|
+
assetBundleName:
|
|
11
|
+
assetBundleVariant:
|
|
12
|
+
|
|
@@ -79,12 +79,6 @@ namespace DxMessaging.Core.Extensions
|
|
|
79
79
|
{
|
|
80
80
|
InstanceId targetId = target;
|
|
81
81
|
IMessageBus resolvedBus = ResolveMessageBus(messageBus, messageBusProvider);
|
|
82
|
-
if (typeof(TMessage) == typeof(ITargetedMessage))
|
|
83
|
-
{
|
|
84
|
-
resolvedBus.UntypedTargetedBroadcast(targetId, message);
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
82
|
resolvedBus.TargetedBroadcast(ref targetId, ref message);
|
|
89
83
|
}
|
|
90
84
|
|
|
@@ -129,12 +123,6 @@ namespace DxMessaging.Core.Extensions
|
|
|
129
123
|
{
|
|
130
124
|
InstanceId targetId = target;
|
|
131
125
|
IMessageBus resolvedBus = ResolveMessageBus(messageBus, messageBusProvider);
|
|
132
|
-
if (typeof(TMessage) == typeof(ITargetedMessage))
|
|
133
|
-
{
|
|
134
|
-
resolvedBus.UntypedTargetedBroadcast(targetId, message);
|
|
135
|
-
return;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
126
|
resolvedBus.TargetedBroadcast(ref targetId, ref message);
|
|
139
127
|
}
|
|
140
128
|
#endif
|
|
@@ -178,12 +166,6 @@ namespace DxMessaging.Core.Extensions
|
|
|
178
166
|
where TMessage : struct, ITargetedMessage
|
|
179
167
|
{
|
|
180
168
|
IMessageBus resolvedBus = ResolveMessageBus(messageBus, messageBusProvider);
|
|
181
|
-
if (typeof(TMessage) == typeof(ITargetedMessage))
|
|
182
|
-
{
|
|
183
|
-
resolvedBus.UntypedTargetedBroadcast(target, message);
|
|
184
|
-
return;
|
|
185
|
-
}
|
|
186
|
-
|
|
187
169
|
resolvedBus.TargetedBroadcast(ref target, ref message);
|
|
188
170
|
}
|
|
189
171
|
|
|
@@ -259,12 +241,6 @@ namespace DxMessaging.Core.Extensions
|
|
|
259
241
|
where TMessage : struct, IUntargetedMessage
|
|
260
242
|
{
|
|
261
243
|
IMessageBus resolvedBus = ResolveMessageBus(messageBus, messageBusProvider);
|
|
262
|
-
if (typeof(TMessage) == typeof(IUntargetedMessage))
|
|
263
|
-
{
|
|
264
|
-
resolvedBus.UntypedUntargetedBroadcast(message);
|
|
265
|
-
return;
|
|
266
|
-
}
|
|
267
|
-
|
|
268
244
|
resolvedBus.UntargetedBroadcast(ref message);
|
|
269
245
|
}
|
|
270
246
|
|
|
@@ -296,12 +272,6 @@ namespace DxMessaging.Core.Extensions
|
|
|
296
272
|
where TMessage : struct, IUntargetedMessage
|
|
297
273
|
{
|
|
298
274
|
IMessageBus resolvedBus = ResolveMessageBus(messageBus, messageBusProvider);
|
|
299
|
-
if (typeof(TMessage) == typeof(IUntargetedMessage))
|
|
300
|
-
{
|
|
301
|
-
resolvedBus.UntypedUntargetedBroadcast(message);
|
|
302
|
-
return;
|
|
303
|
-
}
|
|
304
|
-
|
|
305
275
|
resolvedBus.UntargetedBroadcast(ref message);
|
|
306
276
|
}
|
|
307
277
|
|
|
@@ -341,12 +311,6 @@ namespace DxMessaging.Core.Extensions
|
|
|
341
311
|
where TMessage : struct, ITargetedMessage
|
|
342
312
|
{
|
|
343
313
|
IMessageBus resolvedBus = ResolveMessageBus(messageBus, messageBusProvider);
|
|
344
|
-
if (typeof(TMessage) == typeof(ITargetedMessage))
|
|
345
|
-
{
|
|
346
|
-
resolvedBus.UntypedTargetedBroadcast(target, message);
|
|
347
|
-
return;
|
|
348
|
-
}
|
|
349
|
-
|
|
350
314
|
resolvedBus.TargetedBroadcast(ref target, ref message);
|
|
351
315
|
}
|
|
352
316
|
|
|
@@ -386,12 +350,6 @@ namespace DxMessaging.Core.Extensions
|
|
|
386
350
|
where TMessage : struct, IBroadcastMessage
|
|
387
351
|
{
|
|
388
352
|
IMessageBus resolvedBus = ResolveMessageBus(messageBus, messageBusProvider);
|
|
389
|
-
if (typeof(TMessage) == typeof(ITargetedMessage))
|
|
390
|
-
{
|
|
391
|
-
resolvedBus.UntypedSourcedBroadcast(source, message);
|
|
392
|
-
return;
|
|
393
|
-
}
|
|
394
|
-
|
|
395
353
|
resolvedBus.SourcedBroadcast(ref source, ref message);
|
|
396
354
|
}
|
|
397
355
|
|
|
@@ -437,12 +395,6 @@ namespace DxMessaging.Core.Extensions
|
|
|
437
395
|
{
|
|
438
396
|
InstanceId sourceId = source;
|
|
439
397
|
IMessageBus resolvedBus = ResolveMessageBus(messageBus, messageBusProvider);
|
|
440
|
-
if (typeof(TMessage) == typeof(IBroadcastMessage))
|
|
441
|
-
{
|
|
442
|
-
resolvedBus.UntypedSourcedBroadcast(sourceId, message);
|
|
443
|
-
return;
|
|
444
|
-
}
|
|
445
|
-
|
|
446
398
|
resolvedBus.SourcedBroadcast(ref sourceId, ref message);
|
|
447
399
|
}
|
|
448
400
|
|
|
@@ -487,12 +439,6 @@ namespace DxMessaging.Core.Extensions
|
|
|
487
439
|
{
|
|
488
440
|
InstanceId sourceId = source;
|
|
489
441
|
IMessageBus resolvedBus = ResolveMessageBus(messageBus, messageBusProvider);
|
|
490
|
-
if (typeof(TMessage) == typeof(IBroadcastMessage))
|
|
491
|
-
{
|
|
492
|
-
resolvedBus.UntypedSourcedBroadcast(sourceId, message);
|
|
493
|
-
return;
|
|
494
|
-
}
|
|
495
|
-
|
|
496
442
|
resolvedBus.SourcedBroadcast(ref sourceId, ref message);
|
|
497
443
|
}
|
|
498
444
|
#endif
|
|
@@ -536,12 +482,6 @@ namespace DxMessaging.Core.Extensions
|
|
|
536
482
|
where TMessage : struct, IBroadcastMessage
|
|
537
483
|
{
|
|
538
484
|
IMessageBus resolvedBus = ResolveMessageBus(messageBus, messageBusProvider);
|
|
539
|
-
if (typeof(TMessage) == typeof(IBroadcastMessage))
|
|
540
|
-
{
|
|
541
|
-
resolvedBus.UntypedSourcedBroadcast(source, message);
|
|
542
|
-
return;
|
|
543
|
-
}
|
|
544
|
-
|
|
545
485
|
resolvedBus.SourcedBroadcast(ref source, ref message);
|
|
546
486
|
}
|
|
547
487
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: 760f3c3fe4dffe647b41eef37728c4f4
|
|
3
|
-
MonoImporter:
|
|
4
|
-
externalObjects: {}
|
|
5
|
-
serializedVersion: 2
|
|
6
|
-
defaultReferences: []
|
|
7
|
-
executionOrder: 0
|
|
8
|
-
icon: {instanceID: 0}
|
|
9
|
-
userData:
|
|
10
|
-
assetBundleName:
|
|
11
|
-
assetBundleVariant:
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: 760f3c3fe4dffe647b41eef37728c4f4
|
|
3
|
+
MonoImporter:
|
|
4
|
+
externalObjects: {}
|
|
5
|
+
serializedVersion: 2
|
|
6
|
+
defaultReferences: []
|
|
7
|
+
executionOrder: 0
|
|
8
|
+
icon: {instanceID: 0}
|
|
9
|
+
userData:
|
|
10
|
+
assetBundleName:
|
|
11
|
+
assetBundleVariant:
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: 963c131823f1c5948a69209dbac6533f
|
|
3
|
-
folderAsset: yes
|
|
4
|
-
DefaultImporter:
|
|
5
|
-
externalObjects: {}
|
|
6
|
-
userData:
|
|
7
|
-
assetBundleName:
|
|
8
|
-
assetBundleVariant:
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: 963c131823f1c5948a69209dbac6533f
|
|
3
|
+
folderAsset: yes
|
|
4
|
+
DefaultImporter:
|
|
5
|
+
externalObjects: {}
|
|
6
|
+
userData:
|
|
7
|
+
assetBundleName:
|
|
8
|
+
assetBundleVariant:
|
|
@@ -155,6 +155,25 @@ namespace DxMessaging.Core.Helper
|
|
|
155
155
|
return false;
|
|
156
156
|
}
|
|
157
157
|
|
|
158
|
+
/// <summary>
|
|
159
|
+
/// Attempts to get the value at an already-resolved message type index.
|
|
160
|
+
/// </summary>
|
|
161
|
+
/// <param name="index">Index previously assigned by <see cref="MessageHelperIndexer{TMessage}"/>.</param>
|
|
162
|
+
/// <param name="value">Out parameter receiving the value if present.</param>
|
|
163
|
+
/// <returns>True if a non-null value was present.</returns>
|
|
164
|
+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
165
|
+
internal bool TryGetValueAtIndex(int index, out TValue value)
|
|
166
|
+
{
|
|
167
|
+
if (0 <= index && index < _values.Count)
|
|
168
|
+
{
|
|
169
|
+
value = _values[index];
|
|
170
|
+
return value != null;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
value = default;
|
|
174
|
+
return false;
|
|
175
|
+
}
|
|
176
|
+
|
|
158
177
|
/// <summary>
|
|
159
178
|
/// Removes the value for the given <typeparamref name="TMessage"/> key.
|
|
160
179
|
/// </summary>
|
|
@@ -170,6 +189,19 @@ namespace DxMessaging.Core.Helper
|
|
|
170
189
|
}
|
|
171
190
|
}
|
|
172
191
|
|
|
192
|
+
/// <summary>
|
|
193
|
+
/// Removes the value at an already-resolved message type index.
|
|
194
|
+
/// </summary>
|
|
195
|
+
/// <param name="index">Index previously assigned by <see cref="MessageHelperIndexer{TMessage}"/>.</param>
|
|
196
|
+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
197
|
+
internal void RemoveAtIndex(int index)
|
|
198
|
+
{
|
|
199
|
+
if (0 <= index && index < _values.Count)
|
|
200
|
+
{
|
|
201
|
+
_values[index] = null;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
|
|
173
205
|
/// <summary>
|
|
174
206
|
/// Returns an enumerator iterating over non-null entries in insertion order.
|
|
175
207
|
/// </summary>
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: 23cb3bf7f25d479c862736482ee96fa7
|
|
3
|
-
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: 23cb3bf7f25d479c862736482ee96fa7
|
|
3
|
+
MonoImporter:
|
|
4
|
+
externalObjects: {}
|
|
5
|
+
serializedVersion: 2
|
|
6
|
+
defaultReferences: []
|
|
7
|
+
executionOrder: 0
|
|
8
|
+
icon: {instanceID: 0}
|
|
9
|
+
userData:
|
|
10
|
+
assetBundleName:
|
|
11
|
+
assetBundleVariant:
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: 612c352c3d984a3486ac4b19bb69fa37
|
|
3
|
-
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: 612c352c3d984a3486ac4b19bb69fa37
|
|
3
|
+
MonoImporter:
|
|
4
|
+
externalObjects: {}
|
|
5
|
+
serializedVersion: 2
|
|
6
|
+
defaultReferences: []
|
|
7
|
+
executionOrder: 0
|
|
8
|
+
icon: {instanceID: 0}
|
|
9
|
+
userData:
|
|
10
|
+
assetBundleName:
|
|
11
|
+
assetBundleVariant:
|
package/Runtime/Core/Helper.meta
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: 351ee8f890884099b6c7c32e66f196a9
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: 351ee8f890884099b6c7c32e66f196a9
|
|
3
3
|
timeCreated: 1745100990
|
package/Runtime/Core/IMessage.cs
CHANGED
|
@@ -8,9 +8,9 @@ namespace DxMessaging.Core
|
|
|
8
8
|
/// <remarks>
|
|
9
9
|
/// DxMessaging models three primary categories of messages:
|
|
10
10
|
/// <list type="bullet">
|
|
11
|
-
/// <item><description><see cref="Messages.IUntargetedMessage"/>
|
|
12
|
-
/// <item><description><see cref="Messages.ITargetedMessage"/>
|
|
13
|
-
/// <item><description><see cref="Messages.IBroadcastMessage"/>
|
|
11
|
+
/// <item><description><see cref="Messages.IUntargetedMessage"/> -- global notifications (for example: settings changed).</description></item>
|
|
12
|
+
/// <item><description><see cref="Messages.ITargetedMessage"/> -- commands or events directed at a specific target.</description></item>
|
|
13
|
+
/// <item><description><see cref="Messages.IBroadcastMessage"/> -- events emitted by a specific source and consumable by any listener.</description></item>
|
|
14
14
|
/// </list>
|
|
15
15
|
/// <para>
|
|
16
16
|
/// Implementors typically use the generic variants (for example, <c>IUntargetedMessage<T></c>) on <c>struct</c> messages
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: 7d57ad19529ae9d4eb2521c7f44af929
|
|
3
|
-
MonoImporter:
|
|
4
|
-
externalObjects: {}
|
|
5
|
-
serializedVersion: 2
|
|
6
|
-
defaultReferences: []
|
|
7
|
-
executionOrder: 0
|
|
8
|
-
icon: {instanceID: 0}
|
|
9
|
-
userData:
|
|
10
|
-
assetBundleName:
|
|
11
|
-
assetBundleVariant:
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: 7d57ad19529ae9d4eb2521c7f44af929
|
|
3
|
+
MonoImporter:
|
|
4
|
+
externalObjects: {}
|
|
5
|
+
serializedVersion: 2
|
|
6
|
+
defaultReferences: []
|
|
7
|
+
executionOrder: 0
|
|
8
|
+
icon: {instanceID: 0}
|
|
9
|
+
userData:
|
|
10
|
+
assetBundleName:
|
|
11
|
+
assetBundleVariant:
|