Completed
Branch 0.4-dev (54e67b)
by Evgenij
02:52
created

NativeRequestExecutor   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 54
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Test Coverage

Coverage 100%

Importance

Changes 2
Bugs 0 Features 1
Metric Value
wmc 5
c 2
b 0
f 1
lcom 1
cbo 3
dl 0
loc 54
ccs 19
cts 19
cp 1
rs 10

5 Methods

Rating   Name   Duplication   Size   Complexity  
A doExecuteRequest() 0 4 1
A disconnectItems() 0 4 1
A __construct() 0 5 1
A initializeRequest() 0 5 1
A terminateRequest() 0 5 1
1
<?php
2
/**
3
 * Async sockets
4
 *
5
 * @copyright Copyright (c) 2015-2016, Efimov Evgenij <[email protected]>
6
 *
7
 * This source file is subject to the MIT license that is bundled
8
 * with this source code in the file LICENSE.
9
 */
10
11
namespace AsyncSockets\RequestExecutor;
12
13
use AsyncSockets\Configuration\Configuration;
14
use AsyncSockets\RequestExecutor\Pipeline\EventCaller;
15
use AsyncSockets\RequestExecutor\Pipeline\Pipeline;
16
use AsyncSockets\RequestExecutor\Pipeline\PipelineFactory;
17
18
/**
19
 * Class RequestExecutor
20
 */
21
class NativeRequestExecutor extends AbstractRequestExecutor
22
{
23
    /**
24
     * Pipeline
25
     *
26
     * @var Pipeline
27
     */
28
    private $pipeline;
29
30
    /**
31
     * PipelineFactory
32
     *
33
     * @var PipelineFactory
34
     */
35
    private $pipelineFactory;
36
37
    /**
38
     * RequestExecutor constructor.
39
     *
40
     * @param PipelineFactory $pipelineFactory Pipeline factory
41
     * @param Configuration   $configuration Configuration for executor
42
     */
43 68
    public function __construct(PipelineFactory $pipelineFactory, Configuration $configuration)
44
    {
45 68
        parent::__construct($configuration);
46 68
        $this->pipelineFactory = $pipelineFactory;
47 68
    }
48
49
    /** {@inheritdoc} */
50 66
    protected function initializeRequest(EventCaller $eventCaller)
51
    {
52 66
        parent::initializeRequest($eventCaller);
53 66
        $this->pipeline = $this->pipelineFactory->createPipeline($this, $eventCaller, $this->solver);
54 66
    }
55
56
    /** {@inheritdoc} */
57 66
    protected function terminateRequest()
58 1
    {
59 66
        parent::terminateRequest();
60 66
        $this->pipeline = null;
61 66
    }
62
63
    /** {@inheritdoc} */
64 66
    protected function doExecuteRequest(EventCaller $eventCaller)
65
    {
66 66
        $this->pipeline->process($this->socketBag);
67 28
    }
68
69
    /** {@inheritdoc} */
70 11
    protected function disconnectItems(array $items)
71
    {
72 11
        $this->pipeline->disconnectSockets($items);
73 11
    }
74
}
75