Create default MqttRetainedMessagesManager in options

This commit is contained in:
Federico Di Gregorio
2019-12-18 10:25:24 +01:00
parent 55676965d9
commit 3600ebbc62
3 changed files with 26 additions and 2 deletions
@@ -0,0 +1,21 @@
using System;
namespace MQTTnet.Exceptions
{
public class MqttConfigurationException : Exception
{
protected MqttConfigurationException()
{
}
public MqttConfigurationException(Exception innerException)
: base(innerException.Message, innerException)
{
}
public MqttConfigurationException(string message)
: base(message)
{
}
}
}
+4 -1
View File
@@ -7,6 +7,7 @@ using MQTTnet.Adapter;
using MQTTnet.Client.Publishing;
using MQTTnet.Client.Receiving;
using MQTTnet.Diagnostics;
using MQTTnet.Exceptions;
using MQTTnet.Protocol;
using MQTTnet.Server.Status;
@@ -117,11 +118,13 @@ namespace MQTTnet.Server
{
Options = options ?? throw new ArgumentNullException(nameof(options));
if (Options.RetainedMessagesManager == null) throw new MqttConfigurationException("options.RetainedMessagesManager should not be null.");
if (_cancellationTokenSource != null) throw new InvalidOperationException("The server is already started.");
_cancellationTokenSource = new CancellationTokenSource();
_retainedMessagesManager = Options.RetainedMessagesManager ?? new MqttRetainedMessagesManager();
_retainedMessagesManager = Options.RetainedMessagesManager;
await _retainedMessagesManager.Start(Options, _logger);
await _retainedMessagesManager.LoadMessagesAsync().ConfigureAwait(false);
+1 -1
View File
@@ -30,6 +30,6 @@ namespace MQTTnet.Server
public IMqttServerStorage Storage { get; set; }
public IMqttRetainedMessagesManager RetainedMessagesManager { get; set; }
public IMqttRetainedMessagesManager RetainedMessagesManager { get; set; } = new MqttRetainedMessagesManager();
}
}