X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=core%2Fcoreproxy.h;h=1bded179bbffec413d287fc9a55c14a97fafad99;hp=bd52bb075b2b263615bc8f96e51c9329b72c7650;hb=04e21ce26ebabdde9586ca9d2a3168431e448df5;hpb=91ee3f5533474f265553a0870bb1c07a4b686906 diff --git a/core/coreproxy.h b/core/coreproxy.h index bd52bb07..1bded179 100644 --- a/core/coreproxy.h +++ b/core/coreproxy.h @@ -23,8 +23,9 @@ #include "proxy_common.h" -#include -#include +#include +#include +#include /** This class is the Core side of the proxy. The Core connects its signals and slots to it, * and the calls are marshalled and sent to (or received and unmarshalled from) the GUIProxy. @@ -33,21 +34,37 @@ class CoreProxy : public QObject { Q_OBJECT - private: - void send(CoreSignal, QVariant arg1 = QVariant(), QVariant arg2 = QVariant(), QVariant arg3 = QVariant()); - void recv(GUISignal, QVariant arg1 = QVariant(), QVariant arg2 = QVariant(), QVariant arg3 = QVariant()); - public: CoreProxy(); public slots: - void csCoreMessage(QString); - + inline void csCoreMessage(QString s) { send(CS_CORE_MESSAGE, s); } + inline void csUpdateGlobalData(QString key, QVariant data) { send(CS_UPDATE_GLOBAL_DATA, key, data); } signals: + void gsPutGlobalData(QString, QVariant); void gsUserInput(QString); void gsRequestConnect(QString, quint16); + private: + void send(CoreSignal, QVariant arg1 = QVariant(), QVariant arg2 = QVariant(), QVariant arg3 = QVariant()); + void recv(GUISignal, QVariant arg1 = QVariant(), QVariant arg2 = QVariant(), QVariant arg3 = QVariant()); + void sendToGUI(CoreSignal, QVariant arg1, QVariant arg2, QVariant arg3); + + void processClientInit(QTcpSocket *socket, const QVariant &v); + void processClientUpdate(QTcpSocket *, QString key, QVariant data); + + private slots: + void incomingConnection(); + void clientHasData(); + void clientDisconnected(); + void updateGlobalData(QString key); + + private: + QTcpServer server; + QList clients; + QHash blockSizes; + friend class GUIProxy; };