summaryrefslogtreecommitdiff
path: root/vendor/open-telemetry/context/ImplicitContextKeyedInterface.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/open-telemetry/context/ImplicitContextKeyedInterface.php')
-rw-r--r--vendor/open-telemetry/context/ImplicitContextKeyedInterface.php32
1 files changed, 32 insertions, 0 deletions
diff --git a/vendor/open-telemetry/context/ImplicitContextKeyedInterface.php b/vendor/open-telemetry/context/ImplicitContextKeyedInterface.php
new file mode 100644
index 000000000..0af93122c
--- /dev/null
+++ b/vendor/open-telemetry/context/ImplicitContextKeyedInterface.php
@@ -0,0 +1,32 @@
+<?php
+
+declare(strict_types=1);
+
+namespace OpenTelemetry\Context;
+
+/**
+ * Represents a value that can be stored within {@see ContextInterface}.
+ * Allows storing themselves without exposing a {@see ContextKeyInterface}.
+ *
+ * @see https://github.com/open-telemetry/opentelemetry-specification/blob/v1.6.1/specification/trace/api.md#context-interaction
+ * @see https://github.com/open-telemetry/opentelemetry-specification/blob/v1.6.1/specification/baggage/api.md#context-interaction
+ */
+interface ImplicitContextKeyedInterface
+{
+ /**
+ * Adds `$this` to the {@see Context::getCurrent() current context} and makes
+ * the new {@see Context} the current context.
+ *
+ * {@see ScopeInterface::detach()} _MUST_ be called to properly restore the previous context.
+ *
+ * This method is equivalent to `Context::getCurrent().with($value).activate();`.
+ *
+ * @todo: Update this to suggest using the new helper method way to doing something in a specific context/span.
+ */
+ public function activate(): ScopeInterface;
+
+ /**
+ * Returns a new {@see ContextInterface} created by setting `$this` into the provided [@see ContextInterface}.
+ */
+ public function storeInContext(ContextInterface $context): ContextInterface;
+}