mirror of
https://github.com/kvazar-network/kevacoin.git
synced 2025-01-09 14:47:55 +00:00
a7897c02f7
Remove the client name from the debug window in the GUI. It is already part of the user agent, so adding it separately doesn't add anything.
110 lines
3.1 KiB
C++
110 lines
3.1 KiB
C++
// Copyright (c) 2011-2015 The Bitcoin Core developers
|
|
// Distributed under the MIT software license, see the accompanying
|
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
|
|
#ifndef BITCOIN_QT_CLIENTMODEL_H
|
|
#define BITCOIN_QT_CLIENTMODEL_H
|
|
|
|
#include <QObject>
|
|
#include <QDateTime>
|
|
|
|
class AddressTableModel;
|
|
class BanTableModel;
|
|
class OptionsModel;
|
|
class PeerTableModel;
|
|
class TransactionTableModel;
|
|
|
|
class CWallet;
|
|
class CBlockIndex;
|
|
|
|
QT_BEGIN_NAMESPACE
|
|
class QTimer;
|
|
QT_END_NAMESPACE
|
|
|
|
enum BlockSource {
|
|
BLOCK_SOURCE_NONE,
|
|
BLOCK_SOURCE_REINDEX,
|
|
BLOCK_SOURCE_DISK,
|
|
BLOCK_SOURCE_NETWORK
|
|
};
|
|
|
|
enum NumConnections {
|
|
CONNECTIONS_NONE = 0,
|
|
CONNECTIONS_IN = (1U << 0),
|
|
CONNECTIONS_OUT = (1U << 1),
|
|
CONNECTIONS_ALL = (CONNECTIONS_IN | CONNECTIONS_OUT),
|
|
};
|
|
|
|
/** Model for Bitcoin network client. */
|
|
class ClientModel : public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit ClientModel(OptionsModel *optionsModel, QObject *parent = 0);
|
|
~ClientModel();
|
|
|
|
OptionsModel *getOptionsModel();
|
|
PeerTableModel *getPeerTableModel();
|
|
BanTableModel *getBanTableModel();
|
|
|
|
//! Return number of connections, default is in- and outbound (total)
|
|
int getNumConnections(unsigned int flags = CONNECTIONS_ALL) const;
|
|
int getNumBlocks() const;
|
|
|
|
//! Return number of transactions in the mempool
|
|
long getMempoolSize() const;
|
|
//! Return the dynamic memory usage of the mempool
|
|
size_t getMempoolDynamicUsage() const;
|
|
|
|
quint64 getTotalBytesRecv() const;
|
|
quint64 getTotalBytesSent() const;
|
|
|
|
double getVerificationProgress(const CBlockIndex *tip) const;
|
|
QDateTime getLastBlockDate() const;
|
|
|
|
//! Return true if core is doing initial block download
|
|
bool inInitialBlockDownload() const;
|
|
//! Return true if core is importing blocks
|
|
enum BlockSource getBlockSource() const;
|
|
//! Return warnings to be displayed in status bar
|
|
QString getStatusBarWarnings() const;
|
|
|
|
QString formatFullVersion() const;
|
|
QString formatSubVersion() const;
|
|
bool isReleaseVersion() const;
|
|
QString formatClientStartupTime() const;
|
|
QString dataDir() const;
|
|
|
|
private:
|
|
OptionsModel *optionsModel;
|
|
PeerTableModel *peerTableModel;
|
|
BanTableModel *banTableModel;
|
|
|
|
QTimer *pollTimer;
|
|
|
|
void subscribeToCoreSignals();
|
|
void unsubscribeFromCoreSignals();
|
|
|
|
Q_SIGNALS:
|
|
void numConnectionsChanged(int count);
|
|
void numBlocksChanged(int count, const QDateTime& blockDate, double nVerificationProgress, bool header);
|
|
void mempoolSizeChanged(long count, size_t mempoolSizeInBytes);
|
|
void alertsChanged(const QString &warnings);
|
|
void bytesChanged(quint64 totalBytesIn, quint64 totalBytesOut);
|
|
|
|
//! Fired when a message should be reported to the user
|
|
void message(const QString &title, const QString &message, unsigned int style);
|
|
|
|
// Show progress dialog e.g. for verifychain
|
|
void showProgress(const QString &title, int nProgress);
|
|
|
|
public Q_SLOTS:
|
|
void updateTimer();
|
|
void updateNumConnections(int numConnections);
|
|
void updateAlert();
|
|
void updateBanlist();
|
|
};
|
|
|
|
#endif // BITCOIN_QT_CLIENTMODEL_H
|