Class: SplitIoClient::SSE::NotificationManagerKeeper

Inherits:
Object
  • Object
show all
Defined in:
lib/splitclient-rb/sse/notification_manager_keeper.rb

Constant Summary collapse

DISABLED =
0
ENABLED =
1
PAUSED =
2

Instance Method Summary collapse

Constructor Details

#initialize(config, telemetry_runtime_producer, status_queue) ⇒ NotificationManagerKeeper

Returns a new instance of NotificationManagerKeeper.



12
13
14
15
16
17
18
19
# File 'lib/splitclient-rb/sse/notification_manager_keeper.rb', line 12

def initialize(config, telemetry_runtime_producer, status_queue)
  @config = config
  @telemetry_runtime_producer = telemetry_runtime_producer
  @status_queue = status_queue
  @publisher_available = Concurrent::AtomicBoolean.new(true)
  @publishers_pri = Concurrent::AtomicFixnum.new
  @publishers_sec = Concurrent::AtomicFixnum.new
end

Instance Method Details

#handle_incoming_occupancy_event(event) ⇒ Object



21
22
23
24
25
26
27
28
29
# File 'lib/splitclient-rb/sse/notification_manager_keeper.rb', line 21

def handle_incoming_occupancy_event(event)
  if event.data['type'] == 'CONTROL'
    process_event_control(event.data['controlType'])
  else
    process_event_occupancy(event.channel, event.data['metrics']['publishers'])
  end
rescue StandardError => e
  @config.logger.error(e)
end