diff --git a/sdk/include/opentelemetry/sdk/metrics/view/predicate_factory.h b/sdk/include/opentelemetry/sdk/metrics/view/predicate_factory.h index 501b69ba93..fd15b04470 100644 --- a/sdk/include/opentelemetry/sdk/metrics/view/predicate_factory.h +++ b/sdk/include/opentelemetry/sdk/metrics/view/predicate_factory.h @@ -27,27 +27,7 @@ class PredicateFactory { public: static std::unique_ptr GetPredicate(opentelemetry::nostd::string_view pattern, - PredicateType type) - { - if (((type == PredicateType::kPattern || type == PredicateType::kWildcard) && pattern == "*") || - (type == PredicateType::kExact && pattern == "")) - { - return std::unique_ptr(new MatchEverythingPattern()); - } - if (type == PredicateType::kPattern) - { - return std::unique_ptr(new PatternPredicate(pattern)); - } - if (type == PredicateType::kExact) - { - return std::unique_ptr(new ExactPredicate(pattern)); - } - if (type == PredicateType::kWildcard) - { - return std::unique_ptr(new WildcardPredicate(pattern)); - } - return std::unique_ptr(new MatchNothingPattern()); - } + PredicateType type); }; } // namespace metrics } // namespace sdk diff --git a/sdk/src/metrics/CMakeLists.txt b/sdk/src/metrics/CMakeLists.txt index 475ab937a8..9eaef6919b 100644 --- a/sdk/src/metrics/CMakeLists.txt +++ b/sdk/src/metrics/CMakeLists.txt @@ -37,6 +37,7 @@ add_library( view/view_factory.cc view/view_registry.cc view/view_registry_factory.cc + view/predicate_factory.cc sync_instruments.cc) set_target_properties(opentelemetry_metrics PROPERTIES EXPORT_NAME metrics) diff --git a/sdk/src/metrics/view/predicate_factory.cc b/sdk/src/metrics/view/predicate_factory.cc new file mode 100644 index 0000000000..939ada1c69 --- /dev/null +++ b/sdk/src/metrics/view/predicate_factory.cc @@ -0,0 +1,40 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +#include + +#include "opentelemetry/nostd/string_view.h" +#include "opentelemetry/sdk/metrics/view/predicate.h" +#include "opentelemetry/sdk/metrics/view/predicate_factory.h" +#include "opentelemetry/version.h" + +OPENTELEMETRY_BEGIN_NAMESPACE +namespace sdk +{ +namespace metrics +{ +std::unique_ptr PredicateFactory::GetPredicate(opentelemetry::nostd::string_view pattern, + PredicateType type) +{ + if (((type == PredicateType::kPattern || type == PredicateType::kWildcard) && pattern == "*") || + (type == PredicateType::kExact && pattern == "")) + { + return std::unique_ptr(new MatchEverythingPattern()); + } + if (type == PredicateType::kPattern) + { + return std::unique_ptr(new PatternPredicate(pattern)); + } + if (type == PredicateType::kExact) + { + return std::unique_ptr(new ExactPredicate(pattern)); + } + if (type == PredicateType::kWildcard) + { + return std::unique_ptr(new WildcardPredicate(pattern)); + } + return std::unique_ptr(new MatchNothingPattern()); +} +} // namespace metrics +} // namespace sdk +OPENTELEMETRY_END_NAMESPACE