From 4b7871070521e455e257d785eec86336bf30805e Mon Sep 17 00:00:00 2001 From: Christian Kratky Date: Sat, 18 Apr 2020 01:38:20 +0200 Subject: [PATCH] Refactor topic filter naming. --- .../Subscribing/MqttClientSubscribeOptions.cs | 2 +- .../MqttClientSubscribeOptionsBuilder.cs | 18 +++--- .../MqttClientSubscribeResultItem.cs | 4 +- .../MqttClientUnsubscribeOptionsBuilder.cs | 2 +- .../Formatter/V3/MqttV310PacketFormatter.cs | 2 +- .../Formatter/V5/MqttV500PacketDecoder.cs | 2 +- .../{TopicFilter.cs => MqttTopicFilter.cs} | 9 ++- Source/MQTTnet/MqttTopicFilterBuilder.cs | 57 +++++++++++++++++++ Source/MQTTnet/Packets/MqttSubscribePacket.cs | 2 +- .../Server/IMqttRetainedMessagesManager.cs | 2 +- Source/MQTTnet/Server/IMqttServer.cs | 2 +- .../Server/IMqttServerPersistedSession.cs | 2 +- Source/MQTTnet/Server/MqttClientConnection.cs | 2 +- Source/MQTTnet/Server/MqttClientSession.cs | 2 +- .../Server/MqttClientSessionsManager.cs | 2 +- .../Server/MqttClientSubscriptionsManager.cs | 6 +- .../Server/MqttRetainedMessagesManager.cs | 2 +- Source/MQTTnet/Server/MqttServer.cs | 2 +- ...qttServerClientSubscribedTopicEventArgs.cs | 4 +- .../Server/MqttServerEventDispatcher.cs | 2 +- Source/MQTTnet/Server/MqttServerExtensions.cs | 14 ++--- .../MqttSubscriptionInterceptorContext.cs | 4 +- Source/MQTTnet/TopicFilterBuilder.cs | 51 ----------------- .../LowLevelMqttClient_Tests.cs | 4 +- .../MQTTnet.Core.Tests/MQTTv5/Client_Tests.cs | 4 +- .../MQTTv5/Feature_Tests.cs | 4 +- .../MQTTnet.Core.Tests/MQTTv5/Server_Tests.cs | 8 +-- .../Mockups/TestServerWrapper.cs | 2 +- Tests/MQTTnet.Core.Tests/MqttClient_Tests.cs | 2 +- .../MqttKeepAliveMonitor_Tests.cs | 2 +- .../MqttPacketSerializer_Tests.cs | 12 ++-- .../MqttSubscriptionsManager_Tests.cs | 12 ++-- Tests/MQTTnet.Core.Tests/Server_Tests.cs | 26 ++++----- Tests/MQTTnet.TestApp.NetCore/ClientTest.cs | 14 ++--- .../ManagedClientTest.cs | 4 +- .../MainPage.xaml.cs | 8 +-- 36 files changed, 154 insertions(+), 143 deletions(-) rename Source/MQTTnet/{TopicFilter.cs => MqttTopicFilter.cs} (82%) create mode 100644 Source/MQTTnet/MqttTopicFilterBuilder.cs delete mode 100644 Source/MQTTnet/TopicFilterBuilder.cs diff --git a/Source/MQTTnet/Client/Subscribing/MqttClientSubscribeOptions.cs b/Source/MQTTnet/Client/Subscribing/MqttClientSubscribeOptions.cs index dc4be2f9..42c38e11 100644 --- a/Source/MQTTnet/Client/Subscribing/MqttClientSubscribeOptions.cs +++ b/Source/MQTTnet/Client/Subscribing/MqttClientSubscribeOptions.cs @@ -5,7 +5,7 @@ namespace MQTTnet.Client.Subscribing { public class MqttClientSubscribeOptions { - public List TopicFilters { get; set; } = new List(); + public List TopicFilters { get; set; } = new List(); public uint? SubscriptionIdentifier { get; set; } diff --git a/Source/MQTTnet/Client/Subscribing/MqttClientSubscribeOptionsBuilder.cs b/Source/MQTTnet/Client/Subscribing/MqttClientSubscribeOptionsBuilder.cs index c33f9313..97b5b776 100644 --- a/Source/MQTTnet/Client/Subscribing/MqttClientSubscribeOptionsBuilder.cs +++ b/Source/MQTTnet/Client/Subscribing/MqttClientSubscribeOptionsBuilder.cs @@ -1,7 +1,7 @@ -using System; -using System.Collections.Generic; -using MQTTnet.Packets; +using MQTTnet.Packets; using MQTTnet.Protocol; +using System; +using System.Collections.Generic; namespace MQTTnet.Client.Subscribing { @@ -38,7 +38,7 @@ namespace MQTTnet.Client.Subscribing bool? retainAsPublished = null, MqttRetainHandling? retainHandling = null) { - return WithTopicFilter(new TopicFilter + return WithTopicFilter(new MqttTopicFilter { Topic = topic, QualityOfServiceLevel = qualityOfServiceLevel, @@ -48,30 +48,30 @@ namespace MQTTnet.Client.Subscribing }); } - public MqttClientSubscribeOptionsBuilder WithTopicFilter(Action topicFilterBuilder) + public MqttClientSubscribeOptionsBuilder WithTopicFilter(Action topicFilterBuilder) { if (topicFilterBuilder == null) throw new ArgumentNullException(nameof(topicFilterBuilder)); - var internalTopicFilterBuilder = new TopicFilterBuilder(); + var internalTopicFilterBuilder = new MqttTopicFilterBuilder(); topicFilterBuilder(internalTopicFilterBuilder); return WithTopicFilter(internalTopicFilterBuilder); } - public MqttClientSubscribeOptionsBuilder WithTopicFilter(TopicFilterBuilder topicFilterBuilder) + public MqttClientSubscribeOptionsBuilder WithTopicFilter(MqttTopicFilterBuilder topicFilterBuilder) { if (topicFilterBuilder == null) throw new ArgumentNullException(nameof(topicFilterBuilder)); return WithTopicFilter(topicFilterBuilder.Build()); } - public MqttClientSubscribeOptionsBuilder WithTopicFilter(TopicFilter topicFilter) + public MqttClientSubscribeOptionsBuilder WithTopicFilter(MqttTopicFilter topicFilter) { if (topicFilter == null) throw new ArgumentNullException(nameof(topicFilter)); if (_subscribeOptions.TopicFilters == null) { - _subscribeOptions.TopicFilters = new List(); + _subscribeOptions.TopicFilters = new List(); } _subscribeOptions.TopicFilters.Add(topicFilter); diff --git a/Source/MQTTnet/Client/Subscribing/MqttClientSubscribeResultItem.cs b/Source/MQTTnet/Client/Subscribing/MqttClientSubscribeResultItem.cs index 286123f4..65f15c43 100644 --- a/Source/MQTTnet/Client/Subscribing/MqttClientSubscribeResultItem.cs +++ b/Source/MQTTnet/Client/Subscribing/MqttClientSubscribeResultItem.cs @@ -4,13 +4,13 @@ namespace MQTTnet.Client.Subscribing { public class MqttClientSubscribeResultItem { - public MqttClientSubscribeResultItem(TopicFilter topicFilter, MqttClientSubscribeResultCode resultCode) + public MqttClientSubscribeResultItem(MqttTopicFilter topicFilter, MqttClientSubscribeResultCode resultCode) { TopicFilter = topicFilter ?? throw new ArgumentNullException(nameof(topicFilter)); ResultCode = resultCode; } - public TopicFilter TopicFilter { get; } + public MqttTopicFilter TopicFilter { get; } public MqttClientSubscribeResultCode ResultCode { get; } } diff --git a/Source/MQTTnet/Client/Unsubscribing/MqttClientUnsubscribeOptionsBuilder.cs b/Source/MQTTnet/Client/Unsubscribing/MqttClientUnsubscribeOptionsBuilder.cs index dbeb631d..85162435 100644 --- a/Source/MQTTnet/Client/Unsubscribing/MqttClientUnsubscribeOptionsBuilder.cs +++ b/Source/MQTTnet/Client/Unsubscribing/MqttClientUnsubscribeOptionsBuilder.cs @@ -44,7 +44,7 @@ namespace MQTTnet.Client.Unsubscribing return this; } - public MqttClientUnsubscribeOptionsBuilder WithTopicFilter(TopicFilter topicFilter) + public MqttClientUnsubscribeOptionsBuilder WithTopicFilter(MqttTopicFilter topicFilter) { if (topicFilter is null) throw new ArgumentNullException(nameof(topicFilter)); diff --git a/Source/MQTTnet/Formatter/V3/MqttV310PacketFormatter.cs b/Source/MQTTnet/Formatter/V3/MqttV310PacketFormatter.cs index 248b8bb0..d4f278da 100644 --- a/Source/MQTTnet/Formatter/V3/MqttV310PacketFormatter.cs +++ b/Source/MQTTnet/Formatter/V3/MqttV310PacketFormatter.cs @@ -194,7 +194,7 @@ namespace MQTTnet.Formatter.V3 while (!body.EndOfStream) { - var topicFilter = new TopicFilter + var topicFilter = new MqttTopicFilter { Topic = body.ReadStringWithLengthPrefix(), QualityOfServiceLevel = (MqttQualityOfServiceLevel)body.ReadByte() diff --git a/Source/MQTTnet/Formatter/V5/MqttV500PacketDecoder.cs b/Source/MQTTnet/Formatter/V5/MqttV500PacketDecoder.cs index 23a6d7e7..cdbceda7 100644 --- a/Source/MQTTnet/Formatter/V5/MqttV500PacketDecoder.cs +++ b/Source/MQTTnet/Formatter/V5/MqttV500PacketDecoder.cs @@ -405,7 +405,7 @@ namespace MQTTnet.Formatter.V5 var retainAsPublished = (options & (1 << 3)) > 0; var retainHandling = (MqttRetainHandling)((options >> 4) & 3); - packet.TopicFilters.Add(new TopicFilter + packet.TopicFilters.Add(new MqttTopicFilter { Topic = topic, QualityOfServiceLevel = qos, diff --git a/Source/MQTTnet/TopicFilter.cs b/Source/MQTTnet/MqttTopicFilter.cs similarity index 82% rename from Source/MQTTnet/TopicFilter.cs rename to Source/MQTTnet/MqttTopicFilter.cs index b086b48e..66ea94a4 100644 --- a/Source/MQTTnet/TopicFilter.cs +++ b/Source/MQTTnet/MqttTopicFilter.cs @@ -1,9 +1,14 @@ using MQTTnet.Protocol; +using System; namespace MQTTnet { - // TODO: Consider renaming to "MqttTopicFilter" - public class TopicFilter + [Obsolete("Use MqttTopicFilter instead. It is just a renamed version to align with general namings in this lib.")] + public class TopicFilter : MqttTopicFilter + { + } + + public class MqttTopicFilter { public string Topic { get; set; } diff --git a/Source/MQTTnet/MqttTopicFilterBuilder.cs b/Source/MQTTnet/MqttTopicFilterBuilder.cs new file mode 100644 index 00000000..a88172fc --- /dev/null +++ b/Source/MQTTnet/MqttTopicFilterBuilder.cs @@ -0,0 +1,57 @@ +using MQTTnet.Exceptions; +using MQTTnet.Protocol; +using System; + +namespace MQTTnet +{ + [Obsolete("Use MqttTopicFilter instead. It is just a renamed version to align with general namings in this lib.")] + public class TopicFilterBuilder : MqttTopicFilterBuilder + { + } + + public class MqttTopicFilterBuilder + { + MqttQualityOfServiceLevel _qualityOfServiceLevel = MqttQualityOfServiceLevel.AtMostOnce; + string _topic; + + public MqttTopicFilterBuilder WithTopic(string topic) + { + _topic = topic; + return this; + } + + public MqttTopicFilterBuilder WithQualityOfServiceLevel(MqttQualityOfServiceLevel qualityOfServiceLevel) + { + _qualityOfServiceLevel = qualityOfServiceLevel; + return this; + } + + public MqttTopicFilterBuilder WithAtLeastOnceQoS() + { + _qualityOfServiceLevel = MqttQualityOfServiceLevel.AtLeastOnce; + return this; + } + + public MqttTopicFilterBuilder WithAtMostOnceQoS() + { + _qualityOfServiceLevel = MqttQualityOfServiceLevel.AtMostOnce; + return this; + } + + public MqttTopicFilterBuilder WithExactlyOnceQoS() + { + _qualityOfServiceLevel = MqttQualityOfServiceLevel.ExactlyOnce; + return this; + } + + public MqttTopicFilter Build() + { + if (string.IsNullOrEmpty(_topic)) + { + throw new MqttProtocolViolationException("Topic is not set."); + } + + return new MqttTopicFilter { Topic = _topic, QualityOfServiceLevel = _qualityOfServiceLevel }; + } + } +} diff --git a/Source/MQTTnet/Packets/MqttSubscribePacket.cs b/Source/MQTTnet/Packets/MqttSubscribePacket.cs index 1ea1685f..94061f0d 100644 --- a/Source/MQTTnet/Packets/MqttSubscribePacket.cs +++ b/Source/MQTTnet/Packets/MqttSubscribePacket.cs @@ -7,7 +7,7 @@ namespace MQTTnet.Packets { public ushort? PacketIdentifier { get; set; } - public List TopicFilters { get; set; } = new List(); + public List TopicFilters { get; set; } = new List(); #region Added in MQTTv5 diff --git a/Source/MQTTnet/Server/IMqttRetainedMessagesManager.cs b/Source/MQTTnet/Server/IMqttRetainedMessagesManager.cs index ab1d38ce..07d1c8a2 100644 --- a/Source/MQTTnet/Server/IMqttRetainedMessagesManager.cs +++ b/Source/MQTTnet/Server/IMqttRetainedMessagesManager.cs @@ -16,6 +16,6 @@ namespace MQTTnet.Server Task> GetMessagesAsync(); - Task> GetSubscribedMessagesAsync(ICollection topicFilters); + Task> GetSubscribedMessagesAsync(ICollection topicFilters); } } diff --git a/Source/MQTTnet/Server/IMqttServer.cs b/Source/MQTTnet/Server/IMqttServer.cs index aac66c84..add50224 100644 --- a/Source/MQTTnet/Server/IMqttServer.cs +++ b/Source/MQTTnet/Server/IMqttServer.cs @@ -23,7 +23,7 @@ namespace MQTTnet.Server Task> GetRetainedApplicationMessagesAsync(); Task ClearRetainedApplicationMessagesAsync(); - Task SubscribeAsync(string clientId, ICollection topicFilters); + Task SubscribeAsync(string clientId, ICollection topicFilters); Task UnsubscribeAsync(string clientId, ICollection topicFilters); Task StartAsync(IMqttServerOptions options); diff --git a/Source/MQTTnet/Server/IMqttServerPersistedSession.cs b/Source/MQTTnet/Server/IMqttServerPersistedSession.cs index 18f7165b..9ca40761 100644 --- a/Source/MQTTnet/Server/IMqttServerPersistedSession.cs +++ b/Source/MQTTnet/Server/IMqttServerPersistedSession.cs @@ -9,7 +9,7 @@ namespace MQTTnet.Server IDictionary Items { get; } - IList Subscriptions { get; } + IList Subscriptions { get; } MqttApplicationMessage WillMessage { get; } diff --git a/Source/MQTTnet/Server/MqttClientConnection.cs b/Source/MQTTnet/Server/MqttClientConnection.cs index d22cbe92..43a86777 100644 --- a/Source/MQTTnet/Server/MqttClientConnection.cs +++ b/Source/MQTTnet/Server/MqttClientConnection.cs @@ -282,7 +282,7 @@ namespace MQTTnet.Server _cancellationToken.Cancel(false); } - async Task EnqueueSubscribedRetainedMessagesAsync(ICollection topicFilters) + async Task EnqueueSubscribedRetainedMessagesAsync(ICollection topicFilters) { var retainedMessages = await _retainedMessagesManager.GetSubscribedMessagesAsync(topicFilters).ConfigureAwait(false); foreach (var applicationMessage in retainedMessages) diff --git a/Source/MQTTnet/Server/MqttClientSession.cs b/Source/MQTTnet/Server/MqttClientSession.cs index f318b857..b06a3be5 100644 --- a/Source/MQTTnet/Server/MqttClientSession.cs +++ b/Source/MQTTnet/Server/MqttClientSession.cs @@ -53,7 +53,7 @@ namespace MQTTnet.Server ApplicationMessagesQueue.Enqueue(applicationMessage, senderClientId, checkSubscriptionsResult.QualityOfServiceLevel, isRetainedApplicationMessage); } - public async Task SubscribeAsync(ICollection topicFilters) + public async Task SubscribeAsync(ICollection topicFilters) { if (topicFilters is null) throw new ArgumentNullException(nameof(topicFilters)); diff --git a/Source/MQTTnet/Server/MqttClientSessionsManager.cs b/Source/MQTTnet/Server/MqttClientSessionsManager.cs index b10f8f7b..dd00f4d0 100644 --- a/Source/MQTTnet/Server/MqttClientSessionsManager.cs +++ b/Source/MQTTnet/Server/MqttClientSessionsManager.cs @@ -108,7 +108,7 @@ namespace MQTTnet.Server _messageQueue.Enqueue(new MqttEnqueuedApplicationMessage(applicationMessage, sender)); } - public Task SubscribeAsync(string clientId, ICollection topicFilters) + public Task SubscribeAsync(string clientId, ICollection topicFilters) { if (clientId == null) throw new ArgumentNullException(nameof(clientId)); if (topicFilters == null) throw new ArgumentNullException(nameof(topicFilters)); diff --git a/Source/MQTTnet/Server/MqttClientSubscriptionsManager.cs b/Source/MQTTnet/Server/MqttClientSubscriptionsManager.cs index 59e9f349..48f5bc92 100644 --- a/Source/MQTTnet/Server/MqttClientSubscriptionsManager.cs +++ b/Source/MQTTnet/Server/MqttClientSubscriptionsManager.cs @@ -9,7 +9,7 @@ namespace MQTTnet.Server { public class MqttClientSubscriptionsManager { - private readonly Dictionary _subscriptions = new Dictionary(); + private readonly Dictionary _subscriptions = new Dictionary(); private readonly MqttClientSession _clientSession; private readonly IMqttServerOptions _serverOptions; private readonly MqttServerEventDispatcher _eventDispatcher; @@ -74,7 +74,7 @@ namespace MQTTnet.Server return result; } - public async Task SubscribeAsync(IEnumerable topicFilters) + public async Task SubscribeAsync(IEnumerable topicFilters) { if (topicFilters == null) throw new ArgumentNullException(nameof(topicFilters)); @@ -206,7 +206,7 @@ namespace MQTTnet.Server } } - private async Task InterceptSubscribeAsync(TopicFilter topicFilter) + private async Task InterceptSubscribeAsync(MqttTopicFilter topicFilter) { var context = new MqttSubscriptionInterceptorContext(_clientSession.ClientId, topicFilter, _clientSession.Items); if (_serverOptions.SubscriptionInterceptor != null) diff --git a/Source/MQTTnet/Server/MqttRetainedMessagesManager.cs b/Source/MQTTnet/Server/MqttRetainedMessagesManager.cs index f6a994b9..2684e73a 100644 --- a/Source/MQTTnet/Server/MqttRetainedMessagesManager.cs +++ b/Source/MQTTnet/Server/MqttRetainedMessagesManager.cs @@ -105,7 +105,7 @@ namespace MQTTnet.Server } } - public async Task> GetSubscribedMessagesAsync(ICollection topicFilters) + public async Task> GetSubscribedMessagesAsync(ICollection topicFilters) { if (topicFilters == null) throw new ArgumentNullException(nameof(topicFilters)); diff --git a/Source/MQTTnet/Server/MqttServer.cs b/Source/MQTTnet/Server/MqttServer.cs index fcbde127..dc09cadb 100644 --- a/Source/MQTTnet/Server/MqttServer.cs +++ b/Source/MQTTnet/Server/MqttServer.cs @@ -87,7 +87,7 @@ namespace MQTTnet.Server return _retainedMessagesManager.GetMessagesAsync(); } - public Task SubscribeAsync(string clientId, ICollection topicFilters) + public Task SubscribeAsync(string clientId, ICollection topicFilters) { if (clientId == null) throw new ArgumentNullException(nameof(clientId)); if (topicFilters == null) throw new ArgumentNullException(nameof(topicFilters)); diff --git a/Source/MQTTnet/Server/MqttServerClientSubscribedTopicEventArgs.cs b/Source/MQTTnet/Server/MqttServerClientSubscribedTopicEventArgs.cs index 1454ac94..94d6e264 100644 --- a/Source/MQTTnet/Server/MqttServerClientSubscribedTopicEventArgs.cs +++ b/Source/MQTTnet/Server/MqttServerClientSubscribedTopicEventArgs.cs @@ -4,7 +4,7 @@ namespace MQTTnet.Server { public class MqttServerClientSubscribedTopicEventArgs : EventArgs { - public MqttServerClientSubscribedTopicEventArgs(string clientId, TopicFilter topicFilter) + public MqttServerClientSubscribedTopicEventArgs(string clientId, MqttTopicFilter topicFilter) { ClientId = clientId ?? throw new ArgumentNullException(nameof(clientId)); TopicFilter = topicFilter ?? throw new ArgumentNullException(nameof(topicFilter)); @@ -12,6 +12,6 @@ namespace MQTTnet.Server public string ClientId { get; } - public TopicFilter TopicFilter { get; } + public MqttTopicFilter TopicFilter { get; } } } diff --git a/Source/MQTTnet/Server/MqttServerEventDispatcher.cs b/Source/MQTTnet/Server/MqttServerEventDispatcher.cs index 3bb37681..42723bc9 100644 --- a/Source/MQTTnet/Server/MqttServerEventDispatcher.cs +++ b/Source/MQTTnet/Server/MqttServerEventDispatcher.cs @@ -60,7 +60,7 @@ namespace MQTTnet.Server } } - public async Task SafeNotifyClientSubscribedTopicAsync(string clientId, TopicFilter topicFilter) + public async Task SafeNotifyClientSubscribedTopicAsync(string clientId, MqttTopicFilter topicFilter) { try { diff --git a/Source/MQTTnet/Server/MqttServerExtensions.cs b/Source/MQTTnet/Server/MqttServerExtensions.cs index c38aac76..b0282b37 100644 --- a/Source/MQTTnet/Server/MqttServerExtensions.cs +++ b/Source/MQTTnet/Server/MqttServerExtensions.cs @@ -1,10 +1,10 @@ -using System; +using MQTTnet.Client.Publishing; +using MQTTnet.Client.Receiving; +using MQTTnet.Protocol; +using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; -using MQTTnet.Client.Publishing; -using MQTTnet.Client.Receiving; -using MQTTnet.Protocol; namespace MQTTnet.Server { @@ -106,7 +106,7 @@ namespace MQTTnet.Server return server; } - public static Task SubscribeAsync(this IMqttServer server, string clientId, params TopicFilter[] topicFilters) + public static Task SubscribeAsync(this IMqttServer server, string clientId, params MqttTopicFilter[] topicFilters) { if (server == null) throw new ArgumentNullException(nameof(server)); if (clientId == null) throw new ArgumentNullException(nameof(clientId)); @@ -121,7 +121,7 @@ namespace MQTTnet.Server if (clientId == null) throw new ArgumentNullException(nameof(clientId)); if (topic == null) throw new ArgumentNullException(nameof(topic)); - return server.SubscribeAsync(clientId, new TopicFilterBuilder().WithTopic(topic).WithQualityOfServiceLevel(qualityOfServiceLevel).Build()); + return server.SubscribeAsync(clientId, new MqttTopicFilterBuilder().WithTopic(topic).WithQualityOfServiceLevel(qualityOfServiceLevel).Build()); } public static Task SubscribeAsync(this IMqttServer server, string clientId, string topic) @@ -130,7 +130,7 @@ namespace MQTTnet.Server if (clientId == null) throw new ArgumentNullException(nameof(clientId)); if (topic == null) throw new ArgumentNullException(nameof(topic)); - return server.SubscribeAsync(clientId, new TopicFilterBuilder().WithTopic(topic).Build()); + return server.SubscribeAsync(clientId, new MqttTopicFilterBuilder().WithTopic(topic).Build()); } public static Task UnsubscribeAsync(this IMqttServer server, string clientId, params string[] topicFilters) diff --git a/Source/MQTTnet/Server/MqttSubscriptionInterceptorContext.cs b/Source/MQTTnet/Server/MqttSubscriptionInterceptorContext.cs index 7e3963b2..0d800c85 100644 --- a/Source/MQTTnet/Server/MqttSubscriptionInterceptorContext.cs +++ b/Source/MQTTnet/Server/MqttSubscriptionInterceptorContext.cs @@ -4,7 +4,7 @@ namespace MQTTnet.Server { public class MqttSubscriptionInterceptorContext { - public MqttSubscriptionInterceptorContext(string clientId, TopicFilter topicFilter, IDictionary sessionItems) + public MqttSubscriptionInterceptorContext(string clientId, MqttTopicFilter topicFilter, IDictionary sessionItems) { ClientId = clientId; TopicFilter = topicFilter; @@ -13,7 +13,7 @@ namespace MQTTnet.Server public string ClientId { get; } - public TopicFilter TopicFilter { get; set; } + public MqttTopicFilter TopicFilter { get; set; } /// /// Gets or sets a key/value collection that can be used to share data within the scope of this session. diff --git a/Source/MQTTnet/TopicFilterBuilder.cs b/Source/MQTTnet/TopicFilterBuilder.cs deleted file mode 100644 index a4802637..00000000 --- a/Source/MQTTnet/TopicFilterBuilder.cs +++ /dev/null @@ -1,51 +0,0 @@ -using MQTTnet.Exceptions; -using MQTTnet.Protocol; - -namespace MQTTnet -{ - public class TopicFilterBuilder - { - private MqttQualityOfServiceLevel _qualityOfServiceLevel = MqttQualityOfServiceLevel.AtMostOnce; - private string _topic; - - public TopicFilterBuilder WithTopic(string topic) - { - _topic = topic; - return this; - } - - public TopicFilterBuilder WithQualityOfServiceLevel(MqttQualityOfServiceLevel qualityOfServiceLevel) - { - _qualityOfServiceLevel = qualityOfServiceLevel; - return this; - } - - public TopicFilterBuilder WithAtLeastOnceQoS() - { - _qualityOfServiceLevel = MqttQualityOfServiceLevel.AtLeastOnce; - return this; - } - - public TopicFilterBuilder WithAtMostOnceQoS() - { - _qualityOfServiceLevel = MqttQualityOfServiceLevel.AtMostOnce; - return this; - } - - public TopicFilterBuilder WithExactlyOnceQoS() - { - _qualityOfServiceLevel = MqttQualityOfServiceLevel.ExactlyOnce; - return this; - } - - public TopicFilter Build() - { - if (string.IsNullOrEmpty(_topic)) - { - throw new MqttProtocolViolationException("Topic is not set."); - } - - return new TopicFilter { Topic = _topic, QualityOfServiceLevel = _qualityOfServiceLevel }; - } - } -} diff --git a/Tests/MQTTnet.Core.Tests/LowLevelMqttClient_Tests.cs b/Tests/MQTTnet.Core.Tests/LowLevelMqttClient_Tests.cs index 05440de3..7828ea30 100644 --- a/Tests/MQTTnet.Core.Tests/LowLevelMqttClient_Tests.cs +++ b/Tests/MQTTnet.Core.Tests/LowLevelMqttClient_Tests.cs @@ -95,9 +95,9 @@ namespace MQTTnet.Tests await client.SendAsync(new MqttSubscribePacket { PacketIdentifier = 1, - TopicFilters = new List + TopicFilters = new List { - new TopicFilter + new MqttTopicFilter { Topic = topic } diff --git a/Tests/MQTTnet.Core.Tests/MQTTv5/Client_Tests.cs b/Tests/MQTTnet.Core.Tests/MQTTv5/Client_Tests.cs index f033b5bf..5c95d7dc 100644 --- a/Tests/MQTTnet.Core.Tests/MQTTv5/Client_Tests.cs +++ b/Tests/MQTTnet.Core.Tests/MQTTv5/Client_Tests.cs @@ -171,9 +171,9 @@ namespace MQTTnet.Tests.MQTTv5 var result = await client.SubscribeAsync(new MqttClientSubscribeOptions() { SubscriptionIdentifier = 1, - TopicFilters = new List + TopicFilters = new List { - new TopicFilter { Topic = "a", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtLeastOnce} + new MqttTopicFilter { Topic = "a", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtLeastOnce} } }); diff --git a/Tests/MQTTnet.Core.Tests/MQTTv5/Feature_Tests.cs b/Tests/MQTTnet.Core.Tests/MQTTv5/Feature_Tests.cs index 6507fffc..41b20994 100644 --- a/Tests/MQTTnet.Core.Tests/MQTTv5/Feature_Tests.cs +++ b/Tests/MQTTnet.Core.Tests/MQTTv5/Feature_Tests.cs @@ -34,9 +34,9 @@ namespace MQTTnet.Tests.MQTTv5 await receiver.SubscribeAsync(new MqttClientSubscribeOptions { - TopicFilters = new List + TopicFilters = new List { - new TopicFilter { Topic = "#" } + new MqttTopicFilter { Topic = "#" } } }, CancellationToken.None); diff --git a/Tests/MQTTnet.Core.Tests/MQTTv5/Server_Tests.cs b/Tests/MQTTnet.Core.Tests/MQTTv5/Server_Tests.cs index 014bd922..43b923d9 100644 --- a/Tests/MQTTnet.Core.Tests/MQTTv5/Server_Tests.cs +++ b/Tests/MQTTnet.Core.Tests/MQTTv5/Server_Tests.cs @@ -1,10 +1,10 @@ -using System.Threading; -using System.Threading.Tasks; -using Microsoft.VisualStudio.TestTools.UnitTesting; +using Microsoft.VisualStudio.TestTools.UnitTesting; using MQTTnet.Client; using MQTTnet.Client.Options; using MQTTnet.Formatter; using MQTTnet.Tests.Mockups; +using System.Threading; +using System.Threading.Tasks; namespace MQTTnet.Tests.MQTTv5 { @@ -28,7 +28,7 @@ namespace MQTTnet.Tests.MQTTv5 var c1 = await testEnvironment.ConnectClientAsync(new MqttClientOptionsBuilder().WithProtocolVersion(MqttProtocolVersion.V500)); c1.UseApplicationMessageReceivedHandler(c => Interlocked.Increment(ref receivedMessagesCount)); - await c1.SubscribeAsync(new TopicFilterBuilder().WithTopic("#").Build()); + await c1.SubscribeAsync(new MqttTopicFilterBuilder().WithTopic("#").Build()); var c2 = await testEnvironment.ConnectClientAsync(clientOptions); c2.Dispose(); // Dispose will not send a DISCONNECT pattern first so the will message must be sent. diff --git a/Tests/MQTTnet.Core.Tests/Mockups/TestServerWrapper.cs b/Tests/MQTTnet.Core.Tests/Mockups/TestServerWrapper.cs index eb88b7ae..abb0a3c9 100644 --- a/Tests/MQTTnet.Core.Tests/Mockups/TestServerWrapper.cs +++ b/Tests/MQTTnet.Core.Tests/Mockups/TestServerWrapper.cs @@ -123,7 +123,7 @@ namespace MQTTnet.Tests.Mockups return Implementation.StopAsync(); } - public Task SubscribeAsync(string clientId, ICollection topicFilters) + public Task SubscribeAsync(string clientId, ICollection topicFilters) { return Implementation.SubscribeAsync(clientId, topicFilters); } diff --git a/Tests/MQTTnet.Core.Tests/MqttClient_Tests.cs b/Tests/MQTTnet.Core.Tests/MqttClient_Tests.cs index 1a815128..5c990315 100644 --- a/Tests/MQTTnet.Core.Tests/MqttClient_Tests.cs +++ b/Tests/MQTTnet.Core.Tests/MqttClient_Tests.cs @@ -650,7 +650,7 @@ namespace MQTTnet.Tests await receiver.SubscribeAsync(new MqttClientSubscribeOptions { - TopicFilters = new List { new TopicFilter { Topic = "#" } } + TopicFilters = new List { new MqttTopicFilter { Topic = "#" } } }, CancellationToken.None); MqttApplicationMessage receivedMessage = null; diff --git a/Tests/MQTTnet.Core.Tests/MqttKeepAliveMonitor_Tests.cs b/Tests/MQTTnet.Core.Tests/MqttKeepAliveMonitor_Tests.cs index 73ed8466..e275e97f 100644 --- a/Tests/MQTTnet.Core.Tests/MqttKeepAliveMonitor_Tests.cs +++ b/Tests/MQTTnet.Core.Tests/MqttKeepAliveMonitor_Tests.cs @@ -100,7 +100,7 @@ namespace MQTTnet.Tests return Task.FromResult(0); } - public Task SubscribeAsync(IList topicFilters) + public Task SubscribeAsync(IList topicFilters) { throw new NotSupportedException(); } diff --git a/Tests/MQTTnet.Core.Tests/MqttPacketSerializer_Tests.cs b/Tests/MQTTnet.Core.Tests/MqttPacketSerializer_Tests.cs index a1f798a8..7530397e 100644 --- a/Tests/MQTTnet.Core.Tests/MqttPacketSerializer_Tests.cs +++ b/Tests/MQTTnet.Core.Tests/MqttPacketSerializer_Tests.cs @@ -449,9 +449,9 @@ namespace MQTTnet.Tests PacketIdentifier = 123 }; - p.TopicFilters.Add(new TopicFilter { Topic = "A/B/C", QualityOfServiceLevel = MqttQualityOfServiceLevel.ExactlyOnce }); - p.TopicFilters.Add(new TopicFilter { Topic = "1/2/3", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtLeastOnce }); - p.TopicFilters.Add(new TopicFilter { Topic = "x/y/z", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtMostOnce }); + p.TopicFilters.Add(new MqttTopicFilter { Topic = "A/B/C", QualityOfServiceLevel = MqttQualityOfServiceLevel.ExactlyOnce }); + p.TopicFilters.Add(new MqttTopicFilter { Topic = "1/2/3", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtLeastOnce }); + p.TopicFilters.Add(new MqttTopicFilter { Topic = "x/y/z", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtMostOnce }); SerializeAndCompare(p, "ghoAewAFQS9CL0MCAAUxLzIvMwEABXgveS96AA=="); } @@ -464,9 +464,9 @@ namespace MQTTnet.Tests PacketIdentifier = 123 }; - p.TopicFilters.Add(new TopicFilter { Topic = "A/B/C", QualityOfServiceLevel = MqttQualityOfServiceLevel.ExactlyOnce }); - p.TopicFilters.Add(new TopicFilter { Topic = "1/2/3", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtLeastOnce }); - p.TopicFilters.Add(new TopicFilter { Topic = "x/y/z", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtMostOnce }); + p.TopicFilters.Add(new MqttTopicFilter { Topic = "A/B/C", QualityOfServiceLevel = MqttQualityOfServiceLevel.ExactlyOnce }); + p.TopicFilters.Add(new MqttTopicFilter { Topic = "1/2/3", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtLeastOnce }); + p.TopicFilters.Add(new MqttTopicFilter { Topic = "x/y/z", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtMostOnce }); DeserializeAndCompare(p, "ghoAewAFQS9CL0MCAAUxLzIvMwEABXgveS96AA=="); } diff --git a/Tests/MQTTnet.Core.Tests/MqttSubscriptionsManager_Tests.cs b/Tests/MQTTnet.Core.Tests/MqttSubscriptionsManager_Tests.cs index 3c7724d6..3bab0aa9 100644 --- a/Tests/MQTTnet.Core.Tests/MqttSubscriptionsManager_Tests.cs +++ b/Tests/MQTTnet.Core.Tests/MqttSubscriptionsManager_Tests.cs @@ -19,7 +19,7 @@ namespace MQTTnet.Tests var sm = new MqttClientSubscriptionsManager(s, new MqttServerEventDispatcher(new TestLogger()), new MqttServerOptions()); var sp = new MqttSubscribePacket(); - sp.TopicFilters.Add(new TopicFilterBuilder().WithTopic("A/B/C").Build()); + sp.TopicFilters.Add(new MqttTopicFilterBuilder().WithTopic("A/B/C").Build()); await sm.SubscribeAsync(sp, new MqttConnectPacket()); @@ -36,7 +36,7 @@ namespace MQTTnet.Tests var sm = new MqttClientSubscriptionsManager(s, new MqttServerEventDispatcher(new TestLogger()), new MqttServerOptions()); var sp = new MqttSubscribePacket(); - sp.TopicFilters.Add(new TopicFilter { Topic = "A/B/C", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtMostOnce }); + sp.TopicFilters.Add(new MqttTopicFilter { Topic = "A/B/C", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtMostOnce }); await sm.SubscribeAsync(sp, new MqttConnectPacket()); @@ -53,8 +53,8 @@ namespace MQTTnet.Tests var sm = new MqttClientSubscriptionsManager(s, new MqttServerEventDispatcher(new TestLogger()), new MqttServerOptions()); var sp = new MqttSubscribePacket(); - sp.TopicFilters.Add(new TopicFilter { Topic = "#", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtMostOnce }); - sp.TopicFilters.Add(new TopicFilter { Topic = "A/B/C", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtLeastOnce }); + sp.TopicFilters.Add(new MqttTopicFilter { Topic = "#", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtMostOnce }); + sp.TopicFilters.Add(new MqttTopicFilter { Topic = "A/B/C", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtLeastOnce }); await sm.SubscribeAsync(sp, new MqttConnectPacket()); @@ -71,7 +71,7 @@ namespace MQTTnet.Tests var sm = new MqttClientSubscriptionsManager(s, new MqttServerEventDispatcher(new TestLogger()), new MqttServerOptions()); var sp = new MqttSubscribePacket(); - sp.TopicFilters.Add(new TopicFilterBuilder().WithTopic("A/B/C").Build()); + sp.TopicFilters.Add(new MqttTopicFilterBuilder().WithTopic("A/B/C").Build()); await sm.SubscribeAsync(sp, new MqttConnectPacket()); @@ -86,7 +86,7 @@ namespace MQTTnet.Tests var sm = new MqttClientSubscriptionsManager(s, new MqttServerEventDispatcher(new TestLogger()), new MqttServerOptions()); var sp = new MqttSubscribePacket(); - sp.TopicFilters.Add(new TopicFilterBuilder().WithTopic("A/B/C").Build()); + sp.TopicFilters.Add(new MqttTopicFilterBuilder().WithTopic("A/B/C").Build()); await sm.SubscribeAsync(sp, new MqttConnectPacket()); diff --git a/Tests/MQTTnet.Core.Tests/Server_Tests.cs b/Tests/MQTTnet.Core.Tests/Server_Tests.cs index e40eba05..ed22a566 100644 --- a/Tests/MQTTnet.Core.Tests/Server_Tests.cs +++ b/Tests/MQTTnet.Core.Tests/Server_Tests.cs @@ -111,7 +111,7 @@ namespace MQTTnet.Tests var c1 = await testEnvironment.ConnectClientAsync(); c1.ApplicationMessageReceivedHandler = new MqttApplicationMessageReceivedHandlerDelegate(c => Interlocked.Increment(ref receivedMessagesCount)); - await c1.SubscribeAsync(new TopicFilterBuilder().WithTopic("#").Build()); + await c1.SubscribeAsync(new MqttTopicFilterBuilder().WithTopic("#").Build()); var c2 = await testEnvironment.ConnectClientAsync(clientOptions); await c2.DisconnectAsync().ConfigureAwait(false); @@ -137,7 +137,7 @@ namespace MQTTnet.Tests var c1 = await testEnvironment.ConnectClientAsync(); c1.UseApplicationMessageReceivedHandler(c => Interlocked.Increment(ref receivedMessagesCount)); - await c1.SubscribeAsync(new TopicFilterBuilder().WithTopic("#").Build()); + await c1.SubscribeAsync(new MqttTopicFilterBuilder().WithTopic("#").Build()); var c2 = await testEnvironment.ConnectClientAsync(clientOptions); c2.Dispose(); // Dispose will not send a DISCONNECT pattern first so the will message must be sent. @@ -213,7 +213,7 @@ namespace MQTTnet.Tests subscribeEventCalled = e.TopicFilter.Topic == "a" && e.ClientId == c1.Options.ClientId; }); - await c1.SubscribeAsync(new TopicFilter { Topic = "a", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtLeastOnce }); + await c1.SubscribeAsync(new MqttTopicFilter { Topic = "a", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtLeastOnce }); await Task.Delay(250); Assert.IsTrue(subscribeEventCalled, "Subscribe event not called."); @@ -326,7 +326,7 @@ namespace MQTTnet.Tests client.UseApplicationMessageReceivedHandler(c => Interlocked.Increment(ref receivedMessagesCount)); var message = new MqttApplicationMessageBuilder().WithTopic("a").WithAtLeastOnceQoS().Build(); - await client.SubscribeAsync(new TopicFilter { Topic = "a", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtLeastOnce }); + await client.SubscribeAsync(new MqttTopicFilter { Topic = "a", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtLeastOnce }); await server.PublishAsync(message); @@ -365,8 +365,8 @@ namespace MQTTnet.Tests } }); - await c1.SubscribeAsync(new TopicFilter { Topic = "a", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtLeastOnce }); - await c2.SubscribeAsync(new TopicFilter { Topic = "a", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtLeastOnce }); + await c1.SubscribeAsync(new MqttTopicFilter { Topic = "a", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtLeastOnce }); + await c2.SubscribeAsync(new MqttTopicFilter { Topic = "a", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtLeastOnce }); var message = new MqttApplicationMessageBuilder().WithTopic("a").WithAtLeastOnceQoS().Build(); @@ -653,7 +653,7 @@ namespace MQTTnet.Tests var c2 = await testEnvironment.ConnectClientAsync(); c2.UseApplicationMessageReceivedHandler(c => Interlocked.Increment(ref receivedMessagesCount)); - await c2.SubscribeAsync(new TopicFilterBuilder().WithTopic("retained_other").Build()); + await c2.SubscribeAsync(new MqttTopicFilterBuilder().WithTopic("retained_other").Build()); await Task.Delay(500); @@ -683,7 +683,7 @@ namespace MQTTnet.Tests } }); - await c2.SubscribeAsync(new TopicFilterBuilder().WithTopic("retained").Build()); + await c2.SubscribeAsync(new MqttTopicFilterBuilder().WithTopic("retained").Build()); await Task.Delay(500); @@ -713,7 +713,7 @@ namespace MQTTnet.Tests c2.UseApplicationMessageReceivedHandler(c => Interlocked.Increment(ref receivedMessagesCount)); await Task.Delay(200); - await c2.SubscribeAsync(new TopicFilter { Topic = "retained", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtMostOnce }); + await c2.SubscribeAsync(new MqttTopicFilter { Topic = "retained", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtMostOnce }); await Task.Delay(500); Assert.AreEqual(0, receivedMessagesCount); @@ -741,7 +741,7 @@ namespace MQTTnet.Tests c2.UseApplicationMessageReceivedHandler(c => Interlocked.Increment(ref receivedMessagesCount)); await Task.Delay(200); - await c2.SubscribeAsync(new TopicFilter { Topic = "retained", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtMostOnce }); + await c2.SubscribeAsync(new MqttTopicFilter { Topic = "retained", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtMostOnce }); await Task.Delay(500); Assert.AreEqual(0, receivedMessagesCount); @@ -830,7 +830,7 @@ namespace MQTTnet.Tests var c1 = await testEnvironment.ConnectClientAsync(); var c2 = await testEnvironment.ConnectClientAsync(); - await c2.SubscribeAsync(new TopicFilterBuilder().WithTopic("test").Build()); + await c2.SubscribeAsync(new MqttTopicFilterBuilder().WithTopic("test").Build()); var isIntercepted = false; c2.UseApplicationMessageReceivedHandler(c => @@ -1241,7 +1241,7 @@ namespace MQTTnet.Tests } }); - await client2.SubscribeAsync(new TopicFilter { Topic = "y" }, new TopicFilter { Topic = "n" }); + await client2.SubscribeAsync(new MqttTopicFilter { Topic = "y" }, new MqttTopicFilter { Topic = "n" }); await Task.Delay(500); @@ -1299,7 +1299,7 @@ namespace MQTTnet.Tests var c1 = await testEnvironment.ConnectClientAsync(new MqttClientOptionsBuilder().WithClientId("receiver")); c1.UseApplicationMessageReceivedHandler(c => Interlocked.Increment(ref receivedMessagesCount)); - await c1.SubscribeAsync(new TopicFilterBuilder().WithTopic(topicFilter).WithQualityOfServiceLevel(filterQualityOfServiceLevel).Build()); + await c1.SubscribeAsync(new MqttTopicFilterBuilder().WithTopic(topicFilter).WithQualityOfServiceLevel(filterQualityOfServiceLevel).Build()); var c2 = await testEnvironment.ConnectClientAsync(new MqttClientOptionsBuilder().WithClientId("sender")); await c2.PublishAsync(new MqttApplicationMessageBuilder().WithTopic(topic).WithPayload(new byte[0]).WithQualityOfServiceLevel(qualityOfServiceLevel).Build()); diff --git a/Tests/MQTTnet.TestApp.NetCore/ClientTest.cs b/Tests/MQTTnet.TestApp.NetCore/ClientTest.cs index 09f85777..2eedef64 100644 --- a/Tests/MQTTnet.TestApp.NetCore/ClientTest.cs +++ b/Tests/MQTTnet.TestApp.NetCore/ClientTest.cs @@ -1,12 +1,12 @@ -using System; -using System.Text; -using System.Threading.Tasks; -using MQTTnet.Client; +using MQTTnet.Client; using MQTTnet.Client.Connecting; using MQTTnet.Client.Disconnecting; using MQTTnet.Client.Options; using MQTTnet.Client.Receiving; using MQTTnet.Protocol; +using System; +using System.Text; +using System.Threading.Tasks; namespace MQTTnet.TestApp.NetCore { @@ -42,12 +42,12 @@ namespace MQTTnet.TestApp.NetCore { Console.WriteLine("### CONNECTED WITH SERVER ###"); - await client.SubscribeAsync(new TopicFilterBuilder().WithTopic("#").Build()); + await client.SubscribeAsync(new MqttTopicFilterBuilder().WithTopic("#").Build()); Console.WriteLine("### SUBSCRIBED ###"); }); - client.DisconnectedHandler = new MqttClientDisconnectedHandlerDelegate(async e => + client.DisconnectedHandler = new MqttClientDisconnectedHandlerDelegate(async e => { Console.WriteLine("### DISCONNECTED FROM SERVER ###"); await Task.Delay(TimeSpan.FromSeconds(5)); @@ -77,7 +77,7 @@ namespace MQTTnet.TestApp.NetCore { Console.ReadLine(); - await client.SubscribeAsync(new TopicFilter { Topic = "test", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtMostOnce }); + await client.SubscribeAsync(new MqttTopicFilter { Topic = "test", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtMostOnce }); var applicationMessage = new MqttApplicationMessageBuilder() .WithTopic("A/B/C") diff --git a/Tests/MQTTnet.TestApp.NetCore/ManagedClientTest.cs b/Tests/MQTTnet.TestApp.NetCore/ManagedClientTest.cs index c4fd68fb..663d6ec3 100644 --- a/Tests/MQTTnet.TestApp.NetCore/ManagedClientTest.cs +++ b/Tests/MQTTnet.TestApp.NetCore/ManagedClientTest.cs @@ -45,8 +45,8 @@ namespace MQTTnet.TestApp.NetCore await managedClient.PublishAsync(builder => builder.WithTopic("Step").WithPayload("1")); await managedClient.PublishAsync(builder => builder.WithTopic("Step").WithPayload("2").WithAtLeastOnceQoS()); - await managedClient.SubscribeAsync(new TopicFilter { Topic = "xyz", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtMostOnce }); - await managedClient.SubscribeAsync(new TopicFilter { Topic = "abc", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtMostOnce }); + await managedClient.SubscribeAsync(new MqttTopicFilter { Topic = "xyz", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtMostOnce }); + await managedClient.SubscribeAsync(new MqttTopicFilter { Topic = "abc", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtMostOnce }); await managedClient.PublishAsync(builder => builder.WithTopic("Step").WithPayload("3")); diff --git a/Tests/MQTTnet.TestApp.UniversalWindows/MainPage.xaml.cs b/Tests/MQTTnet.TestApp.UniversalWindows/MainPage.xaml.cs index af655d19..836e01f6 100644 --- a/Tests/MQTTnet.TestApp.UniversalWindows/MainPage.xaml.cs +++ b/Tests/MQTTnet.TestApp.UniversalWindows/MainPage.xaml.cs @@ -334,7 +334,7 @@ namespace MQTTnet.TestApp.UniversalWindows qos = MqttQualityOfServiceLevel.ExactlyOnce; } - var topicFilter = new TopicFilter { Topic = SubscribeTopic.Text, QualityOfServiceLevel = qos }; + var topicFilter = new MqttTopicFilter { Topic = SubscribeTopic.Text, QualityOfServiceLevel = qos }; if (_mqttClient != null) { @@ -559,13 +559,13 @@ namespace MQTTnet.TestApp.UniversalWindows Console.WriteLine("### CONNECTED WITH SERVER ###"); // Subscribe to a topic - await client.SubscribeAsync(new TopicFilterBuilder().WithTopic("my/topic").Build()); + await client.SubscribeAsync(new MqttTopicFilterBuilder().WithTopic("my/topic").Build()); Console.WriteLine("### SUBSCRIBED ###"); }); // Subscribe to a topic - await client.SubscribeAsync(new TopicFilterBuilder().WithTopic("my/topic").Build()); + await client.SubscribeAsync(new MqttTopicFilterBuilder().WithTopic("my/topic").Build()); // Unsubscribe from a topic await client.UnsubscribeAsync("my/topic"); @@ -791,7 +791,7 @@ namespace MQTTnet.TestApp.UniversalWindows .Build(); var mqttClient = new MqttFactory().CreateManagedMqttClient(); - await mqttClient.SubscribeAsync(new TopicFilterBuilder().WithTopic("my/topic").Build()); + await mqttClient.SubscribeAsync(new MqttTopicFilterBuilder().WithTopic("my/topic").Build()); await mqttClient.StartAsync(options); }