aboutsummaryrefslogtreecommitdiff
path: root/src/libwalletqt/Wallet.cpp
diff options
context:
space:
mode:
authorJaquee <jaquee.monero@gmail.com>2016-11-26 16:31:27 +0100
committerJaquee <jaquee.monero@gmail.com>2016-11-26 19:37:37 +0100
commit3f8e05d7a4891623bd34c62d82959eab80d079db (patch)
treea50cd048fe45961bb3dd94c8c85161e53d9df930 /src/libwalletqt/Wallet.cpp
parent36a6b89b540020957eb59e1b57bf6186e180afcb (diff)
downloadmonzero-gui-3f8e05d7a4891623bd34c62d82959eab80d079db.tar.gz
monzero-gui-3f8e05d7a4891623bd34c62d82959eab80d079db.tar.xz
monzero-gui-3f8e05d7a4891623bd34c62d82959eab80d079db.zip
Wallet: Cache connection status query
Diffstat (limited to 'src/libwalletqt/Wallet.cpp')
-rw-r--r--src/libwalletqt/Wallet.cpp23
1 files changed, 18 insertions, 5 deletions
diff --git a/src/libwalletqt/Wallet.cpp b/src/libwalletqt/Wallet.cpp
index 608bbd0f..201d5293 100644
--- a/src/libwalletqt/Wallet.cpp
+++ b/src/libwalletqt/Wallet.cpp
@@ -15,6 +15,7 @@
namespace {
static const int DAEMON_BLOCKCHAIN_HEIGHT_CACHE_TTL_SECONDS = 10;
static const int DAEMON_BLOCKCHAIN_TARGET_HEIGHT_CACHE_TTL_SECONDS = 60;
+ static const int WALLET_CONNECTION_STATUS_CACHE_TTL_SECONDS = 5;
}
class WalletListenerImpl : public Bitmonero::WalletListener
@@ -90,12 +91,19 @@ Wallet::Status Wallet::status() const
Wallet::ConnectionStatus Wallet::connected()
{
qDebug("Checking wallet connection status");
- ConnectionStatus newStatus = static_cast<ConnectionStatus>(m_walletImpl->connected());
- if(newStatus != m_connectionStatus) {
- m_connectionStatus = newStatus;
- emit connectionStatusChanged();
+
+ // cache connection status
+ if(m_connectionStatusTime.elapsed() / 1000 > m_connectionStatusTtl){
+ qDebug("connectionStatus query");
+ ConnectionStatus newStatus = static_cast<ConnectionStatus>(m_walletImpl->connected());
+ if(newStatus != m_connectionStatus) {
+ m_connectionStatus = newStatus;
+ emit connectionStatusChanged();
+ }
+ m_connectionStatusTime.restart();
}
- return newStatus;
+
+ return m_connectionStatus;
}
bool Wallet::synchronized() const
@@ -425,10 +433,15 @@ Wallet::Wallet(Bitmonero::Wallet *w, QObject *parent)
, m_daemonBlockChainHeightTtl(DAEMON_BLOCKCHAIN_HEIGHT_CACHE_TTL_SECONDS)
, m_daemonBlockChainTargetHeight(0)
, m_daemonBlockChainTargetHeightTtl(DAEMON_BLOCKCHAIN_TARGET_HEIGHT_CACHE_TTL_SECONDS)
+ , m_connectionStatusTtl(WALLET_CONNECTION_STATUS_CACHE_TTL_SECONDS)
{
m_history = new TransactionHistory(m_walletImpl->history(), this);
m_walletImpl->setListener(new WalletListenerImpl(this));
m_connectionStatus = Wallet::ConnectionStatus_Disconnected;
+ // start cache timers
+ m_connectionStatusTime.restart();
+ m_daemonBlockChainHeightTime.restart();
+ m_daemonBlockChainTargetHeightTime.restart();
}
Wallet::~Wallet()