class Datadog::Core::Configuration::AgentSettingsResolver

def transport_options

`TransportOptionsResolver` to call the proc and extract its information.
in the specific case of the http and unix socket adapters we can, and we use this method together with the
communicate with the agent. In the general case, we can't extract the configuration from this proc, but
The settings.tracing.transport_options allows users to have full control over the settings used to
def transport_options
  return @transport_options if defined?(@transport_options)
  transport_options_proc = transport_options_settings
  @transport_options = TransportOptions.new
  if transport_options_proc.is_a?(Proc)
    begin
      transport_options_proc.call(TransportOptionsResolver.new(@transport_options))
    rescue NoMethodError => e
      if logger
        logger.debug do
          'Could not extract configuration from transport_options proc. ' \
          "Cause: #{e.class.name} #{e.message} Source: #{Array(e.backtrace).first}"
        end
      end
      # Reset the object; we shouldn't return the same one we passed into the proc as it may have
      # some partial configuration and we want all-or-nothing.
      @transport_options = TransportOptions.new
    end
  end
  @transport_options.freeze
end