Hush lite wallet
https://faq.hush.is/sdl
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.
73 lines
1.7 KiB
73 lines
1.7 KiB
#ifndef WEBSOCKETS_H
|
|
#define WEBSOCKETS_H
|
|
|
|
#include "mainwindow.h"
|
|
#include "precompiled.h"
|
|
|
|
|
|
QT_FORWARD_DECLARE_CLASS(QWebSocketServer)
|
|
QT_FORWARD_DECLARE_CLASS(QWebSocket)
|
|
|
|
class WSServer : public QObject
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
explicit WSServer(quint16 port, bool debug = false, QObject *parent = nullptr);
|
|
~WSServer();
|
|
|
|
Q_SIGNALS:
|
|
void closed();
|
|
|
|
private Q_SLOTS:
|
|
void onNewConnection();
|
|
void processTextMessage(QString message);
|
|
void processBinaryMessage(QByteArray message);
|
|
void socketDisconnected();
|
|
|
|
private:
|
|
QWebSocketServer *m_pWebSocketServer;
|
|
MainWindow *m_mainWindow;
|
|
QList<QWebSocket *> m_clients;
|
|
bool m_debug;
|
|
};
|
|
|
|
class AppDataServer {
|
|
public:
|
|
static QJsonDocument processMessage(QString message, MainWindow* mainWindow);
|
|
static QJsonDocument processGetInfo(MainWindow* mainWindow);
|
|
static QJsonDocument processGetTransactions(MainWindow* mainWindow);
|
|
};
|
|
|
|
class AppDataModel {
|
|
public:
|
|
static AppDataModel* getInstance() {
|
|
if (instance == NULL)
|
|
instance = new AppDataModel();
|
|
|
|
return instance;
|
|
}
|
|
|
|
double getTBalance() { return balTransparent; }
|
|
double getZBalance() { return balShielded; }
|
|
double getTotalBalance() { return balTotal; }
|
|
|
|
void setBalances(double transparent, double shielded) {
|
|
balTransparent = transparent;
|
|
balShielded = shielded;
|
|
balTotal = balTransparent + balShielded;
|
|
}
|
|
|
|
private:
|
|
AppDataModel() = default; // Private, for singleton
|
|
|
|
double balTransparent;
|
|
double balShielded;
|
|
double balTotal;
|
|
double balMaxSingle;
|
|
|
|
QString saplingAddress;
|
|
|
|
static AppDataModel* instance;
|
|
};
|
|
|
|
#endif // WEBSOCKETS_H
|