diff --git a/Source/MQTTnet/Server/MqttServerExtensions.cs b/Source/MQTTnet/Server/MqttServerExtensions.cs index f4d44230..c38aac76 100644 --- a/Source/MQTTnet/Server/MqttServerExtensions.cs +++ b/Source/MQTTnet/Server/MqttServerExtensions.cs @@ -10,6 +10,70 @@ namespace MQTTnet.Server { public static class MqttServerExtensions { + public static IMqttServer UseClientConnectedHandler(this IMqttServer server, Func handler) + { + if (server == null) throw new ArgumentNullException(nameof(server)); + + if (handler == null) + { + return server.UseClientConnectedHandler((IMqttServerClientConnectedHandler)null); + } + + return server.UseClientConnectedHandler(new MqttServerClientConnectedHandlerDelegate(handler)); + } + + public static IMqttServer UseClientConnectedHandler(this IMqttServer server, Action handler) + { + if (server == null) throw new ArgumentNullException(nameof(server)); + + if (handler == null) + { + return server.UseClientConnectedHandler((IMqttServerClientConnectedHandler)null); + } + + return server.UseClientConnectedHandler(new MqttServerClientConnectedHandlerDelegate(handler)); + } + + public static IMqttServer UseClientConnectedHandler(this IMqttServer server, IMqttServerClientConnectedHandler handler) + { + if (server == null) throw new ArgumentNullException(nameof(server)); + + server.ClientConnectedHandler = handler; + return server; + } + + public static IMqttServer UseClientDisconnectedHandler(this IMqttServer server, Func handler) + { + if (server == null) throw new ArgumentNullException(nameof(server)); + + if (handler == null) + { + return server.UseClientDisconnectedHandler((IMqttServerClientDisconnectedHandler)null); + } + + return server.UseClientDisconnectedHandler(new MqttServerClientDisconnectedHandlerDelegate(handler)); + } + + public static IMqttServer UseClientDisconnectedHandler(this IMqttServer server, Action handler) + { + if (server == null) throw new ArgumentNullException(nameof(server)); + + if (handler == null) + { + return server.UseClientDisconnectedHandler((IMqttServerClientDisconnectedHandler)null); + } + + return server.UseClientDisconnectedHandler(new MqttServerClientDisconnectedHandlerDelegate(handler)); + } + + public static IMqttServer UseClientDisconnectedHandler(this IMqttServer server, IMqttServerClientDisconnectedHandler handler) + { + if (server == null) throw new ArgumentNullException(nameof(server)); + + server.ClientDisconnectedHandler = handler; + return server; + } + public static IMqttServer UseApplicationMessageReceivedHandler(this IMqttServer server, Func handler) { if (server == null) throw new ArgumentNullException(nameof(server));