|
27 | 27 | #include "jaegertracing/Reference.h"
|
28 | 28 | #include "jaegertracing/SpanContext.h"
|
29 | 29 | #include "jaegertracing/Tag.h"
|
30 |
| -#include "jaegertracing/thrift-gen/jaeger_types.h" |
31 | 30 |
|
32 | 31 | namespace jaegertracing {
|
33 | 32 |
|
34 | 33 | class Tracer;
|
35 | 34 |
|
| 35 | +namespace thrift { |
| 36 | +class Span; |
| 37 | +} |
| 38 | + |
36 | 39 | class Span : public opentracing::Span {
|
37 | 40 | public:
|
38 | 41 | using SteadyClock = opentracing::SteadyClock;
|
@@ -104,51 +107,7 @@ class Span : public opentracing::Span {
|
104 | 107 |
|
105 | 108 | friend void swap(Span& lhs, Span& rhs) { lhs.swap(rhs); }
|
106 | 109 |
|
107 |
| - thrift::Span thrift() const |
108 |
| - { |
109 |
| - std::lock_guard<std::mutex> lock(_mutex); |
110 |
| - thrift::Span span; |
111 |
| - span.__set_traceIdHigh(_context.traceID().high()); |
112 |
| - span.__set_traceIdLow(_context.traceID().low()); |
113 |
| - span.__set_spanId(_context.spanID()); |
114 |
| - span.__set_parentSpanId(_context.parentID()); |
115 |
| - span.__set_operationName(_operationName); |
116 |
| - |
117 |
| - std::vector<thrift::SpanRef> refs; |
118 |
| - refs.reserve(_references.size()); |
119 |
| - std::transform(std::begin(_references), |
120 |
| - std::end(_references), |
121 |
| - std::back_inserter(refs), |
122 |
| - [](const Reference& ref) { return ref.thrift(); }); |
123 |
| - span.__set_references(refs); |
124 |
| - |
125 |
| - span.__set_flags(_context.flags()); |
126 |
| - span.__set_startTime( |
127 |
| - std::chrono::duration_cast<std::chrono::microseconds>( |
128 |
| - _startTimeSystem.time_since_epoch()) |
129 |
| - .count()); |
130 |
| - span.__set_duration( |
131 |
| - std::chrono::duration_cast<std::chrono::microseconds>(_duration) |
132 |
| - .count()); |
133 |
| - |
134 |
| - std::vector<thrift::Tag> tags; |
135 |
| - tags.reserve(_tags.size()); |
136 |
| - std::transform(std::begin(_tags), |
137 |
| - std::end(_tags), |
138 |
| - std::back_inserter(tags), |
139 |
| - [](const Tag& tag) { return tag.thrift(); }); |
140 |
| - span.__set_tags(tags); |
141 |
| - |
142 |
| - std::vector<thrift::Log> logs; |
143 |
| - logs.reserve(_logs.size()); |
144 |
| - std::transform(std::begin(_logs), |
145 |
| - std::end(_logs), |
146 |
| - std::back_inserter(logs), |
147 |
| - [](const LogRecord& log) { return log.thrift(); }); |
148 |
| - span.__set_logs(logs); |
149 |
| - |
150 |
| - return span; |
151 |
| - } |
| 110 | + void thrift(thrift::Span& span) const; |
152 | 111 |
|
153 | 112 | template <typename Stream>
|
154 | 113 | void print(Stream& out) const
|
|
0 commit comments