#include"Boss/Mod/ActiveProber.hpp" #include"Boss/Mod/AmountSettingsHandler.hpp" #include"Boss/Mod/AutoDisconnector.hpp" #include"Boss/Mod/AvailableRpcCommandsAnnouncer.hpp" #include"Boss/Mod/BlockTracker.hpp" #include"Boss/Mod/BoltzSwapper/Main.hpp" #include"Boss/Mod/ChannelCandidateInvestigator/Main.hpp" #include"Boss/Mod/ChannelCandidateMatchmaker.hpp" #include"Boss/Mod/ChannelCandidatePreinvestigator.hpp" #include"Boss/Mod/ChannelCreateDestroyMonitor.hpp" #include"Boss/Mod/ChannelCreationDecider.hpp" #include"Boss/Mod/ChannelCreator/Main.hpp" #include"Boss/Mod/ChannelFeeManager.hpp" #include"Boss/Mod/ChannelFeeSetter.hpp" #include"Boss/Mod/ChannelFinderByDistance.hpp" #include"Boss/Mod/ChannelFinderByEarnedFee.hpp" #include"Boss/Mod/ChannelFinderByListpays.hpp" #include"Boss/Mod/ChannelFinderByPopularity.hpp" #include"Boss/Mod/ChannelFundsComputer.hpp" #include"Boss/Mod/ComplainerByLowConnectRate.hpp" #include"Boss/Mod/ComplainerByLowSuccessPerDay.hpp" #include"Boss/Mod/ConnectFinderByDns.hpp" #include"Boss/Mod/ConnectFinderByHardcode.hpp" #include"Boss/Mod/Connector.hpp" #include"Boss/Mod/CommandReceiver.hpp" #include"Boss/Mod/Dowser.hpp" #include"Boss/Mod/EarningsRebalancer.hpp" #include"Boss/Mod/EarningsTracker.hpp" #include"Boss/Mod/FeeModderByBalance.hpp" #include"Boss/Mod/FeeMonitor.hpp" #include"Boss/Mod/FeeModderByPriceTheory.hpp" #include"Boss/Mod/FeeModderBySize.hpp" #include"Boss/Mod/ForwardFeeMonitor.hpp" #include"Boss/Mod/FundsMover/Main.hpp" #include"Boss/Mod/HtlcAcceptor.hpp" #include"Boss/Mod/InitialConnect.hpp" #include"Boss/Mod/InitialRebalancer.hpp" #include"Boss/Mod/Initiator.hpp" #include"Boss/Mod/InternetConnectionMonitor.hpp" #include"Boss/Mod/InvoicePayer.hpp" #include"Boss/Mod/JitRebalancer.hpp" #include"Boss/Mod/JsonOutputter.hpp" #include"Boss/Mod/ListfundsAnalyzer.hpp" #include"Boss/Mod/ListfundsAnnouncer.hpp" #include"Boss/Mod/ListpaysHandler.hpp" #include"Boss/Mod/ListpeersAnalyzer.hpp" #include"Boss/Mod/ListpeersAnnouncer.hpp" #include"Boss/Mod/Manifester.hpp" #include"Boss/Mod/MoveFundsCommand.hpp" #include"Boss/Mod/NeedsConnectSolicitor.hpp" #include"Boss/Mod/NeedsOnchainFundsSwapper.hpp" #include"Boss/Mod/NewaddrHandler.hpp" #include"Boss/Mod/NodeBalanceSwapper.hpp" #include"Boss/Mod/OnchainFeeMonitor.hpp" #include"Boss/Mod/OnchainFundsAnnouncer.hpp" #include"Boss/Mod/OnchainFundsIgnorer.hpp" #include"Boss/Mod/PaymentDeleter.hpp" #include"Boss/Mod/PeerCompetitorFeeMonitor/Main.hpp" #include"Boss/Mod/PeerComplaintsDesk/Main.hpp" #include"Boss/Mod/PeerFromScidMapper.hpp" #include"Boss/Mod/PeerMetrician.hpp" #include"Boss/Mod/PeerStatistician.hpp" #include"Boss/Mod/RebalanceUnmanager.hpp" #include"Boss/Mod/Reconnector.hpp" #include"Boss/Mod/RegularActiveProbe.hpp" #include"Boss/Mod/RpcWrapper.hpp" #include"Boss/Mod/SelfUptimeMonitor.hpp" #include"Boss/Mod/SendpayResultMonitor.hpp" #include"Boss/Mod/SetConfigHandler.hpp" #include"Boss/Mod/StatusCommand.hpp" #include"Boss/Mod/SwapManager.hpp" #include"Boss/Mod/SwapReporter.hpp" #include"Boss/Mod/TimerTwiceDailyAnnouncer.hpp" #include"Boss/Mod/Timers.hpp" #include"Boss/Mod/UnmanagedManager.hpp" #include"Boss/Mod/Waiter.hpp" #include"Boss/Mod/XMoveFunds/Main.hpp" #include"Boss/Mod/all.hpp" #include namespace { class All { private: std::vector> modules; public: template std::shared_ptr install(As&&... as) { auto ptr = std::make_shared(as...); modules.push_back(std::shared_ptr(ptr)); return ptr; } }; } namespace Boss { namespace Mod { std::shared_ptr all( std::ostream& cout , S::Bus& bus , Ev::ThreadPool& threadpool , std::function< Net::Fd( std::string const& , std::string const& ) > open_rpc_socket ) { auto all = std::make_shared(); /* Basic. */ auto waiter = all->install(bus); auto imon = all->install( bus , threadpool , *waiter ); all->install(cout, bus); all->install(bus); all->install(bus); all->install(bus); /* Startup. */ all->install(bus); all->install(bus, threadpool, std::move(open_rpc_socket)); all->install(bus); /* General settings. */ all->install(bus); /* Regular timers. */ all->install(bus); all->install(bus, *waiter); all->install(bus); /* Connection wrangling. */ all->install(bus); all->install(bus); all->install(bus); all->install(bus); all->install(bus); all->install(bus); all->install(bus); /* Status monitors. */ all->install(bus); all->install(bus); all->install(bus); all->install(bus, *waiter); all->install(bus); all->install(bus); all->install(bus); all->install(bus); all->install(bus); all->install(bus); /* Channel creation wrangling. */ all->install(bus, *waiter); all->install(bus); all->install(bus); all->install(bus, *waiter); all->install(bus); auto investigator = all->install< ChannelCandidateInvestigator::Main >(bus, *imon); all->install(bus); all->install(bus, *waiter, *investigator); all->install(bus); all->install(bus); /* Status. */ all->install(bus); /* Offchain-to-onchain swap. */ all->install(bus); all->install(bus, threadpool); all->install(bus); all->install(bus); all->install(bus); all->install(bus); /* Invoice wrangling. */ all->install(bus); all->install(bus); all->install(bus); /* Channel fees. */ all->install(bus); all->install(bus); all->install(bus); all->install(bus); all->install(bus); all->install(bus); all->install(bus); /* HTLC manipulation. */ all->install(bus, *waiter); /* Bad peer monitoring. */ all->install(bus); all->install(bus); all->install(bus); all->install(bus); all->install(bus, *investigator); all->install(bus); /* Peer complaints. */ all->install(bus); all->install(bus); #ifdef ENABLE_COMPLAINER_BY_LOW_SUCCESS_PER_DAY all->install(bus); #endif /* ENABLE_COMPLAINER_BY_LOW_SUCCESS_PER_DAY */ /* Channel balancing. */ all->install(bus); all->install(bus); all->install(bus); all->install(bus); all->install(bus); #ifdef ENABLE_INITIAL_REBALANCER all->install(bus); #endif /* ENABLE_INITIAL_REBALANCER */ all->install(bus); all->install(bus); /* Unmanaged nodes. */ all->install(bus); /* Utility. */ all->install(bus); return all; } }}