Passed
Push — master ( 63c37e...115ddb )
by Camilo
02:40
created

PubRec   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 57
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 5
dl 0
loc 57
ccs 0
cts 15
cp 0
rs 10
c 0
b 0
f 0

5 Methods

Rating   Name   Duplication   Size   Complexity  
A createPayload() 0 4 1
A createVariableHeader() 0 4 1
A fillObject() 0 4 1
A performSpecialActions() 0 8 1
A shouldExpectAnswer() 0 3 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace unreal4u\MQTT\Protocol;
6
7
use unreal4u\MQTT\Internals\ClientInterface;
8
use unreal4u\MQTT\Internals\ProtocolBase;
9
use unreal4u\MQTT\Internals\ReadableContent;
10
use unreal4u\MQTT\Internals\ReadableContentInterface;
11
use unreal4u\MQTT\Internals\WritableContent;
12
use unreal4u\MQTT\Internals\WritableContentInterface;
13
14
final class PubRec extends ProtocolBase implements ReadableContentInterface, WritableContentInterface
15
{
16
    use ReadableContent, WritableContent;
17
18
    public $packetIdentifier = 0;
19
20
    const CONTROL_PACKET_VALUE = 5;
21
22
    public function fillObject(string $rawMQTTHeaders, ClientInterface $client): ReadableContentInterface
23
    {
24
        $this->packetIdentifier = $this->extractPacketIdentifier($rawMQTTHeaders);
25
        return $this;
26
    }
27
28
    /**
29
     * Creates the variable header that each method has
30
     * @return string
31
     */
32
    public function createVariableHeader(): string
33
    {
34
        // TODO: Implement createVariableHeader() method.
35
        return '';
36
    }
37
38
    /**
39
     * Creates the actual payload to be sent
40
     * @return string
41
     */
42
    public function createPayload(): string
43
    {
44
        // TODO: Implement createPayload() method.
45
        return '';
46
    }
47
48
    /**
49
     * Some responses won't expect an answer back, others do in some situations
50
     * @return bool
51
     */
52
    public function shouldExpectAnswer(): bool
53
    {
54
        return true;
55
    }
56
57
    /**
58
     * Any class can overwrite the default behaviour
59
     * @param ClientInterface $client
60
     * @param WritableContentInterface $originalRequest
61
     * @return bool
62
     */
63
    public function performSpecialActions(ClientInterface $client, WritableContentInterface $originalRequest): bool
64
    {
65
        $this->logger->debug('Creating response in the form of a PubRel');
66
        $pubRel = new PubRel($this->logger);
67
        $pubRel->packetIdentifier = $this->packetIdentifier;
68
69
        $pubComp = $client->sendData($pubRel);
0 ignored issues
show
Unused Code introduced by
The assignment to $pubComp is dead and can be removed.
Loading history...
70
        return true;
71
    }
72
}
73