X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcore%2Fstorage.h;h=84d77556c1a3b7199dcba7add1be02c2f860f86b;hb=8f237cecca9a6353bc4d150b4b55719a6bf37476;hp=649bdc46bfe3e4b47fc321e5dadd374ca9b46717;hpb=0c9cd0eef379e1d3e10a75cc8506a7e65f95fd67;p=quassel.git diff --git a/src/core/storage.h b/src/core/storage.h index 649bdc46..84d77556 100644 --- a/src/core/storage.h +++ b/src/core/storage.h @@ -25,7 +25,7 @@ #include "types.h" #include "message.h" -struct NetworkInfo; +#include "network.h" class Storage : public QObject { Q_OBJECT @@ -109,13 +109,39 @@ class Storage : public QObject { /* Network handling */ - //! Create a new unique Network in the storage backend + //! Create a new Network in the storage backend and return it unique Id /** \param user The core user who owns this network * \param networkInfo The networkInfo holding the network definition * \return the NetworkId of the newly created Network. Possibly invalid. */ - virtual NetworkId createNetworkId(UserId user, const NetworkInfo &info) = 0; + virtual NetworkId createNetwork(UserId user, const NetworkInfo &info) = 0; + //! 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. + */ + virtual bool updateNetwork(UserId user, const NetworkInfo &info) = 0; + + //! 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. + */ + virtual bool removeNetwork(UserId user, const NetworkId &networkId) = 0; + + //! Returns a list of all NetworkInfos for the given UserId user + /** \note This method is thredsafe. + * + * \param user The core user + * \return QList. + */ + virtual QList networks(UserId user) = 0; + //! Get the unique NetworkId of the network for a user. /** \param user The core user who owns this network * \param network The network name @@ -126,12 +152,13 @@ class Storage : public QObject { /* Buffer handling */ //! Get the unique BufferInfo for the given combination of network and buffername for a user. - /** \param user The core user who owns this buffername - * \param network The network name + /** \param user The core user who owns this buffername + * \param networkId The network id + * \param type The type of the buffer (StatusBuffer, Channel, etc.) * \param buffer The buffer name (if empty, the net's status buffer is returned) * \return The BufferInfo corresponding to the given network and buffer name, or 0 if not found */ - virtual BufferInfo getBufferInfo(UserId user, const NetworkId &networkId, const QString &buffer = "") = 0; + virtual BufferInfo getBufferInfo(UserId user, const NetworkId &networkId, BufferInfo::Type type, const QString &buffer = "") = 0; //! Request a list of all buffers known to a user since a certain point in time. /** This method is used to get a list of all buffers we have stored a backlog from.