]> git.proxmox.com Git - ceph.git/blob - ceph/src/jaegertracing/opentracing-cpp/mocktracer/include/opentracing/mocktracer/json_recorder.h
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / jaegertracing / opentracing-cpp / mocktracer / include / opentracing / mocktracer / json_recorder.h
1 #ifndef OPENTRACING_MOCKTRACER_JSON_RECORDER_H
2 #define OPENTRACING_MOCKTRACER_JSON_RECORDER_H
3
4 #include <opentracing/mocktracer/recorder.h>
5 #include <opentracing/mocktracer/symbols.h>
6 #include <iosfwd>
7 #include <memory>
8 #include <mutex>
9 #include <vector>
10
11 namespace opentracing {
12 BEGIN_OPENTRACING_ABI_NAMESPACE
13 namespace mocktracer {
14 // JsonRecorder serializes finished spans to a provided std::ostream in a JSON
15 // format.
16 //
17 // See also FromJson.
18 class OPENTRACING_MOCK_TRACER_API JsonRecorder : public Recorder {
19 public:
20 explicit JsonRecorder(std::unique_ptr<std::ostream>&& out);
21
22 void RecordSpan(SpanData&& span_data) noexcept override;
23
24 void Close() noexcept override;
25
26 private:
27 std::mutex mutex_;
28 std::unique_ptr<std::ostream> out_;
29 std::vector<SpanData> spans_;
30 };
31 } // namespace mocktracer
32 END_OPENTRACING_ABI_NAMESPACE
33 } // namespace opentracing
34
35 #endif // OPENTRACING_MOCKTRACER_JSON_RECORDER_H