+ /**
+ * Returns the optionally strict-compliant ident for the given user identity
+ *
+ * If strict mode is enabled, this will return the user's Quassel username for any identity,
+ * otherwise this will return the given identity's ident, whatever it may be.
+ *
+ * @return The user's ident, compliant with strict mode (when enabled)
+ */
+ const QString strictCompliantIdent(const CoreIdentity *identity);
+
+ inline CoreNetworkConfig *networkConfig() const { return _networkConfig; }
+ NetworkConnection *networkConnection(NetworkId) const;
+
+ Protocol::SessionState sessionState() const;
+
+ inline SignalProxy *signalProxy() const { return _signalProxy; }
+
+ const AliasManager &aliasManager() const { return _aliasManager; }
+ AliasManager &aliasManager() { return _aliasManager; }
+
+ inline EventManager *eventManager() const { return _eventManager; }
+ inline EventStringifier *eventStringifier() const { return _eventStringifier; }
+ inline CoreSessionEventProcessor *sessionEventProcessor() const { return _sessionEventProcessor; }
+ inline CtcpParser *ctcpParser() const { return _ctcpParser; }
+ inline IrcParser *ircParser() const { return _ircParser; }
+
+ inline CoreIrcListHelper *ircListHelper() const { return _ircListHelper; }
+
+ inline CoreIgnoreListManager *ignoreListManager() { return &_ignoreListManager; }
+ inline HighlightRuleManager *highlightRuleManager() { return &_highlightRuleManager; }
+ inline CoreTransferManager *transferManager() const { return _transferManager; }
+ inline CoreDccConfig *dccConfig() const { return _dccConfig; }
+
+// void attachNetworkConnection(NetworkConnection *conn);
+
+ //! Return necessary data for restoring the session after restarting the core
+ void restoreSessionState();
+
+public slots:
+ void addClient(RemotePeer *peer);
+ void addClient(InternalPeer *peer);
+
+ /**
+ * Shuts down the session and deletes itself afterwards.
+ */
+ void shutdown();
+
+ void msgFromClient(BufferInfo, QString message);
+
+ //! Create an identity and propagate the changes to the clients.
+ /** \param identity The identity to be created.
+ */
+ void createIdentity(const Identity &identity, const QVariantMap &additional);
+ void createIdentity(const CoreIdentity &identity);
+
+ //! Remove identity and propagate that fact to the clients.
+ /** \param identity The identity to be removed.
+ */
+ void removeIdentity(IdentityId identity);
+
+ //! Create a network and propagate the changes to the clients.
+ /** \param info The network's settings.
+ */
+ void createNetwork(const NetworkInfo &info, const QStringList &persistentChannels = QStringList());
+
+ //! Remove network and propagate that fact to the clients.
+ /** \param network The id of the network to be removed.
+ */
+ void removeNetwork(NetworkId network);
+
+ //! Rename a Buffer for a given network
+ /* \param networkId The id of the network the buffer belongs to
+ * \param newName The new name of the buffer
+ * \param oldName The old name of the buffer
+ */
+ void renameBuffer(const NetworkId &networkId, const QString &newName, const QString &oldName);
+
+ void changePassword(PeerPtr peer, const QString &userName, const QString &oldPassword, const QString &newPassword);
+
+ void kickClient(int peerId);
+
+ QHash<QString, QString> persistentChannels(NetworkId) const;
+
+ QHash<QString, QByteArray> bufferCiphers(NetworkId id) const;
+ void setBufferCipher(NetworkId id, const QString &bufferName, const QByteArray &cipher) const;
+
+ /**
+ * Marks us away (or unaway) on all networks
+ *
+ * @param[in] msg Away message, or blank to set unaway
+ * @param[in] skipFormatting If true, skip timestamp formatting codes (e.g. if already done)
+ */
+ void globalAway(const QString &msg = QString(), const bool skipFormatting = false);
+
+signals:
+ void initialized();
+ void sessionState(const Protocol::SessionState &sessionState);
+
+ //void msgFromGui(uint netid, QString buf, QString message);