6 #ifndef KAGOME_CORE_INJECTOR_APPLICATION_INJECTOR_HPP 7 #define KAGOME_CORE_INJECTOR_APPLICATION_INJECTOR_HPP 11 #include <boost/asio/io_context.hpp> 21 namespace application {
22 class AppConfiguration;
24 class AppStateManager;
27 namespace application::mode {
28 class PrintChainInfoMode;
40 class StateProtocolObserver;
41 class SyncProtocolObserver;
58 namespace consensus::babe {
62 namespace consensus::grandpa {
66 namespace blockchain {
71 namespace storage::trie {
91 std::shared_ptr<application::ChainSpec> injectChainSpec();
92 std::shared_ptr<blockchain::BlockStorage> injectBlockStorage();
93 std::shared_ptr<application::AppStateManager> injectAppStateManager();
94 std::shared_ptr<boost::asio::io_context> injectIoContext();
95 std::shared_ptr<metrics::Exposer> injectOpenMetricsService();
96 std::shared_ptr<network::Router> injectRouter();
97 std::shared_ptr<network::PeerManager> injectPeerManager();
98 std::shared_ptr<api::ApiService> injectRpcApiService();
99 std::shared_ptr<clock::SystemClock> injectSystemClock();
100 std::shared_ptr<consensus::babe::Babe> injectBabe();
101 std::shared_ptr<network::StateProtocolObserver> injectStateObserver();
102 std::shared_ptr<network::SyncProtocolObserver> injectSyncObserver();
103 std::shared_ptr<parachain::ParachainObserverImpl> injectParachainObserver();
104 std::shared_ptr<parachain::ParachainProcessorImpl>
105 injectParachainProcessor();
106 std::shared_ptr<consensus::grandpa::Grandpa> injectGrandpa();
107 std::shared_ptr<soralog::LoggingSystem> injectLoggingSystem();
108 std::shared_ptr<storage::trie::TrieStorage> injectTrieStorage();
109 std::shared_ptr<metrics::MetricsWatcher> injectMetricsWatcher();
110 std::shared_ptr<telemetry::TelemetryService> injectTelemetryService();
111 std::shared_ptr<blockchain::BlockTree> injectBlockTree();
112 std::shared_ptr<runtime::Executor> injectExecutor();
113 std::shared_ptr<storage::BufferStorage> injectStorage();
115 std::shared_ptr<application::mode::PrintChainInfoMode>
116 injectPrintChainInfoMode();
117 std::shared_ptr<application::mode::RecoveryMode> injectRecoveryMode();
120 std::shared_ptr<class KagomeNodeInjectorImpl>
pimpl_;
125 #endif // KAGOME_CORE_INJECTOR_APPLICATION_INJECTOR_HPP
std::shared_ptr< class KagomeNodeInjectorImpl > pimpl_
an http server interface to expose metrics on request with custom request handler ...