OracleMutexFactory   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 21
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 8
dl 0
loc 21
ccs 6
cts 6
cp 1
rs 10
c 0
b 0
f 0
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A create() 0 3 1
A __construct() 0 5 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Yiisoft\Mutex\Oracle;
6
7
use PDO;
8
use Yiisoft\Mutex\MutexFactory;
9
use Yiisoft\Mutex\MutexInterface;
10
11
/**
12
 * Allows creating {@see OracleMutex} mutex objects.
13
 */
14
final class OracleMutexFactory extends MutexFactory
15
{
16
    private PDO $connection;
17
    private string $lockMode;
18
    private bool $releaseOnCommit;
19
20
    /**
21
     * @param PDO $connection PDO connection instance to use.
22
     * @param string $lockMode Lock mode to be used.
23
     * @param bool $releaseOnCommit Whether to release lock on commit.
24
     */
25 1
    public function __construct(PDO $connection, string $lockMode = OracleMutex::MODE_X, bool $releaseOnCommit = false)
26
    {
27 1
        $this->connection = $connection;
28 1
        $this->lockMode = $lockMode;
29 1
        $this->releaseOnCommit = $releaseOnCommit;
30
    }
31
32 1
    public function create(string $name): MutexInterface
33
    {
34 1
        return new OracleMutex($name, $this->connection, $this->lockMode, $this->releaseOnCommit);
35
    }
36
}
37