8 #include "opentelemetry/common/attribute_value.h"
9 #include "opentelemetry/common/timestamp.h"
10 #include "opentelemetry/nostd/string_view.h"
11 #include "opentelemetry/sdk/common/empty_attributes.h"
12 #include "opentelemetry/sdk/instrumentationscope/instrumentation_scope.h"
13 #include "opentelemetry/trace/span_context.h"
14 #include "opentelemetry/trace/span_id.h"
15 #include "opentelemetry/trace/span_metadata.h"
16 #include "opentelemetry/version.h"
23 class KeyValueIterable;
36 using namespace opentelemetry::sdk::instrumentationscope;
54 virtual void SetIdentity(
const opentelemetry::trace::SpanContext &span_context,
55 opentelemetry::trace::SpanId parent_span_id) noexcept = 0;
72 opentelemetry::common::SystemTimestamp timestamp,
73 const opentelemetry::common::KeyValueIterable &attributes) noexcept = 0;
81 AddEvent(name, opentelemetry::common::SystemTimestamp(std::chrono::system_clock::now()),
101 const opentelemetry::common::KeyValueIterable &attributes) noexcept
103 AddEvent(name, opentelemetry::common::SystemTimestamp(std::chrono::system_clock::now()),
112 virtual void AddLink(
const opentelemetry::trace::SpanContext &span_context,
113 const opentelemetry::common::KeyValueIterable &attributes) noexcept = 0;
119 void AddLink(opentelemetry::trace::SpanContext span_context)
153 virtual void SetResource(
const opentelemetry::sdk::resource::Resource &resource) noexcept = 0;
159 virtual void SetStartTime(opentelemetry::common::SystemTimestamp start_time) noexcept = 0;
165 virtual void SetDuration(std::chrono::nanoseconds duration) noexcept = 0;
173 virtual explicit operator SpanData *()
const {
return nullptr; }
179 virtual void SetInstrumentationScope(
180 const InstrumentationScope &instrumentation_scope) noexcept = 0;
183 void SetInstrumentationLibrary(const InstrumentationScope &instrumentation_scope) noexcept
185 SetInstrumentationScope(instrumentation_scope);