Class: LaunchDarkly::Impl::DataStore::UpdateSink

Inherits:
Object
  • Object
show all
Includes:
LaunchDarkly::Interfaces::DataStore::UpdateSink
Defined in:
lib/ldclient-rb/impl/data_store.rb

Overview

Since:

  • 5.5.0

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(broadcaster) ⇒ UpdateSink

Returns a new instance of UpdateSink.

Since:

  • 5.5.0



43
44
45
46
47
48
# File 'lib/ldclient-rb/impl/data_store.rb', line 43

def initialize(broadcaster)
  @broadcaster = broadcaster
  @last_status = Concurrent::AtomicReference.new(
    LaunchDarkly::Interfaces::DataStore::Status.new(true, false)
  )
end

Instance Attribute Details

#broadcasterLaunchDarkly::Impl::Broadcaster (readonly)

Returns:

  • (LaunchDarkly::Impl::Broadcaster)

Since:

  • 5.5.0



38
39
40
# File 'lib/ldclient-rb/impl/data_store.rb', line 38

def broadcaster
  @broadcaster
end

#last_statusConcurrent::AtomicReference (readonly)

Returns:

  • (Concurrent::AtomicReference)

Since:

  • 5.5.0



41
42
43
# File 'lib/ldclient-rb/impl/data_store.rb', line 41

def last_status
  @last_status
end

Instance Method Details

#update_status(status) ⇒ Object

Since:

  • 5.5.0



50
51
52
53
54
55
# File 'lib/ldclient-rb/impl/data_store.rb', line 50

def update_status(status)
  return if status.nil?

  old_status = @last_status.get_and_set(status)
  @broadcaster.broadcast(status) unless old_status == status
end