NVIDIA DeepStream SDK API Reference

9.2 Release
includes/opentelemetry/baggage/propagation/baggage_propagator.h
Go to the documentation of this file.
1 // Copyright The OpenTelemetry Authors
2 // SPDX-License-Identifier: Apache-2.0
3 
4 #pragma once
5 
6 #include <memory>
7 #include <string>
8 
9 #include "opentelemetry/baggage/baggage.h"
10 #include "opentelemetry/baggage/baggage_context.h"
11 #include "opentelemetry/context/context.h"
12 #include "opentelemetry/context/propagation/text_map_propagator.h"
13 #include "opentelemetry/nostd/function_ref.h"
14 #include "opentelemetry/nostd/string_view.h"
15 #include "opentelemetry/version.h"
16 
18 namespace baggage
19 {
20 namespace propagation
21 {
22 
24 {
25 public:
27  const context::Context &context) noexcept override
28  {
30  auto header = baggage->ToHeader();
31  if (header.size())
32  {
33  carrier.Set(kBaggageHeader, header);
34  }
35  }
36 
38  context::Context &context) noexcept override
39  {
40  nostd::string_view baggage_str = carrier.Get(baggage::kBaggageHeader);
41  auto baggage = baggage::Baggage::FromHeader(baggage_str);
42 
43  if (baggage->ToHeader().size())
44  {
46  }
47  else
48  {
49  return context;
50  }
51  }
52 
53  bool Fields(nostd::function_ref<bool(nostd::string_view)> callback) const noexcept override
54  {
55  return callback(kBaggageHeader);
56  }
57 };
58 } // namespace propagation
59 } // namespace baggage
nostd::function_ref
Definition: includes/opentelemetry/nostd/function_ref.h:17
baggage::GetBaggage
nostd::shared_ptr< Baggage > GetBaggage(const context::Context &context) noexcept
Definition: includes/opentelemetry/baggage/baggage_context.h:18
baggage::propagation::BaggagePropagator::Inject
void Inject(context::propagation::TextMapCarrier &carrier, const context::Context &context) noexcept override
Definition: includes/opentelemetry/baggage/propagation/baggage_propagator.h:26
baggage
Definition: includes/opentelemetry/baggage/baggage.h:16
baggage::propagation::BaggagePropagator::Extract
context::Context Extract(const context::propagation::TextMapCarrier &carrier, context::Context &context) noexcept override
Definition: includes/opentelemetry/baggage/propagation/baggage_propagator.h:37
OPENTELEMETRY_BEGIN_NAMESPACE
#define OPENTELEMETRY_BEGIN_NAMESPACE
Definition: includes/opentelemetry/version.h:21
context
Definition: includes/opentelemetry/context/context.h:16
context::propagation::TextMapPropagator
Definition: includes/opentelemetry/context/propagation/text_map_propagator.h:42
baggage::SetBaggage
context::Context SetBaggage(context::Context &context, const nostd::shared_ptr< Baggage > &baggage) noexcept
Definition: includes/opentelemetry/baggage/baggage_context.h:29
baggage::kBaggageHeader
static const std::string kBaggageHeader
Definition: includes/opentelemetry/baggage/baggage_context.h:16
OPENTELEMETRY_END_NAMESPACE
#define OPENTELEMETRY_END_NAMESPACE
Definition: includes/opentelemetry/version.h:24
baggage::propagation::BaggagePropagator
Definition: includes/opentelemetry/baggage/propagation/baggage_propagator.h:23
baggage::Baggage::FromHeader
static nostd::shared_ptr< Baggage > FromHeader(nostd::string_view header) noexcept
Definition: includes/opentelemetry/baggage/baggage.h:108
context::Context
Definition: includes/opentelemetry/context/context.h:23
context::propagation::TextMapCarrier
Definition: includes/opentelemetry/context/propagation/text_map_propagator.h:18
baggage::propagation::BaggagePropagator::Fields
bool Fields(nostd::function_ref< bool(nostd::string_view)> callback) const noexcept override
Definition: includes/opentelemetry/baggage/propagation/baggage_propagator.h:53
nostd::string_view
Back port of std::string_view to work with pre-cpp-17 compilers.
Definition: includes/opentelemetry/nostd/string_view.h:37