From 4a49f4884f124d6f26e2fafb77f2ae2394b59cbb Mon Sep 17 00:00:00 2001 From: JCW Date: Fri, 9 Jan 2026 12:47:45 +0000 Subject: [PATCH] Decouple HashRouter from Config --- src/test/app/HashRouter_test.cpp | 1 + src/xrpld/app/main/Application.cpp | 1 + src/xrpld/app/misc/HashRouter.cpp | 35 --------------- src/xrpld/app/misc/HashRouter.h | 3 -- .../app/misc/detail/setup_HashRouter.cpp | 43 +++++++++++++++++++ src/xrpld/app/misc/setup_HashRouter.h | 17 ++++++++ src/xrpld/app/tx/apply.h | 1 - src/xrpld/app/tx/detail/Batch.h | 1 - src/xrpld/app/tx/detail/CancelCheck.cpp | 2 +- src/xrpld/app/tx/detail/CashCheck.cpp | 2 +- src/xrpld/app/tx/detail/CreateTicket.h | 1 - src/xrpld/app/tx/detail/SetAccount.cpp | 1 - src/xrpld/app/tx/detail/Transactor.cpp | 3 +- 13 files changed, 65 insertions(+), 46 deletions(-) create mode 100644 src/xrpld/app/misc/detail/setup_HashRouter.cpp create mode 100644 src/xrpld/app/misc/setup_HashRouter.h diff --git a/src/test/app/HashRouter_test.cpp b/src/test/app/HashRouter_test.cpp index 2d1d37c3e3..61d909ed80 100644 --- a/src/test/app/HashRouter_test.cpp +++ b/src/test/app/HashRouter_test.cpp @@ -1,4 +1,5 @@ #include +#include #include #include diff --git a/src/xrpld/app/main/Application.cpp b/src/xrpld/app/main/Application.cpp index 8268e333ff..0c88fe2527 100644 --- a/src/xrpld/app/main/Application.cpp +++ b/src/xrpld/app/main/Application.cpp @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include diff --git a/src/xrpld/app/misc/HashRouter.cpp b/src/xrpld/app/misc/HashRouter.cpp index a2ba41b361..0013ccd70d 100644 --- a/src/xrpld/app/misc/HashRouter.cpp +++ b/src/xrpld/app/misc/HashRouter.cpp @@ -114,39 +114,4 @@ HashRouter::shouldRelay(uint256 const& key) return s.releasePeerSet(); } -HashRouter::Setup -setup_HashRouter(Config const& config) -{ - using namespace std::chrono; - - HashRouter::Setup setup; - auto const& section = config.section("hashrouter"); - - std::int32_t tmp; - - if (set(tmp, "hold_time", section)) - { - if (tmp < 12) - Throw( - "HashRouter hold time must be at least 12 seconds (the " - "approximate validation time for three ledgers)."); - setup.holdTime = seconds(tmp); - } - if (set(tmp, "relay_time", section)) - { - if (tmp < 8) - Throw( - "HashRouter relay time must be at least 8 seconds (the " - "approximate validation time for two ledgers)."); - setup.relayTime = seconds(tmp); - } - if (setup.relayTime > setup.holdTime) - { - Throw( - "HashRouter relay time must be less than or equal to hold time"); - } - - return setup; -} - } // namespace xrpl diff --git a/src/xrpld/app/misc/HashRouter.h b/src/xrpld/app/misc/HashRouter.h index 449097a387..43eee81a3d 100644 --- a/src/xrpld/app/misc/HashRouter.h +++ b/src/xrpld/app/misc/HashRouter.h @@ -267,9 +267,6 @@ private: suppressionMap_; }; -HashRouter::Setup -setup_HashRouter(Config const&); - } // namespace xrpl #endif diff --git a/src/xrpld/app/misc/detail/setup_HashRouter.cpp b/src/xrpld/app/misc/detail/setup_HashRouter.cpp new file mode 100644 index 0000000000..42bcd7dce1 --- /dev/null +++ b/src/xrpld/app/misc/detail/setup_HashRouter.cpp @@ -0,0 +1,43 @@ +#include +#include + +#include + +namespace xrpl { + +HashRouter::Setup +setup_HashRouter(Config const& config) +{ + using namespace std::chrono; + + HashRouter::Setup setup; + auto const& section = config.section("hashrouter"); + + std::int32_t tmp; + + if (set(tmp, "hold_time", section)) + { + if (tmp < 12) + Throw( + "HashRouter hold time must be at least 12 seconds (the " + "approximate validation time for three ledgers)."); + setup.holdTime = seconds(tmp); + } + if (set(tmp, "relay_time", section)) + { + if (tmp < 8) + Throw( + "HashRouter relay time must be at least 8 seconds (the " + "approximate validation time for two ledgers)."); + setup.relayTime = seconds(tmp); + } + if (setup.relayTime > setup.holdTime) + { + Throw( + "HashRouter relay time must be less than or equal to hold time"); + } + + return setup; +} + +} // namespace xrpl diff --git a/src/xrpld/app/misc/setup_HashRouter.h b/src/xrpld/app/misc/setup_HashRouter.h new file mode 100644 index 0000000000..97cfedf1e2 --- /dev/null +++ b/src/xrpld/app/misc/setup_HashRouter.h @@ -0,0 +1,17 @@ +#ifndef XRPLD_APP_MISC_SETUP_HASHROUTER_H_INCLUDED +#define XRPLD_APP_MISC_SETUP_HASHROUTER_H_INCLUDED + +#include + +namespace xrpl { + +// Forward declaration +class Config; + +/** Create HashRouter setup from configuration */ +HashRouter::Setup +setup_HashRouter(Config const& config); + +} // namespace xrpl + +#endif diff --git a/src/xrpld/app/tx/apply.h b/src/xrpld/app/tx/apply.h index f5342fd239..64d44441d9 100644 --- a/src/xrpld/app/tx/apply.h +++ b/src/xrpld/app/tx/apply.h @@ -2,7 +2,6 @@ #define XRPL_TX_APPLY_H_INCLUDED #include -#include #include #include diff --git a/src/xrpld/app/tx/detail/Batch.h b/src/xrpld/app/tx/detail/Batch.h index a8cfeadc6b..eaa0e933ac 100644 --- a/src/xrpld/app/tx/detail/Batch.h +++ b/src/xrpld/app/tx/detail/Batch.h @@ -2,7 +2,6 @@ #define XRPL_TX_BATCH_H_INCLUDED #include -#include #include #include diff --git a/src/xrpld/app/tx/detail/CancelCheck.cpp b/src/xrpld/app/tx/detail/CancelCheck.cpp index 39277c7cf8..4a987ace5f 100644 --- a/src/xrpld/app/tx/detail/CancelCheck.cpp +++ b/src/xrpld/app/tx/detail/CancelCheck.cpp @@ -1,8 +1,8 @@ -#include #include #include #include +#include #include #include #include diff --git a/src/xrpld/app/tx/detail/CashCheck.cpp b/src/xrpld/app/tx/detail/CashCheck.cpp index eb9b52f0eb..f03a96e102 100644 --- a/src/xrpld/app/tx/detail/CashCheck.cpp +++ b/src/xrpld/app/tx/detail/CashCheck.cpp @@ -1,9 +1,9 @@ -#include #include #include #include #include +#include #include #include #include diff --git a/src/xrpld/app/tx/detail/CreateTicket.h b/src/xrpld/app/tx/detail/CreateTicket.h index a41c7e2b1f..dc547065cd 100644 --- a/src/xrpld/app/tx/detail/CreateTicket.h +++ b/src/xrpld/app/tx/detail/CreateTicket.h @@ -1,7 +1,6 @@ #ifndef XRPL_TX_CREATETICKET_H_INCLUDED #define XRPL_TX_CREATETICKET_H_INCLUDED -#include #include namespace xrpl { diff --git a/src/xrpld/app/tx/detail/SetAccount.cpp b/src/xrpld/app/tx/detail/SetAccount.cpp index efdf63042c..62487fd89d 100644 --- a/src/xrpld/app/tx/detail/SetAccount.cpp +++ b/src/xrpld/app/tx/detail/SetAccount.cpp @@ -1,6 +1,5 @@ #include #include -#include #include #include diff --git a/src/xrpld/app/tx/detail/Transactor.cpp b/src/xrpld/app/tx/detail/Transactor.cpp index f28626c85a..a1f75344cc 100644 --- a/src/xrpld/app/tx/detail/Transactor.cpp +++ b/src/xrpld/app/tx/detail/Transactor.cpp @@ -1,11 +1,9 @@ -#include #include #include #include #include #include #include -#include #include #include @@ -16,6 +14,7 @@ #include #include #include +#include #include #include