2 * Copyright (c) 2017 Uber Technologies, Inc.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #ifndef JAEGERTRACING_PROPAGATION_HEADERSCONFIG_H
18 #define JAEGERTRACING_PROPAGATION_HEADERSCONFIG_H
20 #include "jaegertracing/Constants.h"
21 #include "jaegertracing/utils/YAML.h"
24 namespace jaegertracing
{
25 namespace propagation
{
29 #ifdef JAEGERTRACING_WITH_YAML_CPP
31 static HeadersConfig
parse(const YAML::Node
& configYAML
)
33 if (!configYAML
.IsDefined() || !configYAML
.IsMap()) {
34 return HeadersConfig();
37 const auto jaegerDebugHeader
= utils::yaml::findOrDefault
<std::string
>(
38 configYAML
, "jaegerDebugHeader", "");
39 const auto jaegerBaggageHeader
=
40 utils::yaml::findOrDefault
<std::string
>(
41 configYAML
, "jaegerBaggageHeader", "");
42 const auto traceContextHeaderName
=
43 utils::yaml::findOrDefault
<std::string
>(
44 configYAML
, "TraceContextHeaderName", "");
45 const auto traceBaggageHeaderPrefix
=
46 utils::yaml::findOrDefault
<std::string
>(
47 configYAML
, "traceBaggageHeaderPrefix", "");
49 return HeadersConfig(jaegerDebugHeader
,
51 traceContextHeaderName
,
52 traceBaggageHeaderPrefix
);
55 #endif // JAEGERTRACING_WITH_YAML_CPP
58 : HeadersConfig("", "", "", "")
62 HeadersConfig(const std::string
& jaegerDebugHeader
,
63 const std::string
& jaegerBaggageHeader
,
64 const std::string
& traceContextHeaderName
,
65 const std::string
& traceBaggageHeaderPrefix
)
66 : _jaegerDebugHeader(jaegerDebugHeader
.empty() ? kJaegerDebugHeader
68 , _jaegerBaggageHeader(jaegerBaggageHeader
.empty()
69 ? kJaegerBaggageHeader
70 : jaegerBaggageHeader
)
71 , _traceContextHeaderName(traceContextHeaderName
.empty()
72 ? kTraceContextHeaderName
73 : traceContextHeaderName
)
74 , _traceBaggageHeaderPrefix(traceBaggageHeaderPrefix
.empty()
75 ? kTraceBaggageHeaderPrefix
76 : traceBaggageHeaderPrefix
)
80 const std::string
& jaegerBaggageHeader() const
82 return _jaegerBaggageHeader
;
85 const std::string
& jaegerDebugHeader() const { return _jaegerDebugHeader
; }
87 const std::string
& traceBaggageHeaderPrefix() const
89 return _traceBaggageHeaderPrefix
;
92 const std::string
& traceContextHeaderName() const
94 return _traceContextHeaderName
;
98 std::string _jaegerDebugHeader
;
99 std::string _jaegerBaggageHeader
;
100 std::string _traceContextHeaderName
;
101 std::string _traceBaggageHeaderPrefix
;
104 } // namespace propagation
105 } // namespace jaegertracing
107 #endif // JAEGERTRACING_PROPAGATION_HEADERSCONFIG_H