diff --git a/api/include/opentelemetry/global/factory.h b/api/include/opentelemetry/global/factory.h deleted file mode 100644 index 8631759c2b..0000000000 --- a/api/include/opentelemetry/global/factory.h +++ /dev/null @@ -1,21 +0,0 @@ -#pragma once - -#include "opentelemetry/trace/tracer_factory.h" - -using opentelemetry::trace::TracerFactory; - -namespace opentelemetry -{ -namespace global -{ -class Factory -{ -public: - static TracerFactory *GetTracerFactory(); - static void SetTracerFactory(TracerFactory *); - -private: - static TracerFactory *tracer_factory_; -}; -} // namespace global -} // namespace opentelemetry diff --git a/api/include/opentelemetry/global/provider.h b/api/include/opentelemetry/global/provider.h new file mode 100644 index 0000000000..991ab10e48 --- /dev/null +++ b/api/include/opentelemetry/global/provider.h @@ -0,0 +1,21 @@ +#pragma once + +#include "opentelemetry/trace/tracer_provider.h" + +using opentelemetry::trace::TracerProvider; + +namespace opentelemetry +{ +namespace global +{ +class Provider +{ +public: + static TracerProvider *GetTracerProvider(); + static void SetTracerProvider(TracerProvider *); + +private: + static TracerProvider *tracer_provider_; +}; +} // namespace global +} // namespace opentelemetry diff --git a/api/include/opentelemetry/trace/tracer_factory.h b/api/include/opentelemetry/trace/tracer_provider.h similarity index 73% rename from api/include/opentelemetry/trace/tracer_factory.h rename to api/include/opentelemetry/trace/tracer_provider.h index 39d5818754..65d297c75a 100644 --- a/api/include/opentelemetry/trace/tracer_factory.h +++ b/api/include/opentelemetry/trace/tracer_provider.h @@ -10,9 +10,10 @@ namespace opentelemetry { namespace trace { -class TracerFactory +class TracerProvider { public: + virtual ~TracerProvider() = default; virtual Tracer *const GetTracer(string_view library_name, string_view library_version) = 0; }; } // namespace trace diff --git a/api/src/opentelemetry/global/factory.cc b/api/src/opentelemetry/global/factory.cc deleted file mode 100644 index 6a93969897..0000000000 --- a/api/src/opentelemetry/global/factory.cc +++ /dev/null @@ -1,40 +0,0 @@ -#include "opentelemetry/global/factory.h" - -using opentelemetry::trace::Tracer; -using opentelemetry::trace::TracerFactory; - -namespace opentelemetry -{ -namespace global -{ -class DefaultTracerFactory : public TracerFactory -{ - Tracer *const GetTracer(string_view library_name, string_view library_version = "") override - { - // TODO: return a no-op tracer - return nullptr; - } -}; - -TracerFactory *Factory::tracer_factory_ = nullptr; - -TracerFactory *Factory::GetTracerFactory() -{ - if (!Factory::tracer_factory_) - { - Factory::tracer_factory_ = new DefaultTracerFactory(); - } - return Factory::tracer_factory_; -} - -void Factory::SetTracerFactory(TracerFactory *tf) -{ - if (Factory::tracer_factory_) - { - delete Factory::tracer_factory_; - } - - Factory::tracer_factory_ = tf; -} -} // namespace global -} // namespace opentelemetry diff --git a/api/src/opentelemetry/global/provider.cc b/api/src/opentelemetry/global/provider.cc new file mode 100644 index 0000000000..7f39718e36 --- /dev/null +++ b/api/src/opentelemetry/global/provider.cc @@ -0,0 +1,40 @@ +#include "opentelemetry/global/provider.h" + +using opentelemetry::trace::Tracer; +using opentelemetry::trace::TracerProvider; + +namespace opentelemetry +{ +namespace global +{ +class DefaultTracerProvider : public TracerProvider +{ + Tracer *const GetTracer(string_view library_name, string_view library_version = "") override + { + // TODO: return a no-op trace + return nullptr; + } +}; + +TracerProvider *Provider::tracer_provider_ = nullptr; + +TracerProvider *Provider::GetTracerProvider() +{ + if (!Provider::tracer_provider_) + { + Provider::tracer_provider_ = new DefaultTracerProvider(); + } + return Provider::tracer_provider_; +} + +void Provider::SetTracerProvider(TracerProvider *tf) +{ + if (Provider::tracer_provider_) + { + delete Provider::tracer_provider_; + } + + Provider::tracer_provider_ = tf; +} +} // namespace global +} // namespace opentelemetry diff --git a/api/test/global/global_test.cc b/api/test/global/global_test.cc index d428ed5eb4..129777a4fd 100644 --- a/api/test/global/global_test.cc +++ b/api/test/global/global_test.cc @@ -1,11 +1,11 @@ -#include "opentelemetry/global/factory.h" +#include "opentelemetry/global/provider.h" #include -using opentelemetry::global::Factory; +using opentelemetry::global::Provider; using opentelemetry::trace::Tracer; -class TestFactory : public opentelemetry::trace::TracerFactory +class TestProvider : public opentelemetry::trace::TracerProvider { Tracer *const GetTracer(string_view library_name, string_view library_version) override { @@ -13,15 +13,15 @@ class TestFactory : public opentelemetry::trace::TracerFactory } }; -TEST(Factory, GetTracerFactoryDefault) +TEST(Provider, GetTracerProviderDefault) { - auto tf = Factory::GetTracerFactory(); + auto tf = Provider::GetTracerProvider(); ASSERT_NE(tf, nullptr); } -TEST(Factory, SetTracerFactory) +TEST(Provider, SetTracerProvider) { - auto tf = new TestFactory(); - Factory::SetTracerFactory(tf); - ASSERT_EQ(Factory::GetTracerFactory(), tf); + auto tf = new TestProvider(); + Provider::SetTracerProvider(tf); + ASSERT_EQ(Provider::GetTracerProvider(), tf); } diff --git a/sdk/include/opentelemetry/sdk/trace/tracer_factory.h b/sdk/include/opentelemetry/sdk/trace/tracer_provider.h similarity index 78% rename from sdk/include/opentelemetry/sdk/trace/tracer_factory.h rename to sdk/include/opentelemetry/sdk/trace/tracer_provider.h index a83b6b426d..99bcfeff8d 100644 --- a/sdk/include/opentelemetry/sdk/trace/tracer_factory.h +++ b/sdk/include/opentelemetry/sdk/trace/tracer_provider.h @@ -3,7 +3,7 @@ #include #include -#include "opentelemetry/trace/tracer_factory.h" +#include "opentelemetry/trace/tracer_provider.h" using opentelemetry::nostd::string_view; using opentelemetry::trace::Tracer; @@ -14,7 +14,7 @@ namespace sdk { namespace trace { -class TracerFactory : public opentelemetry::trace::TracerFactory +class TracerProvider : public opentelemetry::trace::TracerProvider { public: Tracer *const GetTracer(string_view library_name, string_view library_version = "") override; diff --git a/sdk/src/opentelemetry/trace/tracer_factory.cc b/sdk/src/opentelemetry/trace/tracer_provider.cc similarity index 61% rename from sdk/src/opentelemetry/trace/tracer_factory.cc rename to sdk/src/opentelemetry/trace/tracer_provider.cc index 64817a91b7..5522f22290 100644 --- a/sdk/src/opentelemetry/trace/tracer_factory.cc +++ b/sdk/src/opentelemetry/trace/tracer_provider.cc @@ -1,4 +1,4 @@ -#include "opentelemetry/sdk/trace/tracer_factory.h" +#include "opentelemetry/sdk/trace/tracer_provider.h" namespace opentelemetry { @@ -6,7 +6,7 @@ namespace sdk { namespace trace { -Tracer *const TracerFactory::GetTracer(string_view library_name, string_view library_version) +Tracer *const TracerProvider::GetTracer(string_view library_name, string_view library_version) { tracers_.emplace_back(new Tracer(library_name, library_version)); return tracers_.back().get(); diff --git a/sdk/test/trace/BUILD b/sdk/test/trace/BUILD index 26ea89cb4c..25fcf2447c 100644 --- a/sdk/test/trace/BUILD +++ b/sdk/test/trace/BUILD @@ -1,7 +1,7 @@ cc_test( - name = "tracer_factory", + name = "tracer_provider", srcs = [ - "tracer_factory_test.cc", + "tracer_provider_test.cc", ], deps = [ "//sdk", diff --git a/sdk/test/trace/tracer_factory_test.cc b/sdk/test/trace/tracer_provider_test.cc similarity index 66% rename from sdk/test/trace/tracer_factory_test.cc rename to sdk/test/trace/tracer_provider_test.cc index b9cd7d33cf..89dd7f1595 100644 --- a/sdk/test/trace/tracer_factory_test.cc +++ b/sdk/test/trace/tracer_provider_test.cc @@ -1,12 +1,12 @@ -#include "opentelemetry/sdk/trace/tracer_factory.h" +#include "opentelemetry/sdk/trace/tracer_provider.h" #include -using opentelemetry::sdk::trace::TracerFactory; +using opentelemetry::sdk::trace::TracerProvider; -TEST(TracerFactory, GetTracer) +TEST(TracerProvider, GetTracer) { - auto tf = new TracerFactory(); + auto tf = new TracerProvider(); auto t1 = tf->GetTracer("test"); auto t2 = tf->GetTracer("test"); auto t3 = tf->GetTracer("different");