Expose PacketIdentifier in PublishResult.

This commit is contained in:
Christian Kratky
2019-04-23 14:47:42 +02:00
parent e6cf23aebd
commit d4c6fb44c9
4 changed files with 14 additions and 9 deletions
@@ -6,6 +6,8 @@ namespace MQTTnet.Client.Publishing
{
public class MqttClientPublishResult
{
public ushort? PacketIdentifier { get; set; }
public MqttClientPublishReasonCode ReasonCode { get; set; } = MqttClientPublishReasonCode.Success;
public string ReasonString { get; set; }
@@ -199,6 +199,7 @@ namespace MQTTnet.Formatter.V3
{
return new MqttClientPublishResult
{
PacketIdentifier = pubAckPacket?.PacketIdentifier,
ReasonCode = MqttClientPublishReasonCode.Success
};
}
@@ -189,21 +189,22 @@ namespace MQTTnet.Formatter.V5
public MqttClientPublishResult CreatePublishResult(MqttPubAckPacket pubAckPacket)
{
var reasonCode = MqttClientPublishReasonCode.Success;
if (pubAckPacket != null)
{
// QoS 0 has no response. So we treat it as a success always.
reasonCode = (MqttClientPublishReasonCode)pubAckPacket.ReasonCode;
}
var result = new MqttClientPublishResult
{
// Both enums share the same values.
ReasonCode = reasonCode,
ReasonCode = MqttClientPublishReasonCode.Success,
ReasonString = pubAckPacket?.Properties?.ReasonString,
UserProperties = pubAckPacket?.Properties?.UserProperties
};
if (pubAckPacket != null)
{
// QoS 0 has no response. So we treat it as a success always.
// Both enums have the same values. So it can be easily converted.
result.ReasonCode = (MqttClientPublishReasonCode)pubAckPacket.ReasonCode;
result.PacketIdentifier = pubAckPacket.PacketIdentifier;
}
return result;
}