X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fcore.h;h=374d821021f18ca5226e786222122021633e80d9;hp=126e3a5799d69de7185618ef9e0cc9bbc7919c14;hb=cdb2f3cd9df153ea76c0e27e9a7edb24d1dbdd30;hpb=077d44f36d2f5c730283ef6be839aea7dd073d56;ds=sidebyside diff --git a/src/core/core.h b/src/core/core.h index 126e3a57..374d8210 100644 --- a/src/core/core.h +++ b/src/core/core.h @@ -23,14 +23,13 @@ #include #include -#include +#include +#include -#include "server.h" -#include "storage.h" -#include "global.h" #include "coreproxy.h" class CoreSession; +class Storage; class Core : public QObject { Q_OBJECT @@ -43,6 +42,9 @@ class Core : public QObject { static CoreSession * localSession(); static CoreSession * createSession(UserId); + static QVariant connectLocalClient(QString user, QString passwd); + static QVariant disconnectLocalClient(); + private slots: void recvProxySignal(CoreSignal, QVariant, QVariant, QVariant); bool startListening(uint port = 4242); @@ -58,6 +60,13 @@ class Core : public QObject { void init(); static Core *instanceptr; + //! Initiate a session for the user with the given credentials if one does not already exist. + /** This function is called during the init process for a new client. If there is no session for the + * given user, one is created. + * \param userId The user + * \return A QVariant containing the session data, e.g. global data and buffers + */ + QVariant initSession(UserId userId); void processClientInit(QTcpSocket *socket, const QVariant &v); void processClientUpdate(QTcpSocket *socket, QString key, const QVariant &data); @@ -70,99 +79,4 @@ class Core : public QObject { QHash blockSizes; }; -class CoreSession : public QObject { - Q_OBJECT - - public: - CoreSession(UserId, Storage *); - ~CoreSession(); - - QList buffers() const; - inline UserId userId(); - QVariant sessionState(); - CoreProxy *proxy(); - - public slots: - void connectToIrc(QStringList); - void processSignal(ClientSignal, QVariant, QVariant, QVariant); - void sendBacklog(BufferId, QVariant, QVariant); - void msgFromGui(BufferId, QString message); - void sendServerStates(); - - signals: - void proxySignal(CoreSignal, QVariant arg1 = QVariant(), QVariant arg2 = QVariant(), QVariant arg3 = QVariant()); - - void msgFromGui(QString net, QString buf, QString message); - void displayMsg(Message message); - void displayStatusMsg(QString, QString); - - void connectToIrc(QString net); - void disconnectFromIrc(QString net); - void serverStateRequested(); - - void backlogData(BufferId, QList, bool done); - - void bufferIdUpdated(BufferId); - - private slots: - //void recvProxySignal(CoreSignal, QVariant arg1 = QVariant(), QVariant arg2 = QVariant(), QVariant arg3 = QVariant()); - void globalDataUpdated(UserId, QString); - void recvStatusMsgFromServer(QString msg); - void recvMessageFromServer(Message::Type, QString target, QString text, QString sender = "", quint8 flags = Message::None); - void serverConnected(QString net); - void serverDisconnected(QString net); - - private: - CoreProxy *coreProxy; - Storage *storage; - QHash servers; - UserId user; - -}; - -/* -class Core : public QObject { - Q_OBJECT - - public: - - Core(); - ~Core(); - QList getBuffers(); - - public slots: - void connectToIrc(QStringList); - void sendBacklog(BufferId, QVariant, QVariant); - void msgFromGUI(BufferId, QString message); - - signals: - void msgFromGUI(QString net, QString buf, QString message); - void displayMsg(Message message); - void displayStatusMsg(QString, QString); - - void connectToIrc(QString net); - void disconnectFromIrc(QString net); - void serverStateRequested(); - - void backlogData(BufferId, QList, bool done); - - void bufferIdUpdated(BufferId); - - private slots: - void globalDataUpdated(QString); - void recvStatusMsgFromServer(QString msg); - void recvMessageFromServer(Message::Type, QString target, QString text, QString sender = "", quint8 flags = Message::None); - void serverDisconnected(QString net); - - private: - Storage *storage; - QHash servers; - UserId user; - -}; - -*/ -//extern Core *core; - - #endif