Make selections in bufferviews (mostly) synchronous again.
[quassel.git] / core / server.h
index 9664151..c17b4d0 100644 (file)
@@ -41,11 +41,12 @@ class Server : public QThread {
   Q_OBJECT
 
   public:
-    Server(QString network);
+    Server(UserId uid, QString network);
     ~Server();
 
+    UserId userId() const { return user; } 
     // serverState state();
-    bool isConnected() { return socket.state() == QAbstractSocket::ConnectedState; }
+    bool isConnected() const { return socket.state() == QAbstractSocket::ConnectedState; }
     QString getNetwork() { return network; }
     QStringList providesUserHandlers();
 
@@ -111,6 +112,7 @@ class Server : public QThread {
     void handleUserSay(QString, QString);
     void handleUserTopic(QString, QString);
     void handleUserVoice(QString, QString);
+    void handleUserMe(QString, QString);
 
     /* void handleServer(QString, QStringList); */
     void handleServerJoin(QString, QStringList);
@@ -134,12 +136,15 @@ class Server : public QThread {
     void handleServer433(QString, QStringList);   // ERR_NICKNAMEINUSE
 
     void handleCtcpAction(CtcpType, QString, QString, QString);
+    void handleCtcpPing(CtcpType, QString, QString, QString);
+    void handleCtcpVersion(CtcpType, QString, QString, QString);
 
     void defaultServerHandler(QString cmd, QString prefix, QStringList params);
     void defaultUserHandler(QString buf, QString cmd, QString msg);
     void defaultCtcpHandler(CtcpType ctcptype, QString prefix, QString cmd, QString target, QString param);
 
   private:
+    UserId user;
     QString network;
     QTcpSocket socket;
     //QHash<QString, Buffer*> buffers;
@@ -155,11 +160,18 @@ class Server : public QThread {
     void handleServerMsg(QString rawMsg);
     void handleUserInput(QString buffer, QString usrMsg);
 
+    // CTCP Stuff
+    QString XDELIM;
     QHash<QString, QString> ctcpMDequoteHash;
+    QHash<QString, QString> ctcpXDelimDequoteHash;    
     QString ctcpDequote(QString);
     QString ctcpXdelimDequote(QString);
     QStringList parseCtcp(CtcpType, QString, QString, QString);    
 
+    QString ctcpPack(QString ctcpTag, QString message);
+    void ctcpQuery(QString bufname, QString ctcpTag, QString message);
+    void ctcpReply(QString bufname, QString ctcpTag, QString message);
+    
     QString updateNickFromMask(QString mask);
 
     class ParseError : public Exception {