44 const utils::impl::SourceLocation& source_location =
utils::impl::SourceLocation::Current()
53 ReferenceType reference_type = ReferenceType::kChild,
54 const utils::impl::SourceLocation& source_location =
utils::impl::SourceLocation::Current()
57 Span(Span&& other)
noexcept;
58 Span(
const Span& other) =
delete;
59 Span& operator=(Span&&) =
delete;
60 Span& operator=(
const Span&) =
delete;
88 std::string_view trace_id,
89 std::string_view parent_span_id,
90 const utils::impl::SourceLocation& source_location =
utils::impl::SourceLocation::Current()
104 std::string_view trace_id,
105 std::string_view parent_span_id,
106 std::string_view link,
107 const utils::impl::SourceLocation& source_location =
utils::impl::SourceLocation::Current()
120 const utils::impl::SourceLocation& source_location =
utils::impl::SourceLocation::Current()
129 const utils::impl::SourceLocation& source_location =
utils::impl::SourceLocation::Current()
134 const utils::impl::SourceLocation& source_location =
utils::impl::SourceLocation::Current()
160 void AddTag(std::string key, logging::LogExtra::Value value);
171 void AddNonInheritableTags(
const logging::LogExtra&);
178 void AddEvent(std::string_view event_name);
278 std::chrono::system_clock::time_point GetStartSystemTime()
const;
282 void AddTags(
const logging::LogExtra&,
utils::impl::InternalTag);
285 impl::TimeStorage& GetTimeStorage(
utils::impl::InternalTag);
288 void LogTo(
utils::impl::InternalTag, logging::impl::TagWriter writer)
const;
292 struct OptionalDeleter {
293 void operator()(Impl*)
const noexcept;
295 static OptionalDeleter ShouldDelete()
noexcept;
297 static OptionalDeleter DoNotDelete()
noexcept;
300 explicit OptionalDeleter(
bool do_delete)
301 : do_delete_(do_delete)
304 const bool do_delete_;
307 friend class SpanBuilder;
309 friend class InPlaceSpan;
310 friend class engine::TracePlugin;
312 explicit Span(std::unique_ptr<Impl, OptionalDeleter>&& pimpl);
314 std::string_view GetTag(std::string_view tag)
const;
316 std::unique_ptr<Impl, OptionalDeleter> pimpl_;