1 #ifndef OPENTRACING_MOCKTRACER_JSON_RECORDER_H
2 #define OPENTRACING_MOCKTRACER_JSON_RECORDER_H
4 #include <opentracing/mocktracer/recorder.h>
5 #include <opentracing/mocktracer/symbols.h>
11 namespace opentracing
{
12 BEGIN_OPENTRACING_ABI_NAMESPACE
13 namespace mocktracer
{
14 // JsonRecorder serializes finished spans to a provided std::ostream in a JSON
18 class OPENTRACING_MOCK_TRACER_API JsonRecorder
: public Recorder
{
20 explicit JsonRecorder(std::unique_ptr
<std::ostream
>&& out
);
22 void RecordSpan(SpanData
&& span_data
) noexcept override
;
24 void Close() noexcept override
;
28 std::unique_ptr
<std::ostream
> out_
;
29 std::vector
<SpanData
> spans_
;
31 } // namespace mocktracer
32 END_OPENTRACING_ABI_NAMESPACE
33 } // namespace opentracing
35 #endif // OPENTRACING_MOCKTRACER_JSON_RECORDER_H