Event backend porting
[quassel.git] / src / core / coresessioneventprocessor.h
index 5113f1b..7c533e4 100644 (file)
 #ifndef CORESESSIONEVENTPROCESSOR_H
 #define CORESESSIONEVENTPROCESSOR_H
 
-#include <QObject>
+#include "corenetwork.h"
+#include "networkevent.h"
 
 class CoreSession;
+class IrcEvent;
+class IrcEventNumeric;
 
 class CoreSessionEventProcessor : public QObject {
   Q_OBJECT
@@ -33,7 +36,45 @@ public:
 
   inline CoreSession *coreSession() const { return _coreSession; }
 
+  Q_INVOKABLE void processIrcEventNumeric(IrcEventNumeric *event);
+
+  Q_INVOKABLE void processIrcEventAuthenticate(IrcEvent *event);   // SASL auth
+  Q_INVOKABLE void processIrcEventCap(IrcEvent *event);            // CAP framework
+  Q_INVOKABLE void processIrcEventInvite(IrcEvent *event);
+  Q_INVOKABLE void processIrcEventKick(IrcEvent *event);
+  Q_INVOKABLE void processIrcEventNick(IrcEvent *event);
+  Q_INVOKABLE void processIrcEventPart(IrcEvent *event);
+  Q_INVOKABLE void processIrcEventPong(IrcEvent *event);
+  Q_INVOKABLE void processIrcEventTopic(IrcEvent *event);
+
+  Q_INVOKABLE void processIrcEvent001(IrcEvent *event);            // RPL_WELCOME
+  Q_INVOKABLE void processIrcEvent005(IrcEvent *event);            // RPL_ISUPPORT
+  Q_INVOKABLE void processIrcEvent221(IrcEvent *event);            // RPL_UMODEIS
+  Q_INVOKABLE void processIrcEvent250(IrcEvent *event);            // RPL_STATSCONN
+  Q_INVOKABLE void processIrcEvent265(IrcEvent *event);            // RPL_LOCALUSERS
+  Q_INVOKABLE void processIrcEvent266(IrcEvent *event);            // RPL_GLOBALUSERS
+  Q_INVOKABLE void processIrcEvent301(IrcEvent *event);            // RPL_AWAY
+  Q_INVOKABLE void processIrcEvent305(IrcEvent *event);            // RPL_UNAWAY
+  Q_INVOKABLE void processIrcEvent306(IrcEvent *event);            // RPL_NOWAWAY
+  Q_INVOKABLE void processIrcEvent307(IrcEvent *event);            // RPL_WHOISSERVICE
+  Q_INVOKABLE void processIrcEvent310(IrcEvent *event);            // RPL_SUSERHOST
+  Q_INVOKABLE void processIrcEvent311(IrcEvent *event);            // RPL_WHOISUSER
+  Q_INVOKABLE void processIrcEvent312(IrcEvent *event);            // RPL_WHOISSERVER
+  Q_INVOKABLE void processIrcEvent313(IrcEvent *event);            // RPL_WHOISOPERATOR
+  Q_INVOKABLE void processIrcEvent315(IrcEvent *event);            // RPL_ENDOFWHO
+  Q_INVOKABLE void processIrcEvent317(IrcEvent *event);            // RPL_WHOISIDLE
+  Q_INVOKABLE void processIrcEvent322(IrcEvent *event);            // RPL_LIST
+  Q_INVOKABLE void processIrcEvent323(IrcEvent *event);            // RPL_LISTEND
+  Q_INVOKABLE void processIrcEvent331(IrcEvent *event);            // RPL_NOTOPIC
+  Q_INVOKABLE void processIrcEvent332(IrcEvent *event);            // RPL_TOPIC
+  Q_INVOKABLE void processIrcEvent352(IrcEvent *event);            // RPL_WHOREPLY
+  Q_INVOKABLE void processIrcEvent353(IrcEvent *event);            // RPL_NAMREPLY
+
+  // Q_INVOKABLE void processIrcEvent(IrcEvent *event);
+
 protected:
+  bool checkParamCount(IrcEvent *event, int minParams);
+  inline CoreNetwork *coreNetwork(NetworkEvent *e) const { return qobject_cast<CoreNetwork *>(e->network()); }
 
 private:
   CoreSession *_coreSession;