Implement IRCv3 tag parsing and sending
[quassel.git] / src / core / corenetwork.h
index 3ea739d..f07f2a2 100644 (file)
 
 #pragma once
 
-#include "coreircchannel.h"
-#include "coreircuser.h"
-#include "network.h"
+#include <functional>
 
-// IRCv3 capabilities
 #include <QTimer>
 
-#include "irccap.h"
-
 #ifdef HAVE_SSL
 #    include <QSslError>
 #    include <QSslSocket>
 #    include "cipher.h"
 #endif
 
-#include <functional>
-
+#include "coreircchannel.h"
+#include "coreircuser.h"
 #include "coresession.h"
+#include "irccap.h"
+#include "irctag.h"
+#include "network.h"
 
 class CoreIdentity;
 class CoreUserInputHandler;
@@ -280,7 +278,7 @@ public slots:
      * maintain PING/PONG replies, the other side will close the connection.
      * @endparmblock
      */
-    void putCmd(const QString& cmd, const QList<QByteArray>& params, const QByteArray& prefix = {}, bool prepend = false);
+    void putCmd(const QString& cmd, const QList<QByteArray>& params, const QByteArray& prefix = {}, const QHash<IrcTagKey, QString> &tags = {}, bool prepend = false);
 
     /**
      * Sends the command for each set of encoded parameters, with optional prefix or high priority.
@@ -299,7 +297,7 @@ public slots:
      * cannot maintain PING/PONG replies, the other side will close the connection.
      * @endparmblock
      */
-    void putCmd(const QString& cmd, const QList<QList<QByteArray>>& params, const QByteArray& prefix = {}, bool prependAll = false);
+    void putCmd(const QString& cmd, const QList<QList<QByteArray>>& params, const QByteArray& prefix = {}, const QHash<IrcTagKey, QString> &tags = {}, bool prependAll = false);
 
     void setChannelJoined(const QString& channel);
     void setChannelParted(const QString& channel);