class ContextStorageNode
@internal
Hierarchy
- class \OpenTelemetry\Context\ContextStorageNode implements \OpenTelemetry\Context\ScopeInterface, \OpenTelemetry\Context\ContextStorageScopeInterface
Expanded class hierarchy of ContextStorageNode
File
-
vendor/
open-telemetry/ context/ ContextStorageNode.php, line 12
Namespace
OpenTelemetry\ContextView source
final class ContextStorageNode implements ScopeInterface, ContextStorageScopeInterface {
private array $localStorage = [];
public function __construct(ContextInterface $context, ContextStorageHead $head, ?ContextStorageNode $previous = null) {
}
public function offsetExists(mixed $offset) : bool {
return isset($this->localStorage[$offset]);
}
public function offsetGet(mixed $offset) : mixed {
return $this->localStorage[$offset];
}
public function offsetSet(mixed $offset, mixed $value) : void {
$this->localStorage[$offset] = $value;
}
public function offsetUnset(mixed $offset) : void {
unset($this->localStorage[$offset]);
}
public function context() : ContextInterface {
return $this->context;
}
public function detach() : int {
$flags = 0;
if ($this->head !== $this->head->storage
->head()) {
$flags |= ScopeInterface::INACTIVE;
}
if ($this === $this->head->node) {
assert($this->previous !== $this);
$this->head->node = $this->previous;
$this->previous = $this;
return $flags;
}
if ($this->previous === $this) {
return $flags | ScopeInterface::DETACHED;
}
assert($this->head->node !== null);
for ($n = $this->head->node, $depth = 1; $n->previous !== $this; $n = $n->previous, $depth++) {
assert($n->previous !== null);
}
$n->previous = $this->previous;
$this->previous = $this;
return $flags | ScopeInterface::MISMATCH | $depth;
}
private function __clone() {
}
}
Members
Title Sort descending | Modifiers | Object type | Summary | Overriden Title |
---|---|---|---|---|
ContextStorageNode::$localStorage | private | property | ||
ContextStorageNode::context | public | function | Returns the context associated with this scope. | Overrides ContextStorageScopeInterface::context |
ContextStorageNode::detach | public | function | Detaches the context associated with this scope and restores the previously associated context. |
Overrides ScopeInterface::detach |
ContextStorageNode::offsetExists | public | function | ||
ContextStorageNode::offsetGet | public | function | ||
ContextStorageNode::offsetSet | public | function | Overrides ContextStorageScopeInterface::offsetSet | |
ContextStorageNode::offsetUnset | public | function | ||
ContextStorageNode::__clone | private | function | ||
ContextStorageNode::__construct | public | function | ||
ScopeInterface::DETACHED | public | constant | The associated context was already detached. | |
ScopeInterface::INACTIVE | public | constant | The associated context is not in the active execution context. | |
ScopeInterface::MISMATCH | public | constant | The associated context is not the active context. |