Completed
Push — master ( 4d2e3a...1184ab )
by Clément
01:00
created

CommandLockHandler::lock()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 2
Bugs 0 Features 1
Metric Value
c 2
b 0
f 1
dl 0
loc 6
ccs 0
cts 6
cp 0
rs 9.4285
cc 1
eloc 4
nc 1
nop 1
crap 2
1
<?php
2
3
namespace Itkg\DelayEventBundle\Handler;
4
5
use Itkg\DelayEventBundle\DomainManager\LockManagerInterface;
6
7
/**
8
 * Class CommandLockHandler
9
 */
10
class CommandLockHandler implements LockHandlerInterface
11
{
12
    /**
13
     * @var LockManagerInterface
14
     */
15
    private $lockManager;
16
17
    /**
18
     * @param LockManagerInterface $lockManager
19
     */
20
    public function __construct(LockManagerInterface $lockManager)
21
    {
22
        $this->lockManager = $lockManager;
23
    }
24
25
    /**
26
     * {@inheritdoc}
27
     */
28
    public function isLocked($channel)
29
    {
30
        $lock = $this->lockManager->getLock($channel);
31
32
        return $lock->isCommandLocked();
33
    }
34
35
    /**
36
     * {@inheritdoc}
37
     */
38
    public function lock($channel)
39
    {
40
        $lock = $this->lockManager->getLock($channel);
41
        $lock->setCommandLocked(true);
42
        $this->lockManager->save($lock);
43
    }
44
45
    /**
46
     * {@inheritdoc}
47
     */
48
    public function release($channel)
49
    {
50
        $lock = $this->lockManager->getLock($channel);
51
        $lock->setCommandLocked(false);
52
        $this->lockManager->save($lock);
53
    }
54
}
55