MessageQueue::current()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 2
cts 2
cp 1
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 0
crap 1
1
<?php
2
namespace nstdio\notymo;
3
4
use ArrayAccess;
5
use Countable;
6
use Iterator;
7
use SplDoublyLinkedList;
8
use SplQueue;
9
10
/**
11
 * Class MessageQueue
12
 *
13
 * @package nstdio\notymo
14
 * @author  Edgar Asatryan <[email protected]>
15
 */
16
class MessageQueue implements Iterator, Countable
17
{
18
    /**
19
     * @var SplQueue
20
     */
21
    private $queue;
22
23 22
    public function __construct()
24
    {
25 22
        $this->queue = new SplQueue();
26 22
        $this->queue->setIteratorMode(SplDoublyLinkedList::IT_MODE_FIFO);
27 22
    }
28
29 7
    public function enqueue(MessageInterface $message)
30
    {
31 7
        $this->queue->enqueue($message);
32 7
    }
33
34 3
    public function dequeue()
35
    {
36 3
        $this->queue->dequeue();
37 3
    }
38
39 9
    public function isEmpty()
40
    {
41 9
        return $this->queue->isEmpty();
42
    }
43
44
    /**
45
     * @inheritdoc
46
     */
47 7
    public function current()
48
    {
49 7
        return $this->queue->current();
50
    }
51
52
    /**
53
     * @inheritdoc
54
     */
55 7
    public function next()
56
    {
57 7
        $this->queue->next();
58 7
    }
59
60
    /**
61
     * @inheritdoc
62
     */
63 1
    public function key()
64
    {
65 1
        return $this->queue->key();
66
    }
67
68
    /**
69
     * @inheritdoc
70
     */
71 7
    public function valid()
72
    {
73 7
        return $this->queue->valid();
74
    }
75
76
    /**
77
     * @inheritdoc
78
     */
79 7
    public function rewind()
80
    {
81 7
        $this->queue->rewind();
82 7
    }
83
84
    /**
85
     * @inheritdoc
86
     */
87 3
    public function count()
88
    {
89 3
        return count($this->queue);
90
    }
91
}