1 #ifndef OPENTRACING_MOCKTRACER_IN_MEMORY_RECORDER_H
2 #define OPENTRACING_MOCKTRACER_IN_MEMORY_RECORDER_H
4 #include <opentracing/mocktracer/recorder.h>
5 #include <opentracing/mocktracer/symbols.h>
9 namespace opentracing
{
10 BEGIN_OPENTRACING_ABI_NAMESPACE
11 namespace mocktracer
{
12 // InMemoryRecorder stores finished spans and provides accessors to them.
13 class OPENTRACING_MOCK_TRACER_API InMemoryRecorder
: public Recorder
{
15 void RecordSpan(SpanData
&& span_data
) noexcept override
;
17 // Returns a vector of all finished spans.
18 std::vector
<SpanData
> spans() const;
20 // Returns the number of finished spans.
23 // Returns the last finished span. Throws if no spans have been finished.
27 mutable std::mutex mutex_
;
28 std::vector
<SpanData
> spans_
;
30 } // namespace mocktracer
31 END_OPENTRACING_ABI_NAMESPACE
32 } // namespace opentracing
34 #endif // OPENTRACING_MOCKTRACER_IN_MEMORY_RECORDER_H