Class: SplitIoClient::Engine::SyncManager

Inherits:
Object
  • Object
show all
Defined in:
lib/splitclient-rb/engine/sync_manager.rb

Constant Summary collapse

SYNC_MODE_STREAMING =
0
SYNC_MODE_POLLING =
1

Instance Method Summary collapse

Constructor Details

#initialize(repositories, api_key, config, synchronizer, telemetry_runtime_producer, telemetry_synchronizer, status_manager) ⇒ SyncManager

Returns a new instance of SyncManager.



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/splitclient-rb/engine/sync_manager.rb', line 9

def initialize(
  repositories,
  api_key,
  config,
  synchronizer,
  telemetry_runtime_producer,
  telemetry_synchronizer,
  status_manager
)
  @synchronizer = synchronizer
  notification_manager_keeper = SSE::NotificationManagerKeeper.new(config, telemetry_runtime_producer) do |manager|
    manager.on_action { |action| process_action(action) }
  end
  @sse_handler = SSE::SSEHandler.new(
    { config: config, api_key: api_key },
    @synchronizer,
    repositories,
    notification_manager_keeper,
    telemetry_runtime_producer
  ) do |handler|
    handler.on_action { |action| process_action(action) }
  end

  @push_manager = PushManager.new(config, @sse_handler, api_key, telemetry_runtime_producer)
  @sse_connected = Concurrent::AtomicBoolean.new(false)
  @config = config
  @telemetry_runtime_producer = telemetry_runtime_producer
  @telemetry_synchronizer = telemetry_synchronizer
  @status_manager = status_manager
end

Instance Method Details

#startObject



40
41
42
43
# File 'lib/splitclient-rb/engine/sync_manager.rb', line 40

def start
  start_thread
  PhusionPassenger.on_event(:starting_worker_process) { |forked| start_thread if forked } if defined?(PhusionPassenger)
end