aboutsummaryrefslogtreecommitdiff
path: root/src/node/kernel_notifications.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/node/kernel_notifications.h')
-rw-r--r--src/node/kernel_notifications.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/node/kernel_notifications.h b/src/node/kernel_notifications.h
index d35b6ecca5..b2dfc03398 100644
--- a/src/node/kernel_notifications.h
+++ b/src/node/kernel_notifications.h
@@ -11,17 +11,21 @@
#include <cstdint>
#include <string>
+class ArgsManager;
class CBlockIndex;
enum class SynchronizationState;
struct bilingual_str;
namespace node {
+
+static constexpr int DEFAULT_STOPATHEIGHT{0};
+
class KernelNotifications : public kernel::Notifications
{
public:
KernelNotifications(std::atomic<int>& exit_status) : m_exit_status{exit_status} {}
- void blockTip(SynchronizationState state, CBlockIndex& index) override;
+ [[nodiscard]] kernel::InterruptResult blockTip(SynchronizationState state, CBlockIndex& index) override;
void headerTip(SynchronizationState state, int64_t height, int64_t timestamp, bool presync) override;
@@ -33,11 +37,16 @@ public:
void fatalError(const std::string& debug_message, const bilingual_str& user_message = {}) override;
+ //! Block height after which blockTip notification will return Interrupted{}, if >0.
+ int m_stop_at_height{DEFAULT_STOPATHEIGHT};
//! Useful for tests, can be set to false to avoid shutdown on fatal error.
bool m_shutdown_on_fatal_error{true};
private:
std::atomic<int>& m_exit_status;
};
+
+void ReadNotificationArgs(const ArgsManager& args, KernelNotifications& notifications);
+
} // namespace node
#endif // BITCOIN_NODE_KERNEL_NOTIFICATIONS_H