Completed
Push — master ( aebdf5...2497c6 )
by Jeroen De
02:33 queued 11s
created

DatabaseIdGenerator::getNewId()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 13

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 7
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 13
ccs 7
cts 7
cp 1
rs 9.8333
c 0
b 0
f 0
cc 1
nc 1
nop 1
crap 1
1
<?php
2
3
declare( strict_types = 1 );
4
5
namespace IdGenerator\PackagePrivate;
6
7
use IdGenerator\IdGenerator;
8
use Wikimedia\Rdbms\ILoadBalancer;
9
10
class DatabaseIdGenerator implements IdGenerator {
11
12
	private $loadBalancer;
13
	private $idDatabase;
14
15 3
	public function __construct( ILoadBalancer $loadBalancer, IdDatabase $idDatabase ) {
16 3
		$this->loadBalancer = $loadBalancer;
17 3
		$this->idDatabase = $idDatabase;
18 3
	}
19
20 3
	public function getNewId( string $type = '' ): int {
21 3
		$database = $this->loadBalancer->getConnection( DB_MASTER );
22
23 3
		$database->startAtomic( __METHOD__ );
24
25 3
		$id = $this->idDatabase->getNewId( $database, $type );
26
27 3
		$database->endAtomic( __METHOD__ );
28
29 3
		$this->loadBalancer->reuseConnection( $database );
30
31 3
		return $id;
32
	}
33
34
}
35