summaryrefslogtreecommitdiff
path: root/vendor/open-telemetry/context/ContextStorageInterface.php
blob: e5a1050747fd394f4650cf7ad93b257f96db19ab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php

declare(strict_types=1);

namespace OpenTelemetry\Context;

interface ContextStorageInterface
{
    /**
     * Returns the current scope.
     *
     * @return ContextStorageScopeInterface|null current scope, or null if no
     *         scope was attached in the current execution unit
     */
    public function scope(): ?ContextStorageScopeInterface;

    /**
     * Returns the current context.
     *
     * @return ContextInterface current context
     */
    public function current(): ContextInterface;

    /**
     * Attaches the context as active context.
     *
     * @param ContextInterface $context context to attach
     * @return ContextStorageScopeInterface scope to detach the context and
     *         restore the previous context
     */
    public function attach(ContextInterface $context): ContextStorageScopeInterface;
}