add files to plugin

This commit is contained in:
theAdib
2020-10-25 10:39:21 +01:00
commit 40e6016e6c
13 changed files with 557 additions and 0 deletions
+52
View File
@@ -0,0 +1,52 @@
#ifndef JSONRPCSERVER_H
#define JSONRPCSERVER_H
#include <QWebSocketServer>
#include <QWebSocket>
#include <QObject>
#include <QMap>
#include <functional>
#include "ccStdPluginInterface.h"
class JsonRPCResult {
public:
static JsonRPCResult error(int code, QString message) {
JsonRPCResult result = { .isError = true, .error_code = code, .error_message = message };
return result;
}
static JsonRPCResult success(QVariant value) {
JsonRPCResult result = { .isError = false, .result = value };
return result;
}
bool isError{true};
int error_code{-32601};
QString error_message = "Method not found";
QVariant result;
};
class JsonRPCServer : public QObject
{
Q_OBJECT
public:
explicit JsonRPCServer(QObject *parent = nullptr);
~JsonRPCServer();
void listen(unsigned int port);
void close();
signals:
JsonRPCResult execute(QString method, QMap<QString, QVariant> params);
private slots:
void onNewConnection();
void onClosed();
void processTextMessage(QString message);
void processBinaryMessage(QByteArray message);
void socketDisconnected();
private:
QWebSocketServer *ws_server{nullptr};
QList<QWebSocket * > connections;
};
#endif // JSONRPCSERVER_H