azure-core
1.8.0
inc
azure
core
tracing
tracing.hpp
Go to the documentation of this file.
1
// Copyright (c) Microsoft Corporation. All rights reserved.
2
// SPDX-License-Identifier: MIT
3
9
#pragma once
10
11
#include <
azure/core/context.hpp
>
12
#include <memory>
13
#include <string>
14
15
namespace
Azure
{
namespace
Core {
namespace
Tracing {
16
class
TracerProvider;
17
namespace
_internal {
18
class
Tracer;
22
class
TracerProviderImpl {
23
public
:
32
virtual
std::shared_ptr<Azure::Core::Tracing::_internal::Tracer> CreateTracer(
33
std::string
const
& name,
34
std::string
const
& version = {})
const
= 0;
35
36
virtual
~TracerProviderImpl() =
default
;
37
};
38
39
struct
TracerProviderImplGetter
40
{
47
static
std::shared_ptr<TracerProviderImpl> TracerImplFromTracer(
48
std::shared_ptr<TracerProvider>
const
& provider);
49
};
50
51
}
// namespace _internal
52
56
class
TracerProvider
:
private
_internal::TracerProviderImpl {
57
// Marked TracerImplFromTracer as friend so it can access private members in the class.
58
friend
std::shared_ptr<TracerProviderImpl>
59
_internal::TracerProviderImplGetter::TracerImplFromTracer(
60
std::shared_ptr<TracerProvider>
const
&);
61
};
62
63
}}}
// namespace Azure::Core::Tracing
Azure::Core::Tracing::TracerProvider
Trace Provider - factory for creating Tracer objects.
Definition:
tracing.hpp:56
context.hpp
Context for canceling long running operations.
Azure
Azure SDK abstractions.
Definition:
azure_assert.hpp:55
Generated by
1.9.1