]>
Commit | Line | Data |
---|---|---|
1e59de90 TL |
1 | // Copyright The OpenTelemetry Authors |
2 | // SPDX-License-Identifier: Apache-2.0 | |
3 | ||
4 | #pragma once | |
5 | ||
6 | #include "opentelemetry/baggage/baggage.h" | |
7 | #include "opentelemetry/context/context.h" | |
8 | #include "opentelemetry/nostd/shared_ptr.h" | |
9 | #include "opentelemetry/version.h" | |
10 | ||
11 | OPENTELEMETRY_BEGIN_NAMESPACE | |
12 | ||
13 | namespace baggage | |
14 | { | |
15 | ||
16 | static const std::string kBaggageHeader = "baggage"; | |
17 | ||
18 | inline nostd::shared_ptr<opentelemetry::baggage::Baggage> GetBaggage( | |
19 | const opentelemetry::context::Context &context) noexcept | |
20 | { | |
21 | context::ContextValue context_value = context.GetValue(kBaggageHeader); | |
22 | if (nostd::holds_alternative<nostd::shared_ptr<opentelemetry::baggage::Baggage>>(context_value)) | |
23 | { | |
24 | return nostd::get<nostd::shared_ptr<opentelemetry::baggage::Baggage>>(context_value); | |
25 | } | |
26 | static nostd::shared_ptr<opentelemetry::baggage::Baggage> empty_baggage{ | |
27 | new opentelemetry::baggage::Baggage()}; | |
28 | return empty_baggage; | |
29 | } | |
30 | ||
31 | inline context::Context SetBaggage( | |
32 | opentelemetry::context::Context &context, | |
33 | nostd::shared_ptr<opentelemetry::baggage::Baggage> baggage) noexcept | |
34 | { | |
35 | return context.SetValue(kBaggageHeader, baggage); | |
36 | } | |
37 | ||
38 | } // namespace baggage | |
39 | OPENTELEMETRY_END_NAMESPACE |