Source File
propagator.go
Belonging Package
go.opentelemetry.io/otel/internal/global
// Copyright The OpenTelemetry Authors// SPDX-License-Identifier: Apache-2.0package global // import "go.opentelemetry.io/otel/internal/global"import ()// textMapPropagator is a default TextMapPropagator that delegates calls to a// registered delegate if one is set, otherwise it defaults to delegating the// calls to a the default no-op propagation.TextMapPropagator.type textMapPropagator struct {mtx sync.Mutexonce sync.Oncedelegate propagation.TextMapPropagatornoop propagation.TextMapPropagator}// Compile-time guarantee that textMapPropagator implements the// propagation.TextMapPropagator interface.var _ propagation.TextMapPropagator = (*textMapPropagator)(nil)func newTextMapPropagator() *textMapPropagator {return &textMapPropagator{noop: propagation.NewCompositeTextMapPropagator(),}}// SetDelegate sets a delegate propagation.TextMapPropagator that all calls are// forwarded to. Delegation can only be performed once, all subsequent calls// perform no delegation.func ( *textMapPropagator) ( propagation.TextMapPropagator) {if == nil {return}.mtx.Lock().once.Do(func() { .delegate = }).mtx.Unlock()}// effectiveDelegate returns the current delegate of p if one is set,// otherwise the default noop TextMapPropagator is returned. This method// can be called concurrently.func ( *textMapPropagator) () propagation.TextMapPropagator {.mtx.Lock()defer .mtx.Unlock()if .delegate != nil {return .delegate}return .noop}// Inject set cross-cutting concerns from the Context into the carrier.func ( *textMapPropagator) ( context.Context, propagation.TextMapCarrier) {.effectiveDelegate().Inject(, )}// Extract reads cross-cutting concerns from the carrier into a Context.func ( *textMapPropagator) ( context.Context, propagation.TextMapCarrier) context.Context {return .effectiveDelegate().Extract(, )}// Fields returns the keys whose values are set with Inject.func ( *textMapPropagator) () []string {return .effectiveDelegate().Fields()}
![]() |
The pages are generated with Golds v0.8.2. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds. |