/
var
/
www
/
barefootlaw.org
/
will-generator
/
vendor
/
bacon
/
bacon-qr-code
/
src
/
Common
/
Upload File
HOME
<?php declare(strict_types = 1); namespace BaconQrCode\Common; /** * Encapsulates a set of error-correction blocks in one symbol version. * * Most versions will use blocks of differing sizes within one version, so, this encapsulates the parameters for each * set of blocks. It also holds the number of error-correction codewords per block since it will be the same across all * blocks within one version. */ final class EcBlocks { /** * Number of EC codewords per block. * * @var int */ private $ecCodewordsPerBlock; /** * List of EC blocks. * * @var EcBlock[] */ private $ecBlocks; public function __construct(int $ecCodewordsPerBlock, EcBlock ...$ecBlocks) { $this->ecCodewordsPerBlock = $ecCodewordsPerBlock; $this->ecBlocks = $ecBlocks; } /** * Returns the number of EC codewords per block. */ public function getEcCodewordsPerBlock() : int { return $this->ecCodewordsPerBlock; } /** * Returns the total number of EC block appearances. */ public function getNumBlocks() : int { $total = 0; foreach ($this->ecBlocks as $ecBlock) { $total += $ecBlock->getCount(); } return $total; } /** * Returns the total count of EC codewords. */ public function getTotalEcCodewords() : int { return $this->ecCodewordsPerBlock * $this->getNumBlocks(); } /** * Returns the EC blocks included in this collection. * * @return EcBlock[] */ public function getEcBlocks() : array { return $this->ecBlocks; } }