]> git.proxmox.com Git - ceph.git/blame - ceph/src/jaegertracing/opentracing-cpp/include/opentracing/noop.h
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / jaegertracing / opentracing-cpp / include / opentracing / noop.h
CommitLineData
f67539c2
TL
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
9namespace opentracing {
10BEGIN_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.
24OPENTRACING_API std::shared_ptr<Tracer> MakeNoopTracer() noexcept;
25END_OPENTRACING_ABI_NAMESPACE
26} // namespace opentracing
27
28#endif // OPENTRACING_NOOP_H