Class: Datadog::Core::Remote::Client::Capabilities

Inherits:
Object
  • Object
show all
Defined in:
lib/datadog/core/remote/client/capabilities.rb

Overview

Capabilities

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(settings, telemetry) ⇒ Capabilities

Returns a new instance of Capabilities.



19
20
21
22
23
24
25
26
27
28
29
# File 'lib/datadog/core/remote/client/capabilities.rb', line 19

def initialize(settings, telemetry)
  @capabilities = []
  @products = []
  @products_mutex = Mutex.new
  @receivers = []
  @telemetry = telemetry

  register(settings)

  @base64_capabilities = capabilities_to_base64
end

Instance Attribute Details

#base64_capabilitiesObject (readonly)

Returns the value of attribute base64_capabilities.



17
18
19
# File 'lib/datadog/core/remote/client/capabilities.rb', line 17

def base64_capabilities
  @base64_capabilities
end

#capabilitiesObject (readonly)

Returns the value of attribute capabilities.



17
18
19
# File 'lib/datadog/core/remote/client/capabilities.rb', line 17

def capabilities
  @capabilities
end

#receiversObject (readonly)

Returns the value of attribute receivers.



17
18
19
# File 'lib/datadog/core/remote/client/capabilities.rb', line 17

def receivers
  @receivers
end

Instance Method Details

#add_products(*products) ⇒ Object



35
36
37
38
39
40
# File 'lib/datadog/core/remote/client/capabilities.rb', line 35

def add_products(*products)
  @products_mutex.synchronize do
    products.each { |product| @products << product unless @products.include?(product) }
  end
  nil
end

#productsObject



31
32
33
# File 'lib/datadog/core/remote/client/capabilities.rb', line 31

def products
  @products_mutex.synchronize { @products.dup }
end

#remove_products(*products) ⇒ Object



42
43
44
45
# File 'lib/datadog/core/remote/client/capabilities.rb', line 42

def remove_products(*products)
  @products_mutex.synchronize { products.each { |product| @products.delete(product) } }
  nil
end