PluginProbe
Defender Security – Malware Scanner, Login Security & Firewall / 3.0.1
Defender Security – Malware Scanner, Login Security & Firewall v3.0.1
6.3.0 6.2.3 6.2.4 6.2.0 6.2.1 6.2.2 6.1.0 5.3.1 5.4.0 5.4.1 5.5.0 5.5.1 5.6.0 5.6.1 5.6.2 5.7.0 5.7.1 5.7.2 5.8.0 5.8.1 5.9.0 6.0.0 6.0.1 3.0.1 3.1.0 All 141 releases
defender-security / vendor / spomky-labs / cbor-php / src / InfiniteListObject.php

InfiniteListObject.php in Defender Security – Malware Scanner, Login Security & Firewall 3.0.1, at vendor/spomky-labs/cbor-php/src/InfiniteListObject.php

75 lines 1.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 declare(strict_types=1);
4
5 /*
6 * The MIT License (MIT)
7 *
8 * Copyright (c) 2018-2020 Spomky-Labs
9 *
10 * This software may be modified and distributed under the terms
11 * of the MIT license. See the LICENSE file for details.
12 */
13
14 namespace CBOR;
15
16 use ArrayIterator;
17 use function count;
18 use Countable;
19 use InvalidArgumentException;
20 use Iterator;
21 use IteratorAggregate;
22
23 final class InfiniteListObject extends AbstractCBORObject implements Countable, IteratorAggregate
24 {
25 private const MAJOR_TYPE = 0b100;
26 private const ADDITIONAL_INFORMATION = 0b00011111;
27
28 /**
29 * @var CBORObject[]
30 */
31 private $data = [];
32
33 public function __construct()
34 {
35 parent::__construct(self::MAJOR_TYPE, self::ADDITIONAL_INFORMATION);
36 }
37
38 public function __toString(): string
39 {
40 $result = parent::__toString();
41 foreach ($this->data as $object) {
42 $result .= (string) $object;
43 }
44 $bin = hex2bin('FF');
45 if (false === $bin) {
46 throw new InvalidArgumentException('Unable to convert the data');
47 }
48 $result .= $bin;
49
50 return $result;
51 }
52
53 public function getNormalizedData(bool $ignoreTags = false): array
54 {
55 return array_map(function (CBORObject $item) use ($ignoreTags) {
56 return $item->getNormalizedData($ignoreTags);
57 }, $this->data);
58 }
59
60 public function add(CBORObject $item): void
61 {
62 $this->data[] = $item;
63 }
64
65 public function count(): int
66 {
67 return count($this->data);
68 }
69
70 public function getIterator(): Iterator
71 {
72 return new ArrayIterator($this->data);
73 }
74 }
75