X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Fqt%2Fclientmodel.h;h=cf3e30e7f213a5a6dac28565e4cbb9c651060c62;hb=HEAD;hp=15387056c841308fc171263be10b983f6bb1dd1e;hpb=b0849613bf02b61774b23804c8feed54aa88474a;p=novacoin.git diff --git a/src/qt/clientmodel.h b/src/qt/clientmodel.h index 1538705..cf3e30e 100644 --- a/src/qt/clientmodel.h +++ b/src/qt/clientmodel.h @@ -3,6 +3,8 @@ #include +#include + class OptionsModel; class AddressTableModel; class TransactionTableModel; @@ -10,48 +12,77 @@ class CWallet; QT_BEGIN_NAMESPACE class QDateTime; +class QTimer; QT_END_NAMESPACE -// Model for Bitcoin network client +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(); - int getNumConnections() const; + double getPoSKernelPS(); + double getDifficulty(bool fProofofStake); + + //! Return number of connections, default is in- and outbound (total) + int getNumConnections(uint8_t flags = CONNECTIONS_ALL) const; int getNumBlocks() const; + int getNumBlocksAtStartup(); + + quint64 getTotalBytesRecv() const; + quint64 getTotalBytesSent() const; QDateTime getLastBlockDate() const; - // Return true if client connected to testnet + //! Return true if client connected to testnet bool isTestNet() const; - // Return true if core is doing initial block download + //! Return true if core is doing initial block download bool inInitialBlockDownload() const; - // Return conservative estimate of total number of blocks, or 0 if unknown - int getTotalBlocksEstimate() const; + //! Return conservative estimate of total number of blocks, or 0 if unknown + int getNumBlocksOfPeers() const; + //! Return warnings to be displayed in status bar + QString getStatusBarWarnings() const; QString formatFullVersion() const; + QString formatBuildDate() const; + QString clientName() const; + QString formatClientStartupTime() const; private: OptionsModel *optionsModel; - int cachedNumConnections; int cachedNumBlocks; + int cachedNumBlocksOfPeers; + + int numBlocksAtStartup; + QTimer *pollTimer; + + void subscribeToCoreSignals(); + void unsubscribeFromCoreSignals(); signals: void numConnectionsChanged(int count); - void numBlocksChanged(int count); + void numBlocksChanged(int count, int countOfPeers); + void bytesChanged(quint64 totalBytesIn, quint64 totalBytesOut); - // Asynchronous error notification - void error(const QString &title, const QString &message); + //! Asynchronous error notification + void error(const QString &title, const QString &message, bool modal); public slots: - -private slots: - void update(); + void updateTimer(); + void updateNumConnections(int numConnections); + void updateAlert(const QString &hash, int status); }; #endif // CLIENTMODEL_H