Implementing ctcp level quoting and ctcp low level quoting. This fixes a crucial...
[quassel.git] / src / core / ctcphandler.h
index 3f1eecb..cac2f56 100644 (file)
@@ -34,28 +34,28 @@ public:
 
   enum CtcpType {CtcpQuery, CtcpReply};
 
-  QStringList parse(CtcpType, QString prefix, QString target, QString message);
+  void parse(Message::Type, const QString &prefix, const QString &target, const QByteArray &message);
 
-  QString dequote(QString);
-  QString XdelimDequote(QString);
+  QByteArray lowLevelQuote(const QByteArray &);
+  QByteArray lowLevelDequote(const QByteArray &);
+  QByteArray xdelimQuote(const QByteArray &);
+  QByteArray xdelimDequote(const QByteArray &);
 
-  QString pack(QString ctcpTag, QString message);
-  void query(QString bufname, QString ctcpTag, QString message);
-  void reply(QString bufname, QString ctcpTag, QString message);
+  QByteArray pack(const QByteArray &ctcpTag, const QByteArray &message);
+  void query(const QString &bufname, const QString &ctcpTag, const QString &message);
+  void reply(const QString &bufname, const QString &ctcpTag, const QString &message);
 
 public slots:
-  void handleAction(CtcpType, QString prefix, QString target, QString param);
-  void handlePing(CtcpType, QString prefix, QString target, QString param);
-  void handleVersion(CtcpType, QString prefix, QString target, QString param);
+  void handleAction(CtcpType, const QString &prefix, const QString &target, const QString &param);
+  void handlePing(CtcpType, const QString &prefix, const QString &target, const QString &param);
+  void handleVersion(CtcpType, const QString &prefix, const QString &target, const QString &param);
 
-  void defaultHandler(QString cmd, CtcpType ctcptype, QString prefix, QString target, QString param);
+  void defaultHandler(const QString &cmd, CtcpType ctcptype, const QString &prefix, const QString &target, const QString &param);
 
 private:
-  QString XDELIM;
-  QHash<QString, QString> ctcpMDequoteHash;
-  QHash<QString, QString> ctcpXDelimDequoteHash;
-
-
+  QByteArray XDELIM;
+  QHash<QByteArray, QByteArray> ctcpMDequoteHash;
+  QHash<QByteArray, QByteArray> ctcpXDelimDequoteHash;
 };