+ virtual void setMyNick(const QString &mynick);
+
+ virtual void requestConnect() const;
+ virtual void requestDisconnect() const;
+ virtual void requestSetNetworkInfo(const NetworkInfo &info);
+
+ virtual void setUseAutoReconnect(bool);
+ virtual void setAutoReconnectInterval(quint32);
+ virtual void setAutoReconnectRetries(quint16);
+
+ void setPingInterval(int interval);
+
+ void connectToIrc(bool reconnecting = false);
+ void disconnectFromIrc(bool requested = true, const QString &reason = QString(), bool withReconnect = false);
+
+ void userInput(BufferInfo bufferInfo, QString msg);
+ void putRawLine(QByteArray input);
+ void putCmd(const QString &cmd, const QList<QByteArray> ¶ms, const QByteArray &prefix = QByteArray());
+ void putCmd(const QString &cmd, const QList<QList<QByteArray>> ¶ms, const QByteArray &prefix = QByteArray());
+
+ void setChannelJoined(const QString &channel);
+ void setChannelParted(const QString &channel);
+ void addChannelKey(const QString &channel, const QString &key);
+ void removeChannelKey(const QString &channel);
+
+ // Blowfish stuff
+#ifdef HAVE_QCA2
+ Cipher *cipher(const QString &recipient);
+ QByteArray cipherKey(const QString &recipient) const;
+ void setCipherKey(const QString &recipient, const QByteArray &key);
+ bool cipherUsesCBC(const QString &target);
+#endif
+
+ // IRCv3 capability negotiation (can be connected to signals)
+
+ /**
+ * Marks a capability as accepted, providing an optional value.
+ *
+ * Removes it from queue of pending capabilities and triggers any capability-specific
+ * activation.
+ *
+ * @param[in] capability Name of the capability
+ * @param[in] value
+ * @parblock
+ * Optional value of the capability, e.g. sasl=plain. If left empty, will be copied from the
+ * pending capability.
+ * @endparblock
+ */
+ void addCap(const QString &capability, const QString &value = QString());
+
+ /**
+ * Marks a capability as denied.
+ *
+ * Removes it from the queue of pending capabilities and triggers any capability-specific
+ * deactivation.
+ *
+ * @param[in] capability Name of the capability
+ */
+ void removeCap(const QString &capability);
+
+ /**
+ * Queues a capability as available but not yet accepted or denied.
+ *
+ * Capabilities should be queued when registration pauses for CAP LS for capabilities are only
+ * requested during login.
+ *
+ * @param[in] capability Name of the capability
+ * @param[in] value Optional value of the capability, e.g. sasl=plain
+ */
+ void queuePendingCap(const QString &capability, const QString &value = QString());
+
+ void setAutoWhoEnabled(bool enabled);
+ void setAutoWhoInterval(int interval);
+ void setAutoWhoDelay(int delay);
+
+ /**
+ * Appends the given channel/nick to the front of the AutoWho queue.
+ *
+ * When 'away-notify' is enabled, this will trigger an immediate AutoWho since regular
+ * who-cycles are disabled as per IRCv3 specifications.
+ *
+ * @param[in] channelOrNick Channel or nickname to WHO
+ */
+ void queueAutoWhoOneshot(const QString &channelOrNick);
+
+ bool setAutoWhoDone(const QString &channel);
+
+ void updateIssuedModes(const QString &requestedModes);
+ void updatePersistentModes(QString addModes, QString removeModes);
+ void resetPersistentModes();
+
+ Server usedServer() const;
+
+ inline void resetPingTimeout() { _pingCount = 0; }
+
+ inline void displayMsg(Message::Type msgType, BufferInfo::Type bufferType, const QString &target, const QString &text, const QString &sender = "", Message::Flags flags = Message::None)
+ {
+ emit displayMsg(networkId(), msgType, bufferType, target, text, sender, flags);
+ }
+
+
+signals:
+ void recvRawServerMsg(QString);
+ void displayStatusMsg(QString);
+ void displayMsg(NetworkId, Message::Type, BufferInfo::Type, const QString &target, const QString &text, const QString &sender = "", Message::Flags flags = Message::None);
+ void disconnected(NetworkId networkId);
+ void connectionError(const QString &errorMsg);
+
+ void quitRequested(NetworkId networkId);
+ void sslErrors(const QVariant &errorData);
+
+ void newEvent(Event *event);
+ void socketInitialized(const CoreIdentity *identity, const QHostAddress &localAddress, quint16 localPort, const QHostAddress &peerAddress, quint16 peerPort);
+ void socketDisconnected(const CoreIdentity *identity, const QHostAddress &localAddress, quint16 localPort, const QHostAddress &peerAddress, quint16 peerPort);