X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=core%2Fcoreproxy.h;h=9b4acc5a1dbd7ec0b398d5b3837cda7b898c4d41;hp=bd52bb075b2b263615bc8f96e51c9329b72c7650;hb=6fc26e28a07a2b6bbc60ee786514a802e628d6d3;hpb=31d998779868a1b572972168b2e813893d70ab90 diff --git a/core/coreproxy.h b/core/coreproxy.h index bd52bb07..9b4acc5a 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,58 @@ 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 csServerConnected(QString net) { send(CS_SERVER_CONNECTED, net); } + inline void csServerDisconnected(QString net) { send(CS_SERVER_DISCONNECTED, net); } + inline void csServerState(QString net, VarMap data) { send(CS_SERVER_STATE, net, data); } + inline void csDisplayMsg(Message msg) { send(CS_DISPLAY_MSG, 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 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 csNickRenamed(QString net, QString oldn, QString newn) { send(CS_NICK_RENAMED, net, oldn, newn); } + 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); } + inline void csQueryRequested(QString net, QString nick) { send(CS_QUERY_REQUESTED, net, nick); } + inline void csBacklogData(BufferId id, QList msg, bool done) { send(CS_BACKLOG_DATA, QVariant::fromValue(id), msg, done); } + inline void csUpdateBufferId(BufferId id) { send(CS_UPDATE_BUFFERID, QVariant::fromValue(id)); } + inline void csGeneric(CoreSignal sig, QVariant v1 = QVariant(), QVariant v2 = QVariant(), QVariant v3 = QVariant()) { send(sig, v1, v2, v3); } signals: - void gsUserInput(QString); - void gsRequestConnect(QString, quint16); + void gsPutGlobalData(QString, QVariant); + void gsUserInput(BufferId, QString); + void gsRequestConnect(QStringList networks); + void gsImportBacklog(); + void gsRequestBacklog(BufferId, QVariant, QVariant); + + void gsGeneric(GUISignal, QVariant, QVariant, QVariant); + + void requestServerStates(); + + 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; };