8
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
|
# File 'lib/splitclient-rb/engine/sync_manager.rb', line 8
def initialize(
repositories,
api_key,
config,
sdk_blocker,
metrics
)
split_fetcher = SplitFetcher.new(repositories[:splits], api_key, metrics, config, sdk_blocker)
segment_fetcher = SegmentFetcher.new(repositories[:segments], api_key, metrics, config, sdk_blocker)
sync_params = { split_fetcher: split_fetcher, segment_fetcher: segment_fetcher }
@synchronizer = Synchronizer.new(repositories, api_key, config, sdk_blocker, sync_params)
notification_manager_keeper = SplitIoClient::SSE::NotificationManagerKeeper.new(config) do |manager|
manager.on_occupancy { |publisher_available| process_occupancy(publisher_available) }
manager.on_push_shutdown { process_push_shutdown }
end
@sse_handler = SplitIoClient::SSE::SSEHandler.new(
config,
@synchronizer,
repositories[:splits],
repositories[:segments],
notification_manager_keeper
) do |handler|
handler.on_connected { process_connected }
handler.on_disconnect { process_disconnect }
end
@push_manager = PushManager.new(config, @sse_handler, api_key)
@config = config
end
|