Refactoring of BasicHandler
[quassel.git] / src / core / ctcphandler.h
index 4178c4e..e44321b 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-08 by the Quassel Project                          *
+ *   Copyright (C) 2005-10 by the Quassel Project                          *
  *   devel@quassel-irc.org                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
 #include <QHash>
 #include <QStringList>
 
-#include "basichandler.h"
+#include "corebasichandler.h"
 
-class CtcpHandler : public BasicHandler {
+class CoreListIgnoreListManager;
+
+class CtcpHandler : public CoreBasicHandler {
   Q_OBJECT
 
 public:
-  CtcpHandler(Server *parent = 0);
+  CtcpHandler(CoreNetwork *parent = 0);
 
   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;
+  CoreIgnoreListManager *_ignoreListManager;
 };