98 std::reference_wrapper<util::config::ClioConfigDefinition const> config_;
99 std::shared_ptr<BackendInterface> backend_;
100 std::shared_ptr<LoadBalancerInterface> balancer_;
101 std::shared_ptr<etl::NetworkValidatedLedgersInterface> ledgers_;
102 std::shared_ptr<LedgerPublisherInterface> publisher_;
103 std::shared_ptr<CacheLoaderInterface> cacheLoader_;
104 std::shared_ptr<CacheUpdaterInterface> cacheUpdater_;
105 std::shared_ptr<ExtractorInterface> extractor_;
106 std::shared_ptr<LoaderInterface> loader_;
107 std::shared_ptr<InitialLoadObserverInterface> initialLoadObserver_;
108 std::shared_ptr<etlng::TaskManagerProviderInterface> taskManagerProvider_;
109 std::shared_ptr<etlng::MonitorProviderInterface> monitorProvider_;
110 std::shared_ptr<etl::SystemState> state_;
112 std::optional<uint32_t> startSequence_;
113 std::optional<uint32_t> finishSequence_;
115 std::unique_ptr<MonitorInterface> monitor_;
116 std::unique_ptr<TaskManagerInterface> taskMan_;
118 boost::signals2::scoped_connection monitorNewSeqSubscription_;
119 boost::signals2::scoped_connection monitorDbStalledSubscription_;
121 std::optional<util::async::AnyOperation<void>> mainLoop_;
144 std::reference_wrapper<util::config::ClioConfigDefinition const> config,
145 std::shared_ptr<data::BackendInterface> backend,
146 std::shared_ptr<LoadBalancerInterface> balancer,
147 std::shared_ptr<etl::NetworkValidatedLedgersInterface> ledgers,
148 std::shared_ptr<LedgerPublisherInterface> publisher,
149 std::shared_ptr<CacheLoaderInterface> cacheLoader,
150 std::shared_ptr<CacheUpdaterInterface> cacheUpdater,
151 std::shared_ptr<ExtractorInterface> extractor,
152 std::shared_ptr<LoaderInterface> loader,
153 std::shared_ptr<InitialLoadObserverInterface> initialLoadObserver,
154 std::shared_ptr<etlng::TaskManagerProviderInterface> taskManagerProvider,
155 std::shared_ptr<etlng::MonitorProviderInterface> monitorProvider,
156 std::shared_ptr<etl::SystemState> state
176 std::optional<etl::ETLState>
183 std::optional<data::LedgerRange>
184 loadInitialLedgerIfNeeded();
187 startMonitor(uint32_t seq);
190 startLoading(uint32_t seq);
193 attemptTakeoverWriter();
ETLService(util::async::AnyExecutionContext ctx, std::reference_wrapper< util::config::ClioConfigDefinition const > config, std::shared_ptr< data::BackendInterface > backend, std::shared_ptr< LoadBalancerInterface > balancer, std::shared_ptr< etl::NetworkValidatedLedgersInterface > ledgers, std::shared_ptr< LedgerPublisherInterface > publisher, std::shared_ptr< CacheLoaderInterface > cacheLoader, std::shared_ptr< CacheUpdaterInterface > cacheUpdater, std::shared_ptr< ExtractorInterface > extractor, std::shared_ptr< LoaderInterface > loader, std::shared_ptr< InitialLoadObserverInterface > initialLoadObserver, std::shared_ptr< etlng::TaskManagerProviderInterface > taskManagerProvider, std::shared_ptr< etlng::MonitorProviderInterface > monitorProvider, std::shared_ptr< etl::SystemState > state)
Create an instance of ETLService.
Definition ETLService.cpp:72
A type-erased execution context.
Definition AnyExecutionContext.hpp:41