5
5
using System ;
6
6
using System . Buffers ;
7
7
using System . Collections . Generic ;
8
- using System . Linq ;
9
8
using System . Runtime . CompilerServices ;
10
9
using MQTTnet . Adapter ;
11
10
using MQTTnet . Exceptions ;
@@ -30,14 +29,14 @@ public MqttV3PacketFormatter(MqttBufferWriter bufferWriter, MqttProtocolVersion
30
29
_mqttProtocolVersion = mqttProtocolVersion ;
31
30
}
32
31
33
- public MqttPacket Decode ( ReceivedMqttPacket receivedMqttPacket )
32
+ public MqttPacket Decode ( ReceivedMqttPacket receivedPacket )
34
33
{
35
- if ( receivedMqttPacket . TotalLength == 0 )
34
+ if ( receivedPacket . TotalLength == 0 )
36
35
{
37
36
return null ;
38
37
}
39
38
40
- var controlPacketType = receivedMqttPacket . FixedHeader >> 4 ;
39
+ var controlPacketType = receivedPacket . FixedHeader >> 4 ;
41
40
if ( controlPacketType is < 1 or > 14 )
42
41
{
43
42
throw new MqttProtocolViolationException ( $ "The packet type is invalid ({ controlPacketType } ).") ;
@@ -46,41 +45,41 @@ public MqttPacket Decode(ReceivedMqttPacket receivedMqttPacket)
46
45
switch ( ( MqttControlPacketType ) controlPacketType )
47
46
{
48
47
case MqttControlPacketType . Publish :
49
- return DecodePublishPacket ( receivedMqttPacket ) ;
48
+ return DecodePublishPacket ( receivedPacket ) ;
50
49
case MqttControlPacketType . PubAck :
51
- return DecodePubAckPacket ( receivedMqttPacket . Body ) ;
50
+ return DecodePubAckPacket ( receivedPacket . Body ) ;
52
51
case MqttControlPacketType . PubRec :
53
- return DecodePubRecPacket ( receivedMqttPacket . Body ) ;
52
+ return DecodePubRecPacket ( receivedPacket . Body ) ;
54
53
case MqttControlPacketType . PubRel :
55
- return DecodePubRelPacket ( receivedMqttPacket . Body ) ;
54
+ return DecodePubRelPacket ( receivedPacket . Body ) ;
56
55
case MqttControlPacketType . PubComp :
57
- return DecodePubCompPacket ( receivedMqttPacket . Body ) ;
56
+ return DecodePubCompPacket ( receivedPacket . Body ) ;
58
57
59
58
case MqttControlPacketType . PingReq :
60
59
return MqttPingReqPacket . Instance ;
61
60
case MqttControlPacketType . PingResp :
62
61
return MqttPingRespPacket . Instance ;
63
62
64
63
case MqttControlPacketType . Connect :
65
- return DecodeConnectPacket ( receivedMqttPacket . Body ) ;
64
+ return DecodeConnectPacket ( receivedPacket . Body ) ;
66
65
case MqttControlPacketType . ConnAck :
67
66
if ( _mqttProtocolVersion == MqttProtocolVersion . V311 )
68
67
{
69
- return DecodeConnAckPacketV311 ( receivedMqttPacket . Body ) ;
68
+ return DecodeConnAckPacketV311 ( receivedPacket . Body ) ;
70
69
}
71
70
72
- return DecodeConnAckPacket ( receivedMqttPacket . Body ) ;
71
+ return DecodeConnAckPacket ( receivedPacket . Body ) ;
73
72
case MqttControlPacketType . Disconnect :
74
73
return DisconnectPacket ;
75
74
76
75
case MqttControlPacketType . Subscribe :
77
- return DecodeSubscribePacket ( receivedMqttPacket . Body ) ;
76
+ return DecodeSubscribePacket ( receivedPacket . Body ) ;
78
77
case MqttControlPacketType . SubAck :
79
- return DecodeSubAckPacket ( receivedMqttPacket . Body ) ;
78
+ return DecodeSubAckPacket ( receivedPacket . Body ) ;
80
79
case MqttControlPacketType . Unsubscribe :
81
- return DecodeUnsubscribePacket ( receivedMqttPacket . Body ) ;
80
+ return DecodeUnsubscribePacket ( receivedPacket . Body ) ;
82
81
case MqttControlPacketType . UnsubAck :
83
- return DecodeUnsubAckPacket ( receivedMqttPacket . Body ) ;
82
+ return DecodeUnsubAckPacket ( receivedPacket . Body ) ;
84
83
85
84
case MqttControlPacketType . Auth :
86
85
default :
@@ -123,7 +122,7 @@ public MqttPacketBuffer Encode(MqttPacket packet)
123
122
: new MqttPacketBuffer ( firstSegment , payload ) ;
124
123
}
125
124
126
- MqttPacket DecodeConnAckPacket ( ArraySegment < byte > body )
125
+ MqttConnAckPacket DecodeConnAckPacket ( ArraySegment < byte > body )
127
126
{
128
127
ThrowIfBodyIsEmpty ( body ) ;
129
128
@@ -137,7 +136,7 @@ MqttPacket DecodeConnAckPacket(ArraySegment<byte> body)
137
136
return packet ;
138
137
}
139
138
140
- MqttPacket DecodeConnAckPacketV311 ( ArraySegment < byte > body )
139
+ MqttConnAckPacket DecodeConnAckPacketV311 ( ArraySegment < byte > body )
141
140
{
142
141
ThrowIfBodyIsEmpty ( body ) ;
143
142
@@ -153,7 +152,7 @@ MqttPacket DecodeConnAckPacketV311(ArraySegment<byte> body)
153
152
return packet ;
154
153
}
155
154
156
- MqttPacket DecodeConnectPacket ( ArraySegment < byte > body )
155
+ MqttConnectPacket DecodeConnectPacket ( ArraySegment < byte > body )
157
156
{
158
157
ThrowIfBodyIsEmpty ( body ) ;
159
158
@@ -221,7 +220,7 @@ MqttPacket DecodeConnectPacket(ArraySegment<byte> body)
221
220
return packet ;
222
221
}
223
222
224
- MqttPacket DecodePubAckPacket ( ArraySegment < byte > body )
223
+ MqttPubAckPacket DecodePubAckPacket ( ArraySegment < byte > body )
225
224
{
226
225
ThrowIfBodyIsEmpty ( body ) ;
227
226
@@ -233,7 +232,7 @@ MqttPacket DecodePubAckPacket(ArraySegment<byte> body)
233
232
} ;
234
233
}
235
234
236
- MqttPacket DecodePubCompPacket ( ArraySegment < byte > body )
235
+ MqttPubCompPacket DecodePubCompPacket ( ArraySegment < byte > body )
237
236
{
238
237
ThrowIfBodyIsEmpty ( body ) ;
239
238
@@ -245,7 +244,7 @@ MqttPacket DecodePubCompPacket(ArraySegment<byte> body)
245
244
} ;
246
245
}
247
246
248
- MqttPacket DecodePublishPacket ( ReceivedMqttPacket receivedMqttPacket )
247
+ MqttPublishPacket DecodePublishPacket ( ReceivedMqttPacket receivedMqttPacket )
249
248
{
250
249
ThrowIfBodyIsEmpty ( receivedMqttPacket . Body ) ;
251
250
@@ -280,7 +279,7 @@ MqttPacket DecodePublishPacket(ReceivedMqttPacket receivedMqttPacket)
280
279
return packet ;
281
280
}
282
281
283
- MqttPacket DecodePubRecPacket ( ArraySegment < byte > body )
282
+ MqttPubRecPacket DecodePubRecPacket ( ArraySegment < byte > body )
284
283
{
285
284
ThrowIfBodyIsEmpty ( body ) ;
286
285
@@ -292,7 +291,7 @@ MqttPacket DecodePubRecPacket(ArraySegment<byte> body)
292
291
} ;
293
292
}
294
293
295
- MqttPacket DecodePubRelPacket ( ArraySegment < byte > body )
294
+ MqttPubRelPacket DecodePubRelPacket ( ArraySegment < byte > body )
296
295
{
297
296
ThrowIfBodyIsEmpty ( body ) ;
298
297
@@ -304,7 +303,7 @@ MqttPacket DecodePubRelPacket(ArraySegment<byte> body)
304
303
} ;
305
304
}
306
305
307
- MqttPacket DecodeSubAckPacket ( ArraySegment < byte > body )
306
+ MqttSubAckPacket DecodeSubAckPacket ( ArraySegment < byte > body )
308
307
{
309
308
ThrowIfBodyIsEmpty ( body ) ;
310
309
@@ -324,7 +323,7 @@ MqttPacket DecodeSubAckPacket(ArraySegment<byte> body)
324
323
return packet ;
325
324
}
326
325
327
- MqttPacket DecodeSubscribePacket ( ArraySegment < byte > body )
326
+ MqttSubscribePacket DecodeSubscribePacket ( ArraySegment < byte > body )
328
327
{
329
328
ThrowIfBodyIsEmpty ( body ) ;
330
329
@@ -349,7 +348,7 @@ MqttPacket DecodeSubscribePacket(ArraySegment<byte> body)
349
348
return packet ;
350
349
}
351
350
352
- MqttPacket DecodeUnsubAckPacket ( ArraySegment < byte > body )
351
+ MqttUnsubAckPacket DecodeUnsubAckPacket ( ArraySegment < byte > body )
353
352
{
354
353
ThrowIfBodyIsEmpty ( body ) ;
355
354
@@ -361,7 +360,7 @@ MqttPacket DecodeUnsubAckPacket(ArraySegment<byte> body)
361
360
} ;
362
361
}
363
362
364
- MqttPacket DecodeUnsubscribePacket ( ArraySegment < byte > body )
363
+ MqttUnsubscribePacket DecodeUnsubscribePacket ( ArraySegment < byte > body )
365
364
{
366
365
ThrowIfBodyIsEmpty ( body ) ;
367
366
@@ -380,15 +379,15 @@ MqttPacket DecodeUnsubscribePacket(ArraySegment<byte> body)
380
379
return packet ;
381
380
}
382
381
383
- byte EncodeConnAckPacket ( MqttConnAckPacket packet , MqttBufferWriter bufferWriter )
382
+ static byte EncodeConnAckPacket ( MqttConnAckPacket packet , MqttBufferWriter bufferWriter )
384
383
{
385
384
bufferWriter . WriteByte ( 0 ) ; // Reserved.
386
385
bufferWriter . WriteByte ( ( byte ) packet . ReturnCode ) ;
387
386
388
387
return MqttBufferWriter . BuildFixedHeader ( MqttControlPacketType . ConnAck ) ;
389
388
}
390
389
391
- byte EncodeConnAckPacketV311 ( MqttConnAckPacket packet , MqttBufferWriter bufferWriter )
390
+ static byte EncodeConnAckPacketV311 ( MqttConnAckPacket packet , MqttBufferWriter bufferWriter )
392
391
{
393
392
byte connectAcknowledgeFlags = 0x0 ;
394
393
if ( packet . IsSessionPresent )
@@ -402,7 +401,7 @@ byte EncodeConnAckPacketV311(MqttConnAckPacket packet, MqttBufferWriter bufferWr
402
401
return MqttBufferWriter . BuildFixedHeader ( MqttControlPacketType . ConnAck ) ;
403
402
}
404
403
405
- byte EncodeConnectPacket ( MqttConnectPacket packet , MqttBufferWriter bufferWriter )
404
+ static byte EncodeConnectPacket ( MqttConnectPacket packet , MqttBufferWriter bufferWriter )
406
405
{
407
406
ValidateConnectPacket ( packet ) ;
408
407
@@ -471,7 +470,7 @@ byte EncodeConnectPacket(MqttConnectPacket packet, MqttBufferWriter bufferWriter
471
470
return MqttBufferWriter . BuildFixedHeader ( MqttControlPacketType . Connect ) ;
472
471
}
473
472
474
- byte EncodeConnectPacketV311 ( MqttConnectPacket packet , MqttBufferWriter bufferWriter )
473
+ static byte EncodeConnectPacketV311 ( MqttConnectPacket packet , MqttBufferWriter bufferWriter )
475
474
{
476
475
ValidateConnectPacket ( packet ) ;
477
476
@@ -695,7 +694,7 @@ static byte EncodeSubAckPacket(MqttSubAckPacket packet, MqttBufferWriter bufferW
695
694
696
695
bufferWriter . WriteTwoByteInteger ( packet . PacketIdentifier ) ;
697
696
698
- if ( packet . ReasonCodes . Any ( ) )
697
+ if ( packet . ReasonCodes . Count != 0 )
699
698
{
700
699
foreach ( var packetSubscribeReturnCode in packet . ReasonCodes )
701
700
{
@@ -723,7 +722,7 @@ static byte EncodeSubAckPacket(MqttSubAckPacket packet, MqttBufferWriter bufferW
723
722
724
723
static byte EncodeSubscribePacket ( MqttSubscribePacket packet , MqttBufferWriter bufferWriter )
725
724
{
726
- if ( ! packet . TopicFilters . Any ( ) )
725
+ if ( packet . TopicFilters . Count == 0 )
727
726
{
728
727
throw new MqttProtocolViolationException ( "At least one topic filter must be set [MQTT-3.8.3-3]." ) ;
729
728
}
@@ -760,7 +759,7 @@ static byte EncodeUnsubAckPacket(MqttUnsubAckPacket packet, MqttBufferWriter buf
760
759
761
760
static byte EncodeUnsubscribePacket ( MqttUnsubscribePacket packet , MqttBufferWriter bufferWriter )
762
761
{
763
- if ( ! packet . TopicFilters . Any ( ) )
762
+ if ( packet . TopicFilters . Count == 0 )
764
763
{
765
764
throw new MqttProtocolViolationException ( "At least one topic filter must be set [MQTT-3.10.3-2]." ) ;
766
765
}
@@ -772,7 +771,7 @@ static byte EncodeUnsubscribePacket(MqttUnsubscribePacket packet, MqttBufferWrit
772
771
773
772
bufferWriter . WriteTwoByteInteger ( packet . PacketIdentifier ) ;
774
773
775
- if ( packet . TopicFilters ? . Any ( ) == true )
774
+ if ( packet . TopicFilters ? . Count > 0 )
776
775
{
777
776
foreach ( var topicFilter in packet . TopicFilters )
778
777
{
@@ -792,7 +791,7 @@ static void ThrowIfBodyIsEmpty(ArraySegment<byte> body)
792
791
}
793
792
}
794
793
795
- void ValidateConnectPacket ( MqttConnectPacket packet )
794
+ static void ValidateConnectPacket ( MqttConnectPacket packet )
796
795
{
797
796
ArgumentNullException . ThrowIfNull ( packet ) ;
798
797
0 commit comments