]> git.proxmox.com Git - ceph.git/blob - ceph/src/jaegertracing/opentelemetry-cpp/sdk/include/opentelemetry/sdk/metrics/view/meter_selector.h
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / jaegertracing / opentelemetry-cpp / sdk / include / opentelemetry / sdk / metrics / view / meter_selector.h
1 // Copyright The OpenTelemetry Authors
2 // SPDX-License-Identifier: Apache-2.0
3
4 #pragma once
5 #include "opentelemetry/nostd/string_view.h"
6 #include "opentelemetry/sdk/metrics/view/predicate_factory.h"
7 #ifndef ENABLE_METRICS_PREVIEW
8 OPENTELEMETRY_BEGIN_NAMESPACE
9 namespace sdk
10 {
11 namespace metrics
12 {
13 class MeterSelector
14 {
15 public:
16 MeterSelector(opentelemetry::nostd::string_view name,
17 opentelemetry::nostd::string_view version,
18 opentelemetry::nostd::string_view schema)
19 : name_filter_{std::move(PredicateFactory::GetPredicate(name, PredicateType::kExact))},
20 version_filter_{std::move(PredicateFactory::GetPredicate(version, PredicateType::kExact))},
21 schema_filter_{std::move(PredicateFactory::GetPredicate(schema, PredicateType::kExact))}
22 {}
23
24 // Returns name filter predicate. This shouldn't be deleted
25 const opentelemetry::sdk::metrics::Predicate *const GetNameFilter() { return name_filter_.get(); }
26
27 // Returns version filter predicate. This shouldn't be deleted
28 const opentelemetry::sdk::metrics::Predicate *const GetVersionFilter()
29 {
30 return version_filter_.get();
31 }
32
33 // Returns schema filter predicate. This shouldn't be deleted
34 const opentelemetry::sdk::metrics::Predicate *const GetSchemaFilter()
35 {
36 return schema_filter_.get();
37 }
38
39 private:
40 std::unique_ptr<opentelemetry::sdk::metrics::Predicate> name_filter_;
41 std::unique_ptr<opentelemetry::sdk::metrics::Predicate> version_filter_;
42 std::unique_ptr<opentelemetry::sdk::metrics::Predicate> schema_filter_;
43 };
44 } // namespace metrics
45 } // namespace sdk
46 OPENTELEMETRY_END_NAMESPACE
47 #endif