X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcore%2Fcore.h;h=7f1f9c20195dad0426663c09a7677c9dbbe51083;hb=016e582df39899c1356e4023ebc5a4b28a2e57ee;hp=091c0f71bbd8a3b9179672e541ee3bd8540811b1;hpb=59579d82e3a16a815a197a4300c8ef279275ccfc;p=quassel.git diff --git a/src/core/core.h b/src/core/core.h index 091c0f71..7f1f9c20 100644 --- a/src/core/core.h +++ b/src/core/core.h @@ -53,15 +53,41 @@ class Core : public QObject { /*** Storage access ***/ // These methods are threadsafe. - //! Create a NetworkId in the Storage and store it in the given NetworkInfo + //! Create a Network in the Storage and store it's Id in the given NetworkInfo /** \note This method is thredsafe. * * \param user The core user * \param networkInfo a NetworkInfo definition to store the newly created ID in * \return true if successfull. */ - static bool createNetworkId(UserId user, NetworkInfo &info); + static bool createNetwork(UserId user, NetworkInfo &info); + //! Apply the changes to NetworkInfo info to the storage engine + /** \note This method is thredsafe. + * + * \param user The core user + * \param networkInfo The Updated NetworkInfo + * \return true if successfull. + */ + static bool updateNetwork(UserId user, const NetworkInfo &info); + + //! Permanently remove a Network and all the data associated with it. + /** \note This method is thredsafe. + * + * \param user The core user + * \param networkId The network to delete + * \return true if successfull. + */ + static bool removeNetwork(UserId user, const NetworkId &networkId); + + //! Returns a list of all NetworkInfos for the given UserId user + /** \note This method is thredsafe. + * + * \param user The core user + * \return QList. + */ + static QList networks(UserId user); + //! Get the NetworkId for a network name. /** \note This method is threadsafe. * @@ -158,11 +184,13 @@ class Core : public QObject { SessionThread *createSession(UserId userId, bool restoreState = false); void setupClientSession(QTcpSocket *socket, UserId uid); - void processCoreSetup(QTcpSocket *socket, QVariantMap &msg); + void processClientMessage(QTcpSocket *socket, const QVariantMap &msg); + //void processCoreSetup(QTcpSocket *socket, QVariantMap &msg); + QString setupCore(const QVariant &setupData); - QStringList availableStorageProviders(); + bool registerStorageBackend(Storage *); + void unregisterStorageBackend(Storage *); - UserId guiUser; QHash sessions; Storage *storage; QTimer _storageSyncTimer; @@ -171,6 +199,8 @@ class Core : public QObject { QHash blocksizes; QHash clientInfo; + QHash _storageBackends; + QDateTime startTime; bool configured;