]> git.proxmox.com Git - ceph.git/blob - ceph/src/jaegertracing/opentracing-cpp/include/opentracing/noop.h
buildsys: switch source download to quincy
[ceph.git] / ceph / src / jaegertracing / opentracing-cpp / include / opentracing / noop.h
1 #ifndef OPENTRACING_NOOP_H
2 #define OPENTRACING_NOOP_H
3
4 #include <opentracing/symbols.h>
5 #include <opentracing/tracer.h>
6 #include <opentracing/version.h>
7 #include <memory>
8
9 namespace opentracing {
10 BEGIN_OPENTRACING_ABI_NAMESPACE
11 // A NoopTracer is a trivial, minimum overhead implementation of Tracer
12 // for which all operations are no-ops.
13 //
14 // The primary use of this implementation is in libraries, such as RPC
15 // frameworks, that make tracing an optional feature controlled by the
16 // end user. A no-op implementation allows said libraries to use it
17 // as the default Tracer and to write instrumentation that does
18 // not need to keep checking if the tracer instance is nil.
19 //
20 // For the same reason, the NoopTracer is the default "global" tracer
21 // (see Tracer::Global and Tracer::InitGlobal functions).
22 //
23 // WARNING: NoopTracer does not support baggage propagation.
24 OPENTRACING_API std::shared_ptr<Tracer> MakeNoopTracer() noexcept;
25 END_OPENTRACING_ABI_NAMESPACE
26 } // namespace opentracing
27
28 #endif // OPENTRACING_NOOP_H