X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fstorage.h;h=649bdc46bfe3e4b47fc321e5dadd374ca9b46717;hp=6470b40506bb71200233d378c0f95fe4f8f4868e;hb=0c9cd0eef379e1d3e10a75cc8506a7e65f95fd67;hpb=43159be08b173c4c1c973eb3ea26cdaae191fc2f diff --git a/src/core/storage.h b/src/core/storage.h index 6470b405..649bdc46 100644 --- a/src/core/storage.h +++ b/src/core/storage.h @@ -42,32 +42,36 @@ class Storage : public QObject { * prerequisites are in place (e.g. we have an appropriate DB driver etc.). * \return True if and only if the storage class can be successfully used. */ - static bool isAvailable() { return false; } + virtual bool isAvailable() const = 0; //! Returns the display name of the storage backend - /** \return A string that can be used by the GUI to describe the storage backend */ - static QString displayName() { return ""; } + /** \return A string that can be used by the client to name the storage backend */ + virtual QString displayName() const = 0; + + //! Returns a description of this storage backend + /** \return A string that can be displayed by the client to describe the storage backend */ + virtual QString description() const = 0; //! Setup the storage provider. /** This prepares the storage provider (e.g. create tables, etc.) for use within Quassel. * \param settings Hostname, port, username, password, ... * \return True if and only if the storage provider was initialized successfully. */ - virtual bool setup(const QVariantMap &settings = QVariantMap()) { Q_UNUSED(settings); return false; } - + virtual bool setup(const QVariantMap &settings = QVariantMap()) = 0; + //! Initialize the storage provider /** \param settings Hostname, port, username, password, ... * \return True if and only if the storage provider was initialized successfully. */ virtual bool init(const QVariantMap &settings = QVariantMap()) = 0; - //! Makes temp data persistent - /** This Method is periodically called by the Quassel Core to make temporary - * data persistant. This reduces the data loss drastically in the - * unlikely case of a Core crash. - */ + //! Makes temp data persistent + /** This Method is periodically called by the Quassel Core to make temporary + * data persistant. This reduces the data loss drastically in the + * unlikely case of a Core crash. + */ virtual void sync() = 0; - + // TODO: Add functions for configuring the backlog handling, i.e. defining auto-cleanup settings etc /* User handling */