Connection   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 55
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 5
eloc 10
dl 0
loc 55
c 0
b 0
f 0
rs 10

5 Methods

Rating   Name   Duplication   Size   Complexity  
A reply() 0 3 1
A close() 0 3 1
A from() 0 4 1
A setRequest() 0 4 1
A request() 0 3 1
1
<?php
2
/**
3
 * HTTP server connection
4
 * User: moyo
5
 * Date: 29/09/2017
6
 * Time: 12:48 PM
7
 */
8
9
namespace Carno\HTTP\Server;
10
11
use Carno\HTTP\Contracts\Powered\Server;
12
use Carno\Net\Connection as NET;
13
use Carno\Net\Contracts\HTTP;
14
use Psr\Http\Message\ResponseInterface as Response;
15
use Psr\Http\Message\ServerRequestInterface as ServerRequest;
16
17
class Connection extends NET implements Server
18
{
19
    /**
20
     * @var HTTP
21
     */
22
    private $chan = null;
23
24
    /**
25
     * @var ServerRequest
26
     */
27
    private $request = null;
28
29
    /**
30
     * @param HTTP $chan
31
     * @return Server
32
     */
33
    public function from(HTTP $chan) : Server
34
    {
35
        $this->chan = $chan;
36
        return $this;
37
    }
38
39
    /**
40
     * @param ServerRequest $request
41
     * @return static
42
     */
43
    public function setRequest(ServerRequest $request) : self
44
    {
45
        $this->request = $request;
46
        return $this;
47
    }
48
49
    /**
50
     * @return ServerRequest
51
     */
52
    public function request() : ServerRequest
53
    {
54
        return $this->request;
55
    }
56
57
    /**
58
     * @param Response $response
59
     * @return bool
60
     */
61
    public function reply(Response $response) : bool
62
    {
63
        return $this->chan->reply($this->id(), $response);
64
    }
65
66
    /**
67
     * @return bool
68
     */
69
    public function close() : bool
70
    {
71
        return $this->chan->close($this->id());
72
    }
73
}
74