Completed
Push — 2.0 ( 0d93f2...14c778 )
by Marco
16:42
created

PidLock   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 34
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 4
Bugs 0 Features 0
Metric Value
wmc 5
c 4
b 0
f 0
lcom 1
cbo 1
dl 0
loc 34
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 9 3
A lock() 0 5 1
A release() 0 5 1
1
<?php namespace Comodojo\Extender\Components;
2
3
use \Exception;
4
5
/**
6
 * Lock file manager (static methods)
7
 *
8
 * @package     Comodojo extender
9
 * @author      Marco Giovinazzi <[email protected]>
10
 * @license     GPL-3.0+
11
 *
12
 * LICENSE:
13
 *
14
 * This program is free software: you can redistribute it and/or modify
15
 * it under the terms of the GNU Affero General Public License as
16
 * published by the Free Software Foundation, either version 3 of the
17
 * License, or (at your option) any later version.
18
 *
19
 * This program is distributed in the hope that it will be useful,
20
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
22
 * GNU Affero General Public License for more details.
23
 *
24
 * You should have received a copy of the GNU Affero General Public License
25
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
26
 */
27
28
class PidLock extends AbstractLocker {
29
30
    /**
31
     * Lock file name
32
     *
33
     * @var string
34
     */
35
    private $lockfile = "extender.pid";
36
37
    private $pid;
38
39
    public function __construct($pid, $lockfile = null) {
40
41
        if ( $lockfile !== null ) $this->lockfile = $lockfile;
42
43
        if ( empty($pid) ) throw new Exception("Invalid pid reference");
44
45
        $this->pid = $pid;
46
47
    }
48
49
    public function lock() {
50
51
        return self::writeLock($this->lockfile, $this->pid);
52
53
    }
54
55
    public function release() {
56
57
        return self::releaseLock($this->lockfile);
58
59
    }
60
61
}
62