From b9e0dbf150ee16807fc8636ccf1346b457702695 Mon Sep 17 00:00:00 2001 From: Dominik Psenner Date: Mon, 18 Feb 2019 08:02:09 +0100 Subject: [PATCH] Add extension methods that provide a simpler api for IMqttClient and IManagedMqttClient connect/disconnect when the handlers do not need async/await --- .../ManagedMqttClientExtensions.cs | 24 +++++++++++++++++++ Source/MQTTnet/Client/MqttClientExtensions.cs | 24 +++++++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/Source/MQTTnet.Extensions.ManagedClient/ManagedMqttClientExtensions.cs b/Source/MQTTnet.Extensions.ManagedClient/ManagedMqttClientExtensions.cs index 50790d44..811368f7 100644 --- a/Source/MQTTnet.Extensions.ManagedClient/ManagedMqttClientExtensions.cs +++ b/Source/MQTTnet.Extensions.ManagedClient/ManagedMqttClientExtensions.cs @@ -24,6 +24,18 @@ namespace MQTTnet.Extensions.ManagedClient return client; } + public static IManagedMqttClient UseConnectedHandler(this IManagedMqttClient client, Action handler) + { + if (handler == null) + { + client.ConnectedHandler = null; + return client; + } + + client.ConnectedHandler = new MqttClientConnectedHandlerDelegate(handler); + return client; + } + public static IManagedMqttClient UseDisconnectedHandler(this IManagedMqttClient client, Func handler) { if (handler == null) @@ -36,6 +48,18 @@ namespace MQTTnet.Extensions.ManagedClient return client; } + public static IManagedMqttClient UseDisconnectedHandler(this IManagedMqttClient client, Action handler) + { + if (handler == null) + { + client.DisconnectedHandler = null; + return client; + } + + client.DisconnectedHandler = new MqttClientDisconnectedHandlerDelegate(handler); + return client; + } + public static IManagedMqttClient UseReceivedApplicationMessageHandler(this IManagedMqttClient client, Func handler) { if (handler == null) diff --git a/Source/MQTTnet/Client/MqttClientExtensions.cs b/Source/MQTTnet/Client/MqttClientExtensions.cs index de1a77ba..eacdbf4d 100644 --- a/Source/MQTTnet/Client/MqttClientExtensions.cs +++ b/Source/MQTTnet/Client/MqttClientExtensions.cs @@ -27,6 +27,18 @@ namespace MQTTnet.Client return client; } + public static IMqttClient UseConnectedHandler(this IMqttClient client, Action handler) + { + if (handler == null) + { + client.ConnectedHandler = null; + return client; + } + + client.ConnectedHandler = new MqttClientConnectedHandlerDelegate(handler); + return client; + } + public static IMqttClient UseDisconnectedHandler(this IMqttClient client, Func handler) { if (handler == null) @@ -39,6 +51,18 @@ namespace MQTTnet.Client return client; } + public static IMqttClient UseDisconnectedHandler(this IMqttClient client, Action handler) + { + if (handler == null) + { + client.DisconnectedHandler = null; + return client; + } + + client.DisconnectedHandler = new MqttClientDisconnectedHandlerDelegate(handler); + return client; + } + public static IMqttClient UseReceivedApplicationMessageHandler(this IMqttClient client, Func handler) { if (handler == null)