NativeRequestExecutor::disconnectItems()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 3
cts 3
cp 1
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 1
crap 1
1
<?php
2
/**
3
 * Async sockets
4
 *
5
 * @copyright Copyright (c) 2015-2017, 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 69
    public function __construct(PipelineFactory $pipelineFactory, Configuration $configuration)
44
    {
45 69
        parent::__construct($configuration);
46 69
        $this->pipelineFactory = $pipelineFactory;
47 69
    }
48
49
    /** {@inheritdoc} */
50 67
    protected function initializeRequest(EventCaller $eventCaller, ExecutionContext $executionContext)
51
    {
52 67
        parent::initializeRequest($eventCaller, $executionContext);
53 67
        $this->pipeline = $this->pipelineFactory->createPipeline($this, $executionContext, $eventCaller, $this->solver);
54 67
    }
55
56
    /** {@inheritdoc} */
57 67
    protected function terminateRequest(ExecutionContext $executionContext)
58 1
    {
59 67
        parent::terminateRequest($executionContext);
60 67
        $this->pipeline = null;
61 67
    }
62
63
    /** {@inheritdoc} */
64 67
    protected function doExecuteRequest(EventCaller $eventCaller, ExecutionContext $executionContext)
65
    {
66 67
        $this->pipeline->process($this->socketBag);
67 29
    }
68
69
    /** {@inheritdoc} */
70 11
    protected function disconnectItems(array $items)
71
    {
72 11
        $this->pipeline->disconnectSockets($items);
73 11
    }
74
}
75