Use latest language features (#2176)

* Make use of language features line AsyncDispose, init etc.

* Fix build errors

* Improve Unit Tests

* Improve Unit Tests

* Improve Unit Tests

* Update samples

* Remove obsolete benchmarks

* Code cleanup

* Improve unit tests

* Improve Unit Tests

* Fix Unit Tests

* Improve Unit Tests

* Improve Unit Tests

* Restore unit tests

* Exclude load tests from unit tests
This commit is contained in:
Christian
2025-08-30 10:52:59 +02:00
committed by GitHub
parent 247988e633
commit e43e7f8e36
330 changed files with 21417 additions and 22919 deletions
@@ -1,31 +1,30 @@
namespace MQTTnet.Server.Internal
namespace MQTTnet.Server.Internal;
/// <summary>
/// Helper class that stores subscriptions by their topic hash mask.
/// </summary>
public sealed class TopicHashMaskSubscriptions
{
/// <summary>
/// Helper class that stores subscriptions by their topic hash mask.
/// </summary>
public sealed class TopicHashMaskSubscriptions
public Dictionary<ulong, HashSet<MqttSubscription>> SubscriptionsByHashMask { get; } = new Dictionary<ulong, HashSet<MqttSubscription>>();
public void AddSubscription(MqttSubscription subscription)
{
public Dictionary<ulong, HashSet<MqttSubscription>> SubscriptionsByHashMask { get; } = new Dictionary<ulong, HashSet<MqttSubscription>>();
public void AddSubscription(MqttSubscription subscription)
if (!SubscriptionsByHashMask.TryGetValue(subscription.TopicHashMask, out var subscriptions))
{
if (!SubscriptionsByHashMask.TryGetValue(subscription.TopicHashMask, out var subscriptions))
{
subscriptions = new HashSet<MqttSubscription>();
SubscriptionsByHashMask.Add(subscription.TopicHashMask, subscriptions);
}
subscriptions.Add(subscription);
subscriptions = new HashSet<MqttSubscription>();
SubscriptionsByHashMask.Add(subscription.TopicHashMask, subscriptions);
}
subscriptions.Add(subscription);
}
public void RemoveSubscription(MqttSubscription subscription)
public void RemoveSubscription(MqttSubscription subscription)
{
if (SubscriptionsByHashMask.TryGetValue(subscription.TopicHashMask, out var subscriptions))
{
if (SubscriptionsByHashMask.TryGetValue(subscription.TopicHashMask, out var subscriptions))
subscriptions.Remove(subscription);
if (subscriptions.Count == 0)
{
subscriptions.Remove(subscription);
if (subscriptions.Count == 0)
{
SubscriptionsByHashMask.Remove(subscription.TopicHashMask);
}
SubscriptionsByHashMask.Remove(subscription.TopicHashMask);
}
}
}