]>
Commit | Line | Data |
---|---|---|
f67539c2 TL |
1 | #include "mock_span_context.h" |
2 | ||
3 | namespace opentracing { | |
4 | BEGIN_OPENTRACING_ABI_NAMESPACE | |
5 | namespace mocktracer { | |
6 | MockSpanContext& MockSpanContext::operator=(MockSpanContext&& other) noexcept { | |
7 | data_.trace_id = other.data_.trace_id; | |
8 | data_.span_id = other.data_.span_id; | |
9 | data_.baggage = std::move(other.data_.baggage); | |
10 | return *this; | |
11 | } | |
12 | ||
13 | void MockSpanContext::ForeachBaggageItem( | |
14 | std::function<bool(const std::string& key, const std::string& value)> f) | |
15 | const { | |
16 | std::lock_guard<std::mutex> lock_guard{baggage_mutex_}; | |
17 | for (const auto& baggage_item : data_.baggage) { | |
18 | if (!f(baggage_item.first, baggage_item.second)) { | |
19 | return; | |
20 | } | |
21 | } | |
22 | } | |
23 | ||
24 | void MockSpanContext::CopyData(SpanContextData& data) const { | |
25 | data.trace_id = data_.trace_id; | |
26 | data.span_id = data_.span_id; | |
27 | std::lock_guard<std::mutex> lock_guard{baggage_mutex_}; | |
28 | data.baggage = data_.baggage; | |
29 | } | |
30 | ||
31 | std::unique_ptr<SpanContext> MockSpanContext::Clone() const noexcept try { | |
32 | auto result = std::unique_ptr<MockSpanContext>{new MockSpanContext{}}; | |
33 | CopyData(result->data_); | |
34 | return std::unique_ptr<SpanContext>{result.release()}; | |
35 | } catch (const std::exception& /*e*/) { | |
36 | return nullptr; | |
37 | } | |
38 | } // namespace mocktracer | |
39 | END_OPENTRACING_ABI_NAMESPACE | |
40 | } // namespace opentracing |