Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x

ObservableCallback.php

Namespace

OpenTelemetry\SDK\Metrics

File

vendor/open-telemetry/sdk/Metrics/ObservableCallback.php

View source
<?php

declare (strict_types=1);
namespace OpenTelemetry\SDK\Metrics;

use function assert;
use OpenTelemetry\API\Metrics\ObservableCallbackInterface;
use OpenTelemetry\SDK\Metrics\MetricRegistry\MetricWriterInterface;

/**
 * @internal
 */
final class ObservableCallback implements ObservableCallbackInterface {
    public function __construct(MetricWriterInterface $writer, ReferenceCounterInterface $referenceCounter, ?int $callbackId, ?ObservableCallbackDestructor $callbackDestructor, ?object $target) {
    }
    public function detach() : void {
        if ($this->callbackId === null) {
            return;
        }
        $this->writer
            ->unregisterCallback($this->callbackId);
        $this->referenceCounter
            ->release();
        if ($this->callbackDestructor !== null) {
            unset($this->callbackDestructor->callbackIds[$this->callbackId]);
            if (!$this->callbackDestructor->callbackIds) {
                assert($this->target !== null);
                unset($this->callbackDestructor->destructors[$this->target]);
            }
        }
        $this->callbackId = null;
        $this->target = null;
    }
    public function __destruct() {
        if ($this->callbackDestructor !== null) {
            return;
        }
        if ($this->callbackId === null) {
            return;
        }
        $this->referenceCounter
            ->acquire(true);
        $this->referenceCounter
            ->release();
    }

}

Classes

Title Deprecated Summary
ObservableCallback @internal

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal