X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=core%2Fcoreproxy.h;h=8cdea8310302333c8757316d8b861991a7f65957;hp=bd52bb075b2b263615bc8f96e51c9329b72c7650;hb=057883f768f86257c9dbefeb5ef12403b207b773;hpb=31d998779868a1b572972168b2e813893d70ab90 diff --git a/core/coreproxy.h b/core/coreproxy.h index bd52bb07..8cdea831 100644 --- a/core/coreproxy.h +++ b/core/coreproxy.h @@ -22,9 +22,12 @@ #define _COREPROXY_H_ #include "proxy_common.h" +#include "message.h" +#include "global.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,20 +36,44 @@ 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 csUpdateGlobalData(QString key, QVariant data) { send(CS_UPDATE_GLOBAL_DATA, key, data); } + inline void csDisplayMsg(QString net, QString buf, Message msg) { send(CS_DISPLAY_MSG, net, buf, QVariant::fromValue(msg)); } + inline void csDisplayStatusMsg(QString net, QString msg) { send(CS_DISPLAY_STATUS_MSG, net, msg); } + inline void csModeSet(QString net, QString target, QString mode) { send(CS_MODE_SET, net, target, mode); } + inline void csTopicSet(QString net, QString buf, QString topic) { send(CS_TOPIC_SET, net, buf, topic); } + inline void csSetNicks(QString net, QString buf, QStringList nicks) { send(CS_SET_NICKS, net, buf, nicks); } + inline void csNickAdded(QString net, QString nick, VarMap props) { send(CS_NICK_ADDED, net, nick, props); } + inline void csNickRemoved(QString net, QString nick) { send(CS_NICK_REMOVED, net, nick); } + inline void csNickUpdated(QString net, QString nick, VarMap props) { send(CS_NICK_UPDATED, net, nick, props); } + inline void csOwnNickSet(QString net, QString nick) { send(CS_OWN_NICK_SET, net, nick); } signals: - void gsUserInput(QString); - void gsRequestConnect(QString, quint16); + void gsPutGlobalData(QString, QVariant); + void gsUserInput(QString, QString, QString); + void gsRequestConnect(QStringList networks); + + 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; };