Cache daemon target height

This commit is contained in:
Jacob Brydolf 2016-11-01 18:14:39 +01:00
parent 6c6b10855f
commit 80795971fe
No known key found for this signature in database
GPG key ID: DE46246550D2F3C5
2 changed files with 13 additions and 2 deletions

View file

@ -12,7 +12,8 @@
#include <QTimer>
namespace {
static const int DAEMON_BLOCKCHAIN_HEIGHT_CACHE_TTL_SECONDS = 60;
static const int DAEMON_BLOCKCHAIN_HEIGHT_CACHE_TTL_SECONDS = 10;
static const int DAEMON_BLOCKCHAIN_TARGET_HEIGHT_CACHE_TTL_SECONDS = 60;
}
class WalletListenerImpl : public Bitmonero::WalletListener
@ -169,7 +170,13 @@ quint64 Wallet::daemonBlockChainHeight() const
quint64 Wallet::daemonBlockChainTargetHeight() const
{
m_daemonBlockChainTargetHeight = m_walletImpl->daemonBlockChainTargetHeight();
if (m_daemonBlockChainTargetHeight == 0
|| m_daemonBlockChainTargetHeightTime.elapsed() / 1000 > m_daemonBlockChainTargetHeightTtl) {
m_daemonBlockChainTargetHeight = m_walletImpl->daemonBlockChainTargetHeight();
m_daemonBlockChainTargetHeightTime.restart();
}
return m_daemonBlockChainTargetHeight;
}
@ -261,6 +268,8 @@ Wallet::Wallet(Bitmonero::Wallet *w, QObject *parent)
, m_historyModel(nullptr)
, m_daemonBlockChainHeight(0)
, m_daemonBlockChainHeightTtl(DAEMON_BLOCKCHAIN_HEIGHT_CACHE_TTL_SECONDS)
, m_daemonBlockChainTargetHeight(0)
, m_daemonBlockChainTargetHeightTtl(DAEMON_BLOCKCHAIN_TARGET_HEIGHT_CACHE_TTL_SECONDS)
{
m_history = new TransactionHistory(m_walletImpl->history(), this);
m_walletImpl->setListener(new WalletListenerImpl(this));

View file

@ -172,7 +172,9 @@ private:
mutable QTime m_daemonBlockChainHeightTime;
mutable quint64 m_daemonBlockChainHeight;
int m_daemonBlockChainHeightTtl;
mutable QTime m_daemonBlockChainTargetHeightTime;
mutable quint64 m_daemonBlockChainTargetHeight;
int m_daemonBlockChainTargetHeightTtl;
};