MCPcopy Create free account
hub / github.com/bitcoin/bitcoin / ClientModel

Method ClientModel

src/qt/clientmodel.cpp:36–69  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

34static SteadyClock::time_point g_last_block_tip_update_notification{};
35
36ClientModel::ClientModel(interfaces::Node& node, OptionsModel *_optionsModel, QObject *parent) :
37 QObject(parent),
38 m_node(node),
39 optionsModel(_optionsModel),
40 m_thread(new QThread(this))
41{
42 cachedBestHeaderHeight = -1;
43 cachedBestHeaderTime = -1;
44
45 peerTableModel = new PeerTableModel(m_node, this);
46 m_peer_table_sort_proxy = new PeerTableSortProxy(this);
47 m_peer_table_sort_proxy->setSourceModel(peerTableModel);
48
49 banTableModel = new BanTableModel(m_node, this);
50
51 QTimer* timer = new QTimer;
52 timer->setInterval(MODEL_UPDATE_DELAY);
53 connect(timer, &QTimer::timeout, [this] {
54 // no locking required at this point
55 // the following calls will acquire the required lock
56 Q_EMIT mempoolSizeChanged(m_node.getMempoolSize(), m_node.getMempoolDynamicUsage(), m_node.getMempoolMaxUsage());
57 Q_EMIT bytesChanged(m_node.getTotalBytesRecv(), m_node.getTotalBytesSent());
58 });
59 connect(m_thread, &QThread::finished, timer, &QObject::deleteLater);
60 connect(m_thread, &QThread::started, [timer] { timer->start(); });
61 // move timer to thread so that polling doesn't disturb main event loop
62 timer->moveToThread(m_thread);
63 m_thread->start();
64 QTimer::singleShot(0, timer, []() {
65 util::ThreadRename("qt-clientmodl");
66 });
67
68 subscribeToCoreSignals();
69}
70
71void ClientModel::stop()
72{

Callers

nothing calls this directly

Calls 6

getMempoolSizeMethod · 0.80
getMempoolMaxUsageMethod · 0.80
getTotalBytesRecvMethod · 0.80
getTotalBytesSentMethod · 0.80
startMethod · 0.45

Tested by

no test coverage detected