#include #include namespace opentracing { BEGIN_OPENTRACING_ABI_NAMESPACE namespace mocktracer { JsonRecorder::JsonRecorder(std::unique_ptr&& out) : out_{std::move(out)} {} void JsonRecorder::RecordSpan(SpanData&& span_data) noexcept try { std::lock_guard lock_guard{mutex_}; spans_.emplace_back(std::move(span_data)); } catch (const std::exception&) { // Drop span. } void JsonRecorder::Close() noexcept try { if (out_ == nullptr) { return; } std::lock_guard lock_guard{mutex_}; ToJson(*out_, spans_); out_->flush(); spans_.clear(); } catch (const std::exception&) { // Ignore errors. } } // namespace mocktracer END_OPENTRACING_ABI_NAMESPACE } // namespace opentracing