#include <QObject>
#include <QVariant>
+#include <QTcpSocket>
/** This class is the GUI side of the proxy. The GUI connects its signals and slots to it,
* and the calls are marshalled and sent to (or received and unmarshalled from) the CoreProxy.
class GUIProxy : public QObject {
Q_OBJECT
- private:
- void send(GUISignal, QVariant arg1 = QVariant(), QVariant arg2 = QVariant(), QVariant arg3 = QVariant());
- void recv(CoreSignal, QVariant arg1 = QVariant(), QVariant arg2 = QVariant(), QVariant arg3 = QVariant());
-
public:
GUIProxy();
public slots:
- void gsUserInput(QString);
- void gsRequestConnect(QString, quint16);
+ inline void gsUserInput(QString s) { send(GS_USER_INPUT, s); }
+ inline void gsRequestConnect(QString host, quint16 port) { send(GS_REQUEST_CONNECT, host, port); }
+ //inline void gsPutQuasselData(QString key, QVariant data) { send(GS_PUT_QUASSEL_DATA, key, data); }
+ void connectToCore(QString host, quint16 port);
+ void disconnectFromCore();
signals:
+ void csCoreState(QVariant);
void csCoreMessage(QString);
+ void csUpdateGlobalData(QString key, QVariant data);
+ void csGlobalDataChanged(QString key);
+
+ void coreConnected();
+ void coreDisconnected();
+ void coreConnectionError(QString errorMsg);
+
+ void recvPartialItem(quint32 avail, quint32 size);
+
+ public:
+ void send(GUISignal, QVariant arg1 = QVariant(), QVariant arg2 = QVariant(), QVariant arg3 = QVariant());
+ void recv(CoreSignal, QVariant arg1 = QVariant(), QVariant arg2 = QVariant(), QVariant arg3 = QVariant());
+
+ private slots:
+ void updateCoreData(QString);
+
+ void serverError(QAbstractSocket::SocketError);
+ void serverHasData();
+
+ private:
+ QTcpSocket socket;
+ quint32 blockSize;
friend class CoreProxy;