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

DataRepository::deleteAll()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 11
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 11
rs 9.4285
cc 3
eloc 7
nc 3
nop 0
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