Files
MQTTnet/Source/MQTTnet.Server/Internal/MqttSubscription.cs
T
Christian e43e7f8e36 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
2025-08-30 10:52:59 +02:00

49 lines
1.3 KiB
C#

// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using MQTTnet.Protocol;
namespace MQTTnet.Server.Internal;
public sealed class MqttSubscription
{
public MqttSubscription(
string topic,
bool noLocal,
MqttRetainHandling retainHandling,
bool retainAsPublished,
MqttQualityOfServiceLevel qualityOfServiceLevel,
uint identifier)
{
Topic = topic;
NoLocal = noLocal;
RetainHandling = retainHandling;
RetainAsPublished = retainAsPublished;
GrantedQualityOfServiceLevel = qualityOfServiceLevel;
Identifier = identifier;
MqttTopicHash.Calculate(Topic, out var hash, out var hashMask, out var hasWildcard);
TopicHash = hash;
TopicHashMask = hashMask;
TopicHasWildcard = hasWildcard;
}
public MqttQualityOfServiceLevel GrantedQualityOfServiceLevel { get; }
public uint Identifier { get; }
public bool NoLocal { get; }
public bool RetainAsPublished { get; }
public MqttRetainHandling RetainHandling { get; }
public string Topic { get; }
public ulong TopicHash { get; }
public ulong TopicHashMask { get; }
public bool TopicHasWildcard { get; }
}