1 | <?php |
||
10 | class VersionSerializer |
||
11 | { |
||
12 | /** |
||
13 | * @var NetworkAddressSerializer |
||
14 | */ |
||
15 | private $netAddr; |
||
16 | |||
17 | /** |
||
18 | * @param NetworkAddressSerializer $netAddr |
||
19 | */ |
||
20 | 84 | public function __construct(NetworkAddressSerializer $netAddr) |
|
24 | |||
25 | /** |
||
26 | * @return \BitWasp\Buffertools\Template |
||
27 | */ |
||
28 | 9 | private function getTemplate() |
|
42 | |||
43 | /** |
||
44 | * @param Parser $parser |
||
45 | * @return Version |
||
46 | */ |
||
47 | 2 | public function fromParser(Parser & $parser) |
|
48 | { |
||
49 | 2 | list ($version, $services, $timestamp, $addrRecv, $addrFrom, $nonce, $userAgent, $startHeight, $relay) = $this->getTemplate()->parse($parser); |
|
50 | |||
51 | 2 | return new Version( |
|
52 | 2 | $version, |
|
53 | 2 | $services, |
|
54 | 2 | $timestamp, |
|
55 | 2 | $this->netAddr->parse($addrRecv), |
|
56 | 2 | $this->netAddr->parse($addrFrom), |
|
57 | 2 | $nonce, |
|
58 | 2 | $userAgent, |
|
59 | 2 | $startHeight, |
|
60 | (bool)$relay |
||
61 | 2 | ); |
|
62 | } |
||
63 | |||
64 | /** |
||
65 | * @param $string |
||
66 | * @return Version |
||
67 | */ |
||
68 | 2 | public function parse($string) |
|
72 | |||
73 | /** |
||
74 | * @param Version $version |
||
75 | * @return \BitWasp\Buffertools\Buffer |
||
76 | */ |
||
77 | 9 | public function serialize(Version $version) |
|
91 | } |
||
92 |