twisterp2pblockchainnetworkbittorrentmicrobloggingipv6social-networkdhtdecentralizedtwisterarmyp2p-networktwister-servertwister-ipv6twister-core
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.4 KiB
61 lines
1.4 KiB
#ifndef CLIENTMODEL_H |
|
#define CLIENTMODEL_H |
|
|
|
#include <QObject> |
|
|
|
class OptionsModel; |
|
class AddressTableModel; |
|
class TransactionTableModel; |
|
|
|
class ClientModel : public QObject |
|
{ |
|
Q_OBJECT |
|
public: |
|
explicit ClientModel(QObject *parent = 0); |
|
|
|
enum StatusCode |
|
{ |
|
OK, |
|
InvalidAmount, |
|
InvalidAddress, |
|
AmountExceedsBalance, |
|
AmountWithFeeExceedsBalance, |
|
Aborted, |
|
MiscError |
|
}; |
|
|
|
OptionsModel *getOptionsModel(); |
|
AddressTableModel *getAddressTableModel(); |
|
TransactionTableModel *getTransactionTableModel(); |
|
|
|
qint64 getBalance(); |
|
QString getAddress(); |
|
int getNumConnections(); |
|
int getNumBlocks(); |
|
int getNumTransactions(); |
|
|
|
/* Set default address */ |
|
void setAddress(const QString &defaultAddress); |
|
/* Send coins */ |
|
StatusCode sendCoins(const QString &payTo, qint64 payAmount); |
|
private: |
|
OptionsModel *optionsModel; |
|
AddressTableModel *addressTableModel; |
|
TransactionTableModel *transactionTableModel; |
|
|
|
signals: |
|
void balanceChanged(qint64 balance); |
|
void addressChanged(const QString &address); |
|
void numConnectionsChanged(int count); |
|
void numBlocksChanged(int count); |
|
void numTransactionsChanged(int count); |
|
/* Asynchronous error notification */ |
|
void error(const QString &title, const QString &message); |
|
|
|
public slots: |
|
|
|
private slots: |
|
void update(); |
|
}; |
|
|
|
#endif // CLIENTMODEL_H
|
|
|