NVIDIA DeepStream SDK API Reference

9.2 Release
includes/opentelemetry/sdk/metrics/view/predicate_factory.h
Go to the documentation of this file.
1 // Copyright The OpenTelemetry Authors
2 // SPDX-License-Identifier: Apache-2.0
3 
4 #pragma once
5 
6 #include <memory>
7 
8 #include "opentelemetry/nostd/string_view.h"
9 #include "opentelemetry/sdk/metrics/view/predicate.h"
10 #include "opentelemetry/version.h"
11 
13 namespace sdk
14 {
15 namespace metrics
16 {
17 
18 enum class PredicateType : uint8_t
19 {
20  kPattern,
21  kExact
22 };
23 
25 {
26 public:
27  static std::unique_ptr<Predicate> GetPredicate(opentelemetry::nostd::string_view pattern,
28  PredicateType type)
29  {
30  if ((type == PredicateType::kPattern && pattern == "*") ||
31  (type == PredicateType::kExact && pattern == ""))
32  {
33  return std::unique_ptr<Predicate>(new MatchEverythingPattern());
34  }
35  if (type == PredicateType::kPattern)
36  {
37  return std::unique_ptr<Predicate>(new PatternPredicate(pattern));
38  }
39  if (type == PredicateType::kExact)
40  {
41  return std::unique_ptr<Predicate>(new ExactPredicate(pattern));
42  }
43  return std::unique_ptr<Predicate>(new MatchNothingPattern());
44  }
45 };
46 } // namespace metrics
47 } // namespace sdk
sdk::metrics::PatternPredicate
Definition: includes/opentelemetry/sdk/metrics/view/predicate.h:27
OPENTELEMETRY_BEGIN_NAMESPACE
#define OPENTELEMETRY_BEGIN_NAMESPACE
Definition: includes/opentelemetry/version.h:21
sdk::metrics::MatchEverythingPattern
Definition: includes/opentelemetry/sdk/metrics/view/predicate.h:68
sdk::metrics::PredicateFactory
Definition: includes/opentelemetry/sdk/metrics/view/predicate_factory.h:24
OPENTELEMETRY_END_NAMESPACE
#define OPENTELEMETRY_END_NAMESPACE
Definition: includes/opentelemetry/version.h:24
sdk::metrics::ExactPredicate
Definition: includes/opentelemetry/sdk/metrics/view/predicate.h:51
sdk::metrics::PredicateType
PredicateType
Definition: includes/opentelemetry/sdk/metrics/view/predicate_factory.h:18
sdk::metrics::MatchNothingPattern
Definition: includes/opentelemetry/sdk/metrics/view/predicate.h:73
sdk::metrics::PredicateFactory::GetPredicate
static std::unique_ptr< Predicate > GetPredicate(opentelemetry::nostd::string_view pattern, PredicateType type)
Definition: includes/opentelemetry/sdk/metrics/view/predicate_factory.h:27
sdk
Definition: includes/opentelemetry/sdk/common/atomic_shared_ptr.h:13
metrics
Definition: includes/opentelemetry/metrics/async_instruments.h:10
sdk::metrics::PredicateType::kExact
@ kExact
sdk::metrics::PredicateType::kPattern
@ kPattern
nostd::string_view
std::string_view string_view
Definition: includes/opentelemetry/std/string_view.h:18