]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/database/database.h
Use a database for mod storage (#11763)
[dragonfireclient.git] / src / database / database.h
index b7d5519350441a8e8e37cec08e8cd65319723881..fbb5befea294e289da3e03713735acfb14a78e35 100644 (file)
@@ -25,6 +25,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "irr_v3d.h"
 #include "irrlichttypes.h"
 #include "util/basic_macros.h"
+#include "util/string.h"
 
 class Database
 {
@@ -84,3 +85,15 @@ class AuthDatabase
        virtual void listNames(std::vector<std::string> &res) = 0;
        virtual void reload() = 0;
 };
+
+class ModMetadataDatabase : public Database
+{
+public:
+       virtual ~ModMetadataDatabase() = default;
+
+       virtual bool getModEntries(const std::string &modname, StringMap *storage) = 0;
+       virtual bool setModEntry(const std::string &modname,
+               const std::string &key, const std::string &value) = 0;
+       virtual bool removeModEntry(const std::string &modname, const std::string &key) = 0;
+       virtual void listMods(std::vector<std::string> *res) = 0;
+};