// Copyright The OpenTelemetry Authors // SPDX-License-Identifier: Apache-2.0 #include #include #include #include "opentelemetry/sdk/instrumentationscope/scope_configurator.h" #include "opentelemetry/sdk/resource/resource.h" #include "opentelemetry/sdk/trace/id_generator.h" #include "opentelemetry/sdk/trace/processor.h" #include "opentelemetry/sdk/trace/random_id_generator_factory.h" #include "opentelemetry/sdk/trace/sampler.h" #include "opentelemetry/sdk/trace/samplers/always_on_factory.h" #include "opentelemetry/sdk/trace/tracer_config.h" #include "opentelemetry/sdk/trace/tracer_context.h" #include "opentelemetry/sdk/trace/tracer_context_factory.h" #include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk { namespace trace { std::unique_ptr TracerContextFactory::Create( std::vector> &&processors) { auto resource = opentelemetry::sdk::resource::Resource::Create({}); return Create(std::move(processors), resource); } std::unique_ptr TracerContextFactory::Create( std::vector> &&processors, const opentelemetry::sdk::resource::Resource &resource) { auto sampler = AlwaysOnSamplerFactory::Create(); return Create(std::move(processors), resource, std::move(sampler)); } std::unique_ptr TracerContextFactory::Create( std::vector> &&processors, const opentelemetry::sdk::resource::Resource &resource, std::unique_ptr sampler) { auto id_generator = RandomIdGeneratorFactory::Create(); return Create(std::move(processors), resource, std::move(sampler), std::move(id_generator)); } std::unique_ptr TracerContextFactory::Create( std::vector> &&processors, const opentelemetry::sdk::resource::Resource &resource, std::unique_ptr sampler, std::unique_ptr id_generator) { auto tracer_configurator = std::make_unique>( instrumentationscope::ScopeConfigurator::Builder(TracerConfig::Default()) .Build()); return Create(std::move(processors), resource, std::move(sampler), std::move(id_generator), std::move(tracer_configurator)); } std::unique_ptr TracerContextFactory::Create( std::vector> &&processors, const opentelemetry::sdk::resource::Resource &resource, std::unique_ptr sampler, std::unique_ptr id_generator, std::unique_ptr> tracer_configurator) { std::unique_ptr context( new TracerContext(std::move(processors), resource, std::move(sampler), std::move(id_generator), std::move(tracer_configurator))); return context; } } // namespace trace } // namespace sdk OPENTELEMETRY_END_NAMESPACE