mirror of
https://github.com/dotnet/MQTTnet.git
synced 2026-10-15 00:15:15 +08:00
32 lines
1.3 KiB
C#
32 lines
1.3 KiB
C#
using System;
|
|
using System.Threading.Tasks;
|
|
using MQTTnet.Client.Receiving;
|
|
|
|
namespace MQTTnet.Extensions.Rpc
|
|
{
|
|
public class RpcAwareApplicationMessageReceivedHandler : IMqttApplicationMessageReceivedHandler
|
|
{
|
|
private readonly Func<MqttApplicationMessageReceivedEventArgs, Task> _handleReceivedApplicationMessageAsync;
|
|
|
|
public RpcAwareApplicationMessageReceivedHandler(
|
|
IMqttApplicationMessageReceivedHandler originalHandler,
|
|
Func<MqttApplicationMessageReceivedEventArgs, Task> handleReceivedApplicationMessageAsync)
|
|
{
|
|
OriginalHandler = originalHandler;
|
|
_handleReceivedApplicationMessageAsync = handleReceivedApplicationMessageAsync ?? throw new ArgumentNullException(nameof(handleReceivedApplicationMessageAsync));
|
|
}
|
|
|
|
public IMqttApplicationMessageReceivedHandler OriginalHandler { get; }
|
|
|
|
public async Task HandleApplicationMessageReceivedAsync(MqttApplicationMessageReceivedEventArgs eventArgs)
|
|
{
|
|
if (OriginalHandler != null)
|
|
{
|
|
await OriginalHandler.HandleApplicationMessageReceivedAsync(eventArgs).ConfigureAwait(false);
|
|
}
|
|
|
|
await _handleReceivedApplicationMessageAsync(eventArgs).ConfigureAwait(false);
|
|
}
|
|
}
|
|
}
|