]>
Commit | Line | Data |
---|---|---|
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 | |
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 |