3232#include < utility>
3333#include < vector>
3434
35- #include " expected.h"
3635#include " optional.h"
3736#include " propagation_style.h"
3837#include " runtime_id.h"
@@ -80,6 +79,8 @@ class TraceSegment {
8079
8180 std::shared_ptr<ConfigManager> config_manager_;
8281
82+ bool tracing_enabled_;
83+
8384 public:
8485 TraceSegment (const std::shared_ptr<Logger>& logger,
8586 const std::shared_ptr<Collector>& collector,
@@ -95,7 +96,8 @@ class TraceSegment {
9596 Optional<SamplingDecision> sampling_decision,
9697 Optional<std::string> additional_w3c_tracestate,
9798 Optional<std::string> additional_datadog_w3c_tracestate,
98- std::unique_ptr<SpanData> local_root);
99+ std::unique_ptr<SpanData> local_root,
100+ bool tracing_enabled = true );
99101
100102 const SpanDefaults& defaults () const ;
101103 const Optional<std::string>& hostname () const ;
@@ -118,10 +120,13 @@ class TraceSegment {
118120 void span_finished ();
119121
120122 // Set the sampling decision to be a local, manual decision with the specified
121- // sampling `priority`. Overwrite any previous sampling decision.
123+ // sampling `priority`. Overwrite any previous sampling decision.
122124 void override_sampling_priority (int priority);
123125 void override_sampling_priority (SamplingPriority priority);
124126
127+ // Retrieves the local root span.
128+ SpanData& local_root () const ;
129+
125130 private:
126131 // If `sampling_decision_` is null, use `trace_sampler_` to make a
127132 // sampling decision and assign it to `sampling_decision_`.
0 commit comments