/proc/self/cwd/envoy/tracing/tracer.h
Line | Count | Source |
1 | | #pragma once |
2 | | |
3 | | #include <memory> |
4 | | |
5 | | #include "envoy/common/pure.h" |
6 | | #include "envoy/tracing/trace_context.h" |
7 | | #include "envoy/tracing/trace_driver.h" |
8 | | #include "envoy/tracing/trace_reason.h" |
9 | | |
10 | | namespace Envoy { |
11 | | namespace Tracing { |
12 | | |
13 | | /** |
14 | | * Tracer is responsible for handling traces and delegate actions to the |
15 | | * corresponding drivers. |
16 | | */ |
17 | | class Tracer { |
18 | | public: |
19 | 15.9k | virtual ~Tracer() = default; |
20 | | |
21 | | virtual SpanPtr startSpan(const Config& config, TraceContext& trace_context, |
22 | | const StreamInfo::StreamInfo& stream_info, |
23 | | Tracing::Decision tracing_decision) PURE; |
24 | | }; |
25 | | |
26 | | using TracerSharedPtr = std::shared_ptr<Tracer>; |
27 | | |
28 | | } // namespace Tracing |
29 | | } // namespace Envoy |