Class: OpenTelemetry::Baggage::Propagation::TextMapInjector

Inherits:
Object
  • Object
show all
Defined in:
lib/opentelemetry/baggage/propagation/text_map_injector.rb

Overview

Injects baggage using the W3C Baggage format

Instance Method Summary collapse

Constructor Details

#initialize(default_setter = Context::Propagation.text_map_setter) ⇒ TextMapInjector

Returns a new TextMapInjector that injects context using the specified setter

Parameters:

  • default_setter (optional Setter) (defaults to: Context::Propagation.text_map_setter)

    The default setter used to write context into a carrier during inject. Defaults to a Context::Propagation::TextMapSetter instance.



21
22
23
# File 'lib/opentelemetry/baggage/propagation/text_map_injector.rb', line 21

def initialize(default_setter = Context::Propagation.text_map_setter)
  @default_setter = default_setter
end

Instance Method Details

#inject(carrier, context, setter = nil) ⇒ Object

Inject in-process baggage into the supplied carrier.

Parameters:

  • carrier (Carrier)

    The carrier to inject baggage into

  • context (Context)

    The context to read baggage from

  • setter (optional Setter) (defaults to: nil)

    If the optional setter is provided, it will be used to write context into the carrier, otherwise the default setter will be used.

Returns:

  • (Object)

    carrier with injected baggage



33
34
35
36
37
38
39
40
# File 'lib/opentelemetry/baggage/propagation/text_map_injector.rb', line 33

def inject(carrier, context, setter = nil)
  return carrier unless (baggage = context[ContextKeys.baggage_key]) && !baggage.empty?

  setter ||= @default_setter
  setter.set(carrier, BAGGAGE_KEY, encode(baggage))

  carrier
end