@@ -37,6 +37,13 @@ class NodeModel : public QObject
37
37
Q_PROPERTY (double verificationProgress READ verificationProgress NOTIFY verificationProgressChanged)
38
38
Q_PROPERTY (bool pause READ pause WRITE setPause NOTIFY pauseChanged)
39
39
Q_PROPERTY (bool faulted READ errorState WRITE setErrorState NOTIFY errorStateChanged)
40
+ Q_PROPERTY (double snapshotProgress READ snapshotProgress WRITE setSnapshotProgress NOTIFY snapshotProgressChanged)
41
+ Q_PROPERTY (bool snapshotLoading READ snapshotLoading NOTIFY snapshotLoadingChanged)
42
+ Q_PROPERTY (bool isSnapshotLoaded READ isSnapshotLoaded NOTIFY snapshotLoaded)
43
+ Q_PROPERTY (bool headersSynced READ headersSynced WRITE setHeadersSynced NOTIFY headersSyncedChanged)
44
+ Q_PROPERTY (bool isIBDCompleted READ isIBDCompleted WRITE setIsIBDCompleted NOTIFY isIBDCompletedChanged)
45
+ Q_PROPERTY (QString snapshotFilePath READ snapshotFilePath WRITE setSnapshotFilePath NOTIFY snapshotFilePathChanged)
46
+ Q_PROPERTY (bool snapshotError READ snapshotError WRITE setSnapshotError NOTIFY snapshotErrorChanged)
40
47
41
48
public:
42
49
explicit NodeModel (interfaces::Node& node);
@@ -55,13 +62,28 @@ class NodeModel : public QObject
55
62
void setPause (bool new_pause);
56
63
bool errorState () const { return m_faulted; }
57
64
void setErrorState (bool new_error);
65
+ bool isSnapshotLoaded () const { return m_snapshot_loaded; }
66
+ double snapshotProgress () const { return m_snapshot_progress; }
67
+ void setSnapshotProgress (double new_progress);
68
+ bool snapshotLoading () const { return m_snapshot_loading; }
69
+ bool headersSynced () const { return m_headers_synced; }
70
+ void setHeadersSynced (bool new_synced);
71
+ bool isIBDCompleted () const { return m_is_ibd_completed; }
72
+ void setIsIBDCompleted (bool new_completed);
73
+ QString snapshotFilePath () const { return m_snapshot_file_path; }
74
+ Q_INVOKABLE void setSnapshotFilePath (const QString& new_path);
75
+ bool snapshotError () const { return m_snapshot_error; }
76
+ Q_INVOKABLE void setSnapshotError (bool new_error);
58
77
59
78
Q_INVOKABLE float getTotalBytesReceived () const { return (float )m_node.getTotalBytesRecv (); }
60
79
Q_INVOKABLE float getTotalBytesSent () const { return (float )m_node.getTotalBytesSent (); }
61
80
62
81
Q_INVOKABLE void startNodeInitializionThread ();
63
82
Q_INVOKABLE void requestShutdown ();
64
83
84
+ Q_INVOKABLE void snapshotLoadThread (QString path_file);
85
+ Q_INVOKABLE void checkAndLoadSnapshot ();
86
+
65
87
void startShutdownPolling ();
66
88
void stopShutdownPolling ();
67
89
@@ -83,6 +105,15 @@ public Q_SLOTS:
83
105
84
106
void setTimeRatioList (int new_time);
85
107
void setTimeRatioListInitial ();
108
+ void initializationFinished ();
109
+ void snapshotLoaded (bool result);
110
+ void snapshotProgressChanged ();
111
+ void snapshotLoadingChanged ();
112
+ void showProgress (const QString& title, int progress);
113
+ void headersSyncedChanged ();
114
+ void isIBDCompletedChanged ();
115
+ void snapshotFilePathChanged ();
116
+ void snapshotErrorChanged ();
86
117
87
118
protected:
88
119
void timerEvent (QTimerEvent* event) override ;
@@ -96,17 +127,25 @@ public Q_SLOTS:
96
127
double m_verification_progress{0.0 };
97
128
bool m_pause{false };
98
129
bool m_faulted{false };
99
-
130
+ double m_snapshot_progress{ 0.0 };
100
131
int m_shutdown_polling_timer_id{0 };
132
+ int m_snapshot_timer_id{0 };
133
+ bool m_snapshot_loading{false };
134
+ bool m_snapshot_loaded{false };
135
+ bool m_headers_synced{false };
136
+ bool m_is_ibd_completed{false };
137
+ QString m_snapshot_file_path;
138
+ bool m_snapshot_error{false };
101
139
102
140
QVector<QPair<int , double >> m_block_process_time;
103
141
104
142
interfaces::Node& m_node;
105
143
std::unique_ptr<interfaces::Handler> m_handler_notify_block_tip;
106
144
std::unique_ptr<interfaces::Handler> m_handler_notify_num_peers_changed;
107
-
145
+ std::unique_ptr<interfaces::Handler> m_handler_snapshot_load_progress;
108
146
void ConnectToBlockTipSignal ();
109
147
void ConnectToNumConnectionsChangedSignal ();
148
+ void ConnectToSnapshotLoadProgressSignal ();
110
149
};
111
150
112
151
#endif // BITCOIN_QML_MODELS_NODEMODEL_H
0 commit comments