Fix build errors by no longer using not supported language features for certain TFMs.

This commit is contained in:
christian
2024-04-09 21:34:15 +02:00
parent d061da6077
commit 67e0fb8b0b
2 changed files with 42 additions and 21 deletions
@@ -379,11 +379,11 @@ namespace MQTTnet.Extensions.ManagedClient
} }
} }
async Task HandleSubscriptionsResultAsync(List<MqttClientSubscribeResult> subscribeResults, List<MqttClientUnsubscribeResult> unsubscribeResults) async Task HandleSubscriptionsResultAsync(SendSubscribeUnsubscribeResult subscribeUnsubscribeResult)
{ {
if (_subscriptionsChangedEvent.HasHandlers) if (_subscriptionsChangedEvent.HasHandlers)
{ {
await _subscriptionsChangedEvent.InvokeAsync(new SubscriptionsChangedEventArgs(subscribeResults, unsubscribeResults)).ConfigureAwait(false); await _subscriptionsChangedEvent.InvokeAsync(new SubscriptionsChangedEventArgs(subscribeUnsubscribeResult.SubscribeResults, subscribeUnsubscribeResult.UnsubscribeResults)).ConfigureAwait(false);
} }
} }
@@ -488,8 +488,7 @@ namespace MQTTnet.Extensions.ManagedClient
if (_reconnectSubscriptions.Any()) if (_reconnectSubscriptions.Any())
{ {
topicFilters = new List<MqttTopicFilter>(); topicFilters = new List<MqttTopicFilter>();
List<MqttClientSubscribeResult> subscribeResults; SendSubscribeUnsubscribeResult subscribeUnsubscribeResult;
List<MqttClientUnsubscribeResult> unsubscribeResults;
foreach (var sub in _reconnectSubscriptions) foreach (var sub in _reconnectSubscriptions)
{ {
@@ -497,14 +496,14 @@ namespace MQTTnet.Extensions.ManagedClient
if (topicFilters.Count == Options.MaxTopicFiltersInSubscribeUnsubscribePackets) if (topicFilters.Count == Options.MaxTopicFiltersInSubscribeUnsubscribePackets)
{ {
(subscribeResults, unsubscribeResults) = await SendSubscribeUnsubscribe(topicFilters, null).ConfigureAwait(false); subscribeUnsubscribeResult = await SendSubscribeUnsubscribe(topicFilters, null).ConfigureAwait(false);
topicFilters.Clear(); topicFilters.Clear();
await HandleSubscriptionsResultAsync(subscribeResults, unsubscribeResults).ConfigureAwait(false); await HandleSubscriptionsResultAsync(subscribeUnsubscribeResult).ConfigureAwait(false);
} }
} }
(subscribeResults, unsubscribeResults) = await SendSubscribeUnsubscribe(topicFilters, null).ConfigureAwait(false); subscribeUnsubscribeResult = await SendSubscribeUnsubscribe(topicFilters, null).ConfigureAwait(false);
await HandleSubscriptionsResultAsync(subscribeResults, unsubscribeResults).ConfigureAwait(false); await HandleSubscriptionsResultAsync(subscribeUnsubscribeResult).ConfigureAwait(false);
} }
} }
catch (Exception exception) catch (Exception exception)
@@ -520,8 +519,7 @@ namespace MQTTnet.Extensions.ManagedClient
while (await _subscriptionsQueuedSignal.WaitAsync(GetRemainingTime(endTime), cancellationToken).ConfigureAwait(false)) while (await _subscriptionsQueuedSignal.WaitAsync(GetRemainingTime(endTime), cancellationToken).ConfigureAwait(false))
{ {
List<MqttTopicFilter> subscriptions; List<MqttTopicFilter> subscriptions;
List<MqttClientSubscribeResult> subscribeResults; SendSubscribeUnsubscribeResult subscribeUnsubscribeResult;
List<MqttClientUnsubscribeResult> unsubscribeResults;
HashSet<string> unsubscriptions; HashSet<string> unsubscriptions;
lock (_subscriptions) lock (_subscriptions)
@@ -557,14 +555,14 @@ namespace MQTTnet.Extensions.ManagedClient
if (addedTopicFilters.Count == Options.MaxTopicFiltersInSubscribeUnsubscribePackets) if (addedTopicFilters.Count == Options.MaxTopicFiltersInSubscribeUnsubscribePackets)
{ {
(subscribeResults, unsubscribeResults) = await SendSubscribeUnsubscribe(addedTopicFilters, null).ConfigureAwait(false); subscribeUnsubscribeResult = await SendSubscribeUnsubscribe(addedTopicFilters, null).ConfigureAwait(false);
addedTopicFilters.Clear(); addedTopicFilters.Clear();
await HandleSubscriptionsResultAsync(subscribeResults, unsubscribeResults).ConfigureAwait(false); await HandleSubscriptionsResultAsync(subscribeUnsubscribeResult).ConfigureAwait(false);
} }
} }
(subscribeResults, unsubscribeResults) = await SendSubscribeUnsubscribe(addedTopicFilters, null).ConfigureAwait(false); subscribeUnsubscribeResult = await SendSubscribeUnsubscribe(addedTopicFilters, null).ConfigureAwait(false);
await HandleSubscriptionsResultAsync(subscribeResults, unsubscribeResults).ConfigureAwait(false); await HandleSubscriptionsResultAsync(subscribeUnsubscribeResult).ConfigureAwait(false);
var removedTopicFilters = new List<string>(); var removedTopicFilters = new List<string>();
foreach (var unSub in unsubscriptions) foreach (var unSub in unsubscriptions)
@@ -573,14 +571,14 @@ namespace MQTTnet.Extensions.ManagedClient
if (removedTopicFilters.Count == Options.MaxTopicFiltersInSubscribeUnsubscribePackets) if (removedTopicFilters.Count == Options.MaxTopicFiltersInSubscribeUnsubscribePackets)
{ {
(subscribeResults, unsubscribeResults) = await SendSubscribeUnsubscribe(null, removedTopicFilters).ConfigureAwait(false); subscribeUnsubscribeResult = await SendSubscribeUnsubscribe(null, removedTopicFilters).ConfigureAwait(false);
removedTopicFilters.Clear(); removedTopicFilters.Clear();
await HandleSubscriptionsResultAsync(subscribeResults, unsubscribeResults).ConfigureAwait(false); await HandleSubscriptionsResultAsync(subscribeUnsubscribeResult).ConfigureAwait(false);
} }
} }
(subscribeResults, unsubscribeResults) = await SendSubscribeUnsubscribe(null, removedTopicFilters).ConfigureAwait(false); subscribeUnsubscribeResult = await SendSubscribeUnsubscribe(null, removedTopicFilters).ConfigureAwait(false);
await HandleSubscriptionsResultAsync(subscribeResults, unsubscribeResults).ConfigureAwait(false); await HandleSubscriptionsResultAsync(subscribeUnsubscribeResult).ConfigureAwait(false);
} }
} }
@@ -613,7 +611,7 @@ namespace MQTTnet.Extensions.ManagedClient
} }
} }
async Task<(List<MqttClientSubscribeResult> SubscribeResults, List<MqttClientUnsubscribeResult> UnsubscribeResults)> SendSubscribeUnsubscribe(List<MqttTopicFilter> addedSubscriptions, List<string> removedSubscriptions) async Task<SendSubscribeUnsubscribeResult> SendSubscribeUnsubscribe(List<MqttTopicFilter> addedSubscriptions, List<string> removedSubscriptions)
{ {
var subscribeResults = new List<MqttClientSubscribeResult>(); var subscribeResults = new List<MqttClientSubscribeResult>();
var unsubscribeResults = new List<MqttClientUnsubscribeResult>(); var unsubscribeResults = new List<MqttClientUnsubscribeResult>();
@@ -653,7 +651,7 @@ namespace MQTTnet.Extensions.ManagedClient
await HandleSubscriptionExceptionAsync(exception, addedSubscriptions, removedSubscriptions).ConfigureAwait(false); await HandleSubscriptionExceptionAsync(exception, addedSubscriptions, removedSubscriptions).ConfigureAwait(false);
} }
return (subscribeResults, unsubscribeResults); return new SendSubscribeUnsubscribeResult(subscribeResults, unsubscribeResults);
} }
void StartPublishing() void StartPublishing()
@@ -0,0 +1,23 @@
// 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 System;
using System.Collections.Generic;
using MQTTnet.Client;
namespace MQTTnet.Extensions.ManagedClient
{
public sealed class SendSubscribeUnsubscribeResult
{
public SendSubscribeUnsubscribeResult(List<MqttClientSubscribeResult> subscribeResults, List<MqttClientUnsubscribeResult> unsubscribeResults)
{
SubscribeResults = subscribeResults ?? throw new ArgumentNullException(nameof(subscribeResults));
UnsubscribeResults = unsubscribeResults ?? throw new ArgumentNullException(nameof(unsubscribeResults));
}
public List<MqttClientSubscribeResult> SubscribeResults { get; private set; }
public List<MqttClientUnsubscribeResult> UnsubscribeResults { get; private set; }
}
}