Completed
Push — 1.0 ( 96ad2d...e7718b )
by David
06:45
created

Consumer::isNoWait()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 4
rs 10
cc 1
eloc 2
nc 1
nop 0
1
<?php
2
3
namespace Mouf\AmqpClient;
4
5
class Consumer implements ConsumerInterface
6
{
7
    /**
8
     * @var callable
9
     */
10
    private $callback;
11
12
    /**
13
     * @var string
14
     */
15
    private $consumerTag = '';
16
17
    /**
18
     * @var bool
19
     */
20
    private $noLocal = false;
21
22
    /**
23
     * @var bool
24
     */
25
    private $noAck = false;
26
27
    /**
28
     * @var bool
29
     */
30
    private $exclusive = false;
31
32
    /**
33
     * @var bool
34
     */
35
    private $noWait = false;
36
37
    /**
38
     * @var array
39
     */
40
    private $arguments = [];
41
42
    /**
43
     * @var int
44
     */
45
    private $ticket = null;
46
47
    /**
48
     * Consumer constructor.
49
     *
50
     * @param callable $callback
51
     */
52
    public function __construct(callable $callback)
53
    {
54
        $this->callback = $callback;
55
    }
56
57
    /**
58
     * @return callable
59
     */
60
    public function callback($msg)
61
    {
62
        $callback = $this->callback;
63
64
        try {
65
            $callback($msg);
66
67
            $msg->delivery_info['channel']->basic_ack($msg->delivery_info['delivery_tag']);
68
        } catch (RetryableExceptionInterface $e) {
69
            $msg->delivery_info['channel']->basic_nack($msg->delivery_info['delivery_tag'], true, true);
70
        } catch (\Exception $e) {
71
            $msg->delivery_info['channel']->basic_nack($msg->delivery_info['delivery_tag'], true, false);
72
        }
73
    }
74
75
    /**
76
     * @param callable $callback
77
     */
78
    public function setCallback($callback)
79
    {
80
        $this->callback = $callback;
81
    }
82
83
    /**
84
     * @return string
85
     */
86
    public function getConsumerTag()
87
    {
88
        return $this->consumerTag;
89
    }
90
91
    /**
92
     * @param string $consumerTag
93
     */
94
    public function setConsumerTag($consumerTag)
95
    {
96
        $this->consumerTag = $consumerTag;
97
    }
98
99
    /**
100
     * @return bool
101
     */
102
    public function isNoLocal()
103
    {
104
        return $this->noLocal;
105
    }
106
107
    /**
108
     * @param bool $noLocal
109
     */
110
    public function setNoLocal($noLocal)
111
    {
112
        $this->noLocal = $noLocal;
113
    }
114
115
    /**
116
     * @return bool
117
     */
118
    public function isNoAck()
119
    {
120
        return $this->noAck;
121
    }
122
123
    /**
124
     * @param bool $noAck
125
     */
126
    public function setNoAck($noAck)
127
    {
128
        $this->noAck = $noAck;
129
    }
130
131
    /**
132
     * @return bool
133
     */
134
    public function isExclusive()
135
    {
136
        return $this->exclusive;
137
    }
138
139
    /**
140
     * @param bool $exclusive
141
     */
142
    public function setExclusive($exclusive)
143
    {
144
        $this->exclusive = $exclusive;
145
    }
146
147
    /**
148
     * @return bool
149
     */
150
    public function isNoWait()
151
    {
152
        return $this->noWait;
153
    }
154
155
    /**
156
     * @param bool $noWait
157
     */
158
    public function setNoWait($noWait)
159
    {
160
        $this->noWait = $noWait;
161
    }
162
163
    /**
164
     * @return array
165
     */
166
    public function getArguments()
167
    {
168
        return $this->arguments;
169
    }
170
171
    /**
172
     * @param array $arguments
173
     */
174
    public function setArguments($arguments)
175
    {
176
        $this->arguments = $arguments;
177
    }
178
179
    /**
180
     * @return int
181
     */
182
    public function getTicket()
183
    {
184
        return $this->ticket;
185
    }
186
187
    /**
188
     * @param int $ticket
189
     */
190
    public function setTicket($ticket)
191
    {
192
        $this->ticket = $ticket;
193
    }
194
}
195