Completed
Push — master ( aaeb57...138031 )
by Marco
11:42
created

MethodsInjector   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 71
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 2
lcom 0
cbo 3
dl 0
loc 71
ccs 0
cts 53
cp 0
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A inject() 0 67 2
1
<?php namespace Comodojo\Daemon\Socket;
2
3
use \Comodojo\Daemon\Daemon as AbstractDaemon;
4
use \Comodojo\RpcServer\RpcServer;
5
use \Comodojo\RpcServer\RpcMethod;
6
7
class MethodsInjector {
8
9
    public static function inject(RpcServer $server, AbstractDaemon $daemon) {
10
11
        $mmanager = $server->methods();
12
13
        $mmanager->add(
14
            RpcMethod::create("daemon.shutdown", function($params, $daemon) {
15
                $daemon->stop();
16
                return 0;
17
            }, $daemon)
18
            ->setDescription("Stop daemon closing workers")
19
            ->setReturnType('int')
20
        );
21
22
        $mmanager->add(
23
            RpcMethod::create("worker.list", function($params, $daemon) {
24
                $workers = $daemon->getWorkers()->get();
25
                $wlist = [];
26
                foreach ($workers as $worker => $opts) {
27
                    $wlist[] = [
28
                        'name' => $worker,
29
                        'looptime' => $opts->getLoopTime(),
30
                        'forever' => $opts->getForever()
31
                    ];
32
                }
33
                return $wlist;
34
            }, $daemon)
35
            ->setDescription("List installed workers")
36
            ->setReturnType('array')
37
        );
38
39
        $mmanager->add(
40
            RpcMethod::create("worker.status", function($params, $daemon) {
41
                $name = $params->get('name');
42
                return $daemon->getWorkers()->status($name);
43
            }, $daemon)
44
            ->setDescription("Get info about installed worker(s)")
45
            ->setReturnType('array')
46
            ->addSignature()
47
            ->addParameter('string','name')
48
            ->setReturnType('int')
49
        );
50
51
        $mmanager->add(
52
            RpcMethod::create("worker.pause", function($params, $daemon) {
53
                $name = $params->get('name');
54
                return $daemon->getWorkers()->pause($name);
55
            }, $daemon)
56
            ->setDescription("Pause installed worker(s)")
57
            ->setReturnType('array')
58
            ->addSignature()
59
            ->addParameter('string','name')
60
            ->setReturnType('boolean')
61
        );
62
63
        $mmanager->add(
64
            RpcMethod::create("worker.resume", function($params, $daemon) {
65
                $name = $params->get('name');
66
                return $daemon->getWorkers()->resume($name);
67
            }, $daemon)
68
            ->setDescription("Resume installed worker(s)")
69
            ->setReturnType('array')
70
            ->addSignature()
71
            ->addParameter('string','name')
72
            ->setReturnType('boolean')
73
        );
74
75
    }
76
77
}
78