/***************************************************************************
- * Copyright (C) 2005-2012 by the Quassel Project *
+ * Copyright (C) 2005-2015 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
#ifndef CORESESSIONEVENTPROCESSOR_H
class IrcEventNumeric;
class Netsplit;
+#ifdef HAVE_QCA2
+class KeyEvent;
+#endif
+
class CoreSessionEventProcessor : public BasicHandler
{
Q_OBJECT
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 processIrcEventAuthenticate(IrcEvent *event); /// SASL authentication
+ Q_INVOKABLE void processIrcEventCap(IrcEvent *event); /// CAP framework negotiation
+ Q_INVOKABLE void processIrcEventAccount(IrcEvent *event); /// account-notify received
+ Q_INVOKABLE void processIrcEventAway(IrcEvent *event); /// away-notify received
Q_INVOKABLE void processIrcEventInvite(IrcEvent *event);
Q_INVOKABLE void processIrcEventJoin(IrcEvent *event);
Q_INVOKABLE void lateProcessIrcEventKick(IrcEvent *event);
Q_INVOKABLE void processIrcEventQuit(IrcEvent *event);
Q_INVOKABLE void lateProcessIrcEventQuit(IrcEvent *event);
Q_INVOKABLE void processIrcEventTopic(IrcEvent *event);
+#ifdef HAVE_QCA2
+ Q_INVOKABLE void processKeyEvent(KeyEvent *event);
+#endif
- Q_INVOKABLE void processIrcEvent001(IrcEvent *event); // RPL_WELCOME
+ Q_INVOKABLE void processIrcEvent001(IrcEventNumeric *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 handleCtcpAction(CtcpEvent *event);
Q_INVOKABLE void handleCtcpClientinfo(CtcpEvent *event);
+ Q_INVOKABLE void handleCtcpDcc(CtcpEvent *event);
Q_INVOKABLE void handleCtcpPing(CtcpEvent *event);
Q_INVOKABLE void handleCtcpTime(CtcpEvent *event);
Q_INVOKABLE void handleCtcpVersion(CtcpEvent *event);
// key: quit message
// value: the corresponding netsplit object
QHash<Network *, QHash<QString, Netsplit *> > _netsplits;
+
+ // IRCv3 capability negotiation
+ /**
+ * Sends the next capability from the queue.
+ *
+ * During nick registration if any capabilities remain queued, this will take the next and
+ * request it. When no capabilities remain, capability negotiation is ended.
+ *
+ * @param[in,out] A network currently undergoing capability negotiation
+ */
+ void sendNextCap(Network *net);
};