void ClientModel::updateTimer() { // Some quantities (such as number of blocks) change so fast that we don't want to be notified for each change. // Periodically check and update with a timer. int newNumBlocks = getNumBlocks(); int newNumBlocksOfPeers = getNumBlocksOfPeers(); // check for changed number of blocks we have, number of blocks peers claim to have, reindexing state and importing state if (cachedNumBlocks != newNumBlocks || cachedNumBlocksOfPeers != newNumBlocksOfPeers || cachedReindexing != fReindex || cachedImporting != fImporting) { cachedNumBlocks = newNumBlocks; cachedNumBlocksOfPeers = newNumBlocksOfPeers; cachedReindexing = fReindex; cachedImporting = fImporting; // ensure we return the maximum of newNumBlocksOfPeers and newNumBlocks to not create weird displays in the GUI emit numBlocksChanged(newNumBlocks, std::max(newNumBlocksOfPeers, newNumBlocks)); } if (miningType == SoloMining) { int newHashrate = getHashrate(); if (cachedHashrate != newHashrate) emit miningChanged(miningStarted, newHashrate); cachedHashrate = newHashrate; } }
void ClientModel::setMining(MiningType type, bool mining, int threads, int hashrate) { if (type == SoloMining && mining != miningStarted) { GenerateBitcoins(mining ? 1 : 0, pwalletMain); } miningType = type; miningStarted = mining; // WriteSetting("miningStarted", mining); // WriteSetting("fLimitProcessors", 1); // WriteSetting("nLimitProcessors", threads); emit miningChanged(mining, hashrate); }
int ClientModel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QObject::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: numConnectionsChanged((*reinterpret_cast< int(*)>(_a[1]))); break; case 1: numBlocksChanged((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; case 2: miningChanged((*reinterpret_cast< bool(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; case 3: error((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2])),(*reinterpret_cast< bool(*)>(_a[3]))); break; case 4: updateTimer(); break; case 5: updateNumConnections((*reinterpret_cast< int(*)>(_a[1]))); break; case 6: updateAlert((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; default: ; } _id -= 7; } return _id; }
void ClientModel::updateTimer() { // Some quantities (such as number of blocks) change so fast that we don't want to be notified for each change. // Periodically check and update with a timer. int newNumBlocks = getNumBlocks(); int newNumBlocksOfPeers = getNumBlocksOfPeers(); if(cachedNumBlocks != newNumBlocks || cachedNumBlocksOfPeers != newNumBlocksOfPeers) emit numBlocksChanged(newNumBlocks, newNumBlocksOfPeers); cachedNumBlocks = newNumBlocks; cachedNumBlocksOfPeers = newNumBlocksOfPeers; // Only need to update if solo mining. When pool mining, stats are pushed. if (miningType == SoloMining) { int newHashrate = getHashrate(); if (cachedHashrate != newHashrate) emit miningChanged(miningStarted, newHashrate); cachedHashrate = newHashrate; } }
void ClientModel::update() { int newNumConnections = getNumConnections(); int newNumBlocks = getNumBlocks(); if(cachedNumConnections != newNumConnections) emit numConnectionsChanged(newNumConnections); if(cachedNumBlocks != newNumBlocks) emit numBlocksChanged(newNumBlocks); cachedNumConnections = newNumConnections; cachedNumBlocks = newNumBlocks; // Only need to update if solo mining. When pool mining, stats are pushed. if (miningType == SoloMining) { int newHashrate = getHashrate(); if (cachedHashrate != newHashrate) emit miningChanged(miningStarted, newHashrate); cachedHashrate = newHashrate; } }