X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fcore.h;h=021d9c94164963b5160ce9c02b2641b903b50e3a;hp=efbefa690730bc3ea231f48b74b45c46a29b9cab;hb=00e1a9c29e792ba4d65dba21b7ba04131bcb13bc;hpb=41b33277b11c69ae0138e8b463a4c695e9a80d14 diff --git a/src/core/core.h b/src/core/core.h index efbefa69..021d9c94 100644 --- a/src/core/core.h +++ b/src/core/core.h @@ -69,6 +69,12 @@ public: void init(); + /** + * Shuts down active core sessions, saves state and emits the shutdownComplete() signal afterwards. + */ + void shutdown(); + + /*** Storage access ***/ // These methods are threadsafe. @@ -704,6 +710,9 @@ signals: //! Emitted when a fatal error was encountered during async initialization void exitRequested(int exitCode, const QString &reason); + //! Emitted once core shutdown is complete + void shutdownComplete(); + public slots: void initAsync(); @@ -747,6 +756,8 @@ private slots: bool changeUserPass(const QString &username); + void onSessionShutdown(SessionThread *session); + private: SessionThread *sessionForUser(UserId userId, bool restoreState = false); void addClientHelper(RemotePeer *peer, UserId uid);