34 lines
879 B
PHP
34 lines
879 B
PHP
|
<?php
|
||
|
|
||
|
declare(strict_types=1);
|
||
|
|
||
|
namespace OpenTelemetry\SDK\Metrics\View\SelectionCriteria;
|
||
|
|
||
|
use OpenTelemetry\SDK\Common\Instrumentation\InstrumentationScopeInterface;
|
||
|
use OpenTelemetry\SDK\Metrics\Instrument;
|
||
|
use OpenTelemetry\SDK\Metrics\View\SelectionCriteriaInterface;
|
||
|
|
||
|
final class AllCriteria implements SelectionCriteriaInterface
|
||
|
{
|
||
|
private iterable $criteria;
|
||
|
|
||
|
/**
|
||
|
* @param iterable<SelectionCriteriaInterface> $criteria
|
||
|
*/
|
||
|
public function __construct(iterable $criteria)
|
||
|
{
|
||
|
$this->criteria = $criteria;
|
||
|
}
|
||
|
|
||
|
public function accepts(Instrument $instrument, InstrumentationScopeInterface $instrumentationScope): bool
|
||
|
{
|
||
|
foreach ($this->criteria as $criterion) {
|
||
|
if (!$criterion->accepts($instrument, $instrumentationScope)) {
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return true;
|
||
|
}
|
||
|
}
|