Class: Datadog::Core::Remote::Transport::Negotiation::Transport

Inherits:
Object
  • Object
show all
Defined in:
lib/datadog/core/remote/transport/negotiation.rb

Overview

Negotiation transport

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(apis, default_api, logger: Datadog.logger) ⇒ Transport

Returns a new instance of Transport.



38
39
40
41
42
43
# File 'lib/datadog/core/remote/transport/negotiation.rb', line 38

def initialize(apis, default_api, logger: Datadog.logger)
  @apis = apis
  @logger = logger

  @client = Remote::Transport::HTTP::Negotiation::Client.new(current_api, logger: logger)
end

Instance Attribute Details

#apisObject (readonly)

Returns the value of attribute apis.



36
37
38
# File 'lib/datadog/core/remote/transport/negotiation.rb', line 36

def apis
  @apis
end

#clientObject (readonly)

Returns the value of attribute client.



36
37
38
# File 'lib/datadog/core/remote/transport/negotiation.rb', line 36

def client
  @client
end

#current_api_idObject (readonly)

Returns the value of attribute current_api_id.



36
37
38
# File 'lib/datadog/core/remote/transport/negotiation.rb', line 36

def current_api_id
  @current_api_id
end

#default_apiObject (readonly)

Returns the value of attribute default_api.



36
37
38
# File 'lib/datadog/core/remote/transport/negotiation.rb', line 36

def default_api
  @default_api
end

#loggerObject (readonly)

Returns the value of attribute logger.



36
37
38
# File 'lib/datadog/core/remote/transport/negotiation.rb', line 36

def logger
  @logger
end

Instance Method Details

#current_apiObject



51
52
53
# File 'lib/datadog/core/remote/transport/negotiation.rb', line 51

def current_api
  @apis[HTTP::API::ROOT]
end

#send_infoObject



45
46
47
48
49
# File 'lib/datadog/core/remote/transport/negotiation.rb', line 45

def send_info
  request = Request.new

  @client.send_info_payload(request)
end