#ifndef _GUIPROXY_H_
#define _GUIPROXY_H_
-#include "../main/proxy_common.h"
+#include "proxy_common.h"
+#include "message.h"
#include <QObject>
#include <QVariant>
+#include <QTcpSocket>
+#include <QStringList>
/** 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:
- static GUIProxy * init();
+ GUIProxy();
public slots:
- void gsUserInput(QString);
+ inline void gsUserInput(QString net, QString buf, QString msg) { send(GS_USER_INPUT, net, buf, msg); }
+ inline void gsRequestConnect(QStringList networks) { send(GS_REQUEST_CONNECT, networks); }
+ void connectToCore(QString host, quint16 port);
+ void disconnectFromCore();
signals:
- void psCoreMessage(QString);
+ void csCoreState(QVariant);
+ void csSendMessage(QString, QString, Message);
+ void csSendStatusMsg(QString, QString);
+ void csUpdateGlobalData(QString key, QVariant data);
+ void csGlobalDataChanged(QString key);
+ void csSetTopic(QString, QString, QString);
+ void csSetNicks(QString, QString, QStringList);
+
+ 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;
};