ShmProxy::keyToShmIntKey()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 4
rs 10
cc 1
eloc 2
nc 1
nop 1
1
<?php namespace AdammBalogh\KeyValueStore\Adapter\SharedMemoryAdapter;
2
3
class ShmProxy
4
{
5
    /**
6
     * @param resource $shmIdentifier
7
     * @param string $variableKey
8
     *
9
     * @return mixed
10
     */
11
    public function get($shmIdentifier, $variableKey)
12
    {
13
        return shm_get_var($shmIdentifier, $this->keyToShmIntKey($variableKey));
14
    }
15
16
    /**
17
     * @param resource $shmIdentifier
18
     * @param string $variableKey
19
     * @param mixed $variable
20
     *
21
     * @return bool
22
     */
23
    public function put($shmIdentifier, $variableKey, $variable)
24
    {
25
        return @shm_put_var($shmIdentifier, $this->keyToShmIntKey($variableKey), $variable);
26
    }
27
28
    /**
29
     * @param resource$shmIdentifier
30
     * @param string $variableKey
31
     *
32
     * @return bool
33
     */
34
    public function remove($shmIdentifier, $variableKey)
35
    {
36
        return shm_remove_var($shmIdentifier, $this->keyToShmIntKey($variableKey));
37
    }
38
39
    /**
40
     * @param resource$shmIdentifier
41
     * @param string $variableKey
42
     *
43
     * @return bool
44
     */
45
    public function has($shmIdentifier, $variableKey)
46
    {
47
        return shm_has_var($shmIdentifier, $this->keyToShmIntKey($variableKey));
48
    }
49
50
    /**
51
     * @param resource $shmIdentifier
52
     *
53
     * @return bool
54
     */
55
    public function flush($shmIdentifier)
56
    {
57
        return shm_remove($shmIdentifier);
58
    }
59
60
    /**
61
     * @param string $key
62
     *
63
     * @return int
64
     */
65
    protected function keyToShmIntKey($key)
66
    {
67
        return (int)sprintf("%u\n", crc32($key));
68
    }
69
}
70