Class: Datadog::Core::Remote::Client::Capabilities
- Inherits:
-
Object
- Object
- Datadog::Core::Remote::Client::Capabilities
- Defined in:
- lib/datadog/core/remote/client/capabilities.rb
Overview
Capabilities
Instance Attribute Summary collapse
-
#base64_capabilities ⇒ Object
readonly
Returns the value of attribute base64_capabilities.
-
#capabilities ⇒ Object
readonly
Returns the value of attribute capabilities.
-
#receivers ⇒ Object
readonly
Returns the value of attribute receivers.
Instance Method Summary collapse
- #add_products(*products) ⇒ Object
-
#initialize(settings, telemetry) ⇒ Capabilities
constructor
A new instance of Capabilities.
- #products ⇒ Object
- #remove_products(*products) ⇒ Object
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_capabilities ⇒ Object (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 |
#capabilities ⇒ Object (readonly)
Returns the value of attribute capabilities.
17 18 19 |
# File 'lib/datadog/core/remote/client/capabilities.rb', line 17 def capabilities @capabilities end |
#receivers ⇒ Object (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 |
#products ⇒ Object
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 |