diff --git a/api/include/opentelemetry/propagators/composite_http_propagator.h b/api/include/opentelemetry/propagators/composite_http_propagator.h index 9456b01857..9fc306e94b 100644 --- a/api/include/opentelemetry/propagators/composite_http_propagator.h +++ b/api/include/opentelemetry/propagators/composite_http_propagator.h @@ -26,6 +26,12 @@ namespace propagators template class CompositeHTTPPropagator(trace::propagation::HTTPTextFormat) { public: + // Rules that manages how context will be extracted from carrier. + using Getter = nostd::string_view(*)(const T &carrier, nostd::string_view trace_type); + + // Rules that manages how context will be injected to carrier. + using Setter = void(*)(T &carrier, nostd::string_view trace_type,nostd::string_view trace_description); + // Initializes a Composite Http Propagator with given propagators CompositeHTTPPropagator(nostd::span &propagators) { this.propagators_ = propagators; diff --git a/api/include/opentelemetry/trace/default_span.h b/api/include/opentelemetry/trace/default_span.h index eed4db80cc..f0c574243f 100644 --- a/api/include/opentelemetry/trace/default_span.h +++ b/api/include/opentelemetry/trace/default_span.h @@ -67,9 +67,9 @@ class DefaultSpan: public Span { DefaultSpan(DefaultSpan&& spn) : span_context_(spn.GetContext()) {} DefaultSpan(const DefaultSpan& spn) : span_context_(spn.GetContext()) {} -// trace::Tracer &tracer() const noexcept { -// return trace::Tracer(); // Invalid tracer -// } + trace::Tracer &tracer() noexcept { + return tracer_; // Invalid tracer + } // Creates an instance of this class with spancontext. static DefaultSpan Create(SpanContext span_context) { @@ -78,6 +78,7 @@ class DefaultSpan: public Span { private: SpanContext span_context_; + trace::Tracer tracer_; }; } OPENTELEMETRY_END_NAMESPACE \ No newline at end of file diff --git a/api/include/opentelemetry/trace/span.h b/api/include/opentelemetry/trace/span.h index d782738bbe..c33e61f4ba 100644 --- a/api/include/opentelemetry/trace/span.h +++ b/api/include/opentelemetry/trace/span.h @@ -153,7 +153,7 @@ class Span // AddEvent). virtual bool IsRecording() const noexcept = 0; -// virtual trace::Tracer &tracer() const noexcept = 0; + virtual trace::Tracer &tracer() noexcept = 0; }; } // namespace trace OPENTELEMETRY_END_NAMESPACE diff --git a/api/include/opentelemetry/trace/tracer.h b/api/include/opentelemetry/trace/tracer.h index 114f6dca19..3df8c16c7f 100644 --- a/api/include/opentelemetry/trace/tracer.h +++ b/api/include/opentelemetry/trace/tracer.h @@ -1,27 +1,29 @@ -//#pragma once -// -//#include "opentelemetry/nostd/string_view.h" -//#include "opentelemetry/nostd/unique_ptr.h" -//#include "opentelemetry/trace/span.h" -//#include "opentelemetry/version.h" -// -//#include -// -//OPENTELEMETRY_BEGIN_NAMESPACE -//namespace trace -//{ -///** -// * Handles span creation and in-process context propagation. -// * -// * This class provides methods for manipulating the context, creating spans, and controlling spans' -// * lifecycles. -// */ -//class Span; -// -//struct StartSpanOptions; -// -//class Tracer -//{ +#pragma once + +#include "opentelemetry/nostd/string_view.h" +#include "opentelemetry/nostd/unique_ptr.h" +#include "opentelemetry/trace/span.h" +#include "opentelemetry/version.h" + +#include + +OPENTELEMETRY_BEGIN_NAMESPACE +namespace trace +{ +/** + * Handles span creation and in-process context propagation. + * + * This class provides methods for manipulating the context, creating spans, and controlling spans' + * lifecycles. + */ +class Span; + +struct StartSpanOptions; + +class Tracer +{ +public: + Tracer() = default; //public: // virtual ~Tracer() = default; // /** @@ -86,6 +88,6 @@ // } // // virtual void CloseWithMicroseconds(uint64_t timeout) noexcept = 0; -//}; -//} // namespace trace -//OPENTELEMETRY_END_NAMESPACE \ No newline at end of file +}; +} // namespace trace +OPENTELEMETRY_END_NAMESPACE \ No newline at end of file