]> git.proxmox.com Git - ceph.git/blame - 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
CommitLineData
1e59de90
TL
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
8OPENTELEMETRY_BEGIN_NAMESPACE
9namespace sdk
10{
11namespace metrics
12{
13class MeterSelector
14{
15public:
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
39private:
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
46OPENTELEMETRY_END_NAMESPACE
47#endif