Completed
Push — master ( 2b45b9...815705 )
by Akihito
02:21
created

DataRepository   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 38
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

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

2 Methods

Rating   Name   Duplication   Size   Complexity  
A load() 0 8 2
A deleteAll() 0 11 3
1
<?php
2
namespace Ackintosh\Snidel;
3
4
use Ackintosh\Snidel\Data;
5
use Ackintosh\Snidel\Exception\SharedMemoryControlException;
6
7
class DataRepository
8
{
9
    /**
10
     * @var int[]
11
     */
12
    private $pids = array();
13
14
    /**
15
     * load data
16
     *
17
     * @param   int             $pid
18
     * @return  \Ackintosh\Snidel\Data
19
     */
20
    public function load($pid)
21
    {
22
        if (!in_array($pid, $this->pids, true)) {
23
            $this->pids[] = $pid;
24
        }
25
26
        return new Data($pid);
27
    }
28
29
    /**
30
     * @return  void
31
     * @throws  \Ackintosh\Snidel\SharedMemoryControlException
32
     */
33
    public function deleteAll()
34
    {
35
        foreach ($this->pids as $pid) {
36
            $data = $this->load($pid);
37
            try {
38
                $data->deleteIfExists();
39
            } catch (SharedMemoryControlException $e) {
40
                throw $e;
41
            }
42
        }
43
    }
44
}
45