aboutsummaryrefslogtreecommitdiff
path: root/src/database/database-postgresql.h
diff options
context:
space:
mode:
authorJude Melton-Houghton <jwmhjwmh@gmail.com>2022-10-19 14:16:57 -0400
committerLoïc Blot <nerzhul@users.noreply.github.com>2022-11-10 18:56:48 +0100
commitaaa05f901adddebf2435890edcbe03fe3e501771 (patch)
tree187afc29f1c3bc36bb1e7ddc9b95c8e46d48c200 /src/database/database-postgresql.h
parent9dbac989bd0fb22de8bd882a788c827a7a3bc2e1 (diff)
downloadminetest-aaa05f901adddebf2435890edcbe03fe3e501771.tar.xz
Add mod storage PostgreSQL backend
Diffstat (limited to 'src/database/database-postgresql.h')
-rw-r--r--src/database/database-postgresql.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/database/database-postgresql.h b/src/database/database-postgresql.h
index 0a9ead01e..22269d362 100644
--- a/src/database/database-postgresql.h
+++ b/src/database/database-postgresql.h
@@ -169,3 +169,27 @@ protected:
private:
virtual void writePrivileges(const AuthEntry &authEntry);
};
+
+class ModMetadataDatabasePostgreSQL : private Database_PostgreSQL, public ModMetadataDatabase
+{
+public:
+ ModMetadataDatabasePostgreSQL(const std::string &connect_string);
+ ~ModMetadataDatabasePostgreSQL() = default;
+
+ bool getModEntries(const std::string &modname, StringMap *storage);
+ bool getModKeys(const std::string &modname, std::vector<std::string> *storage);
+ bool getModEntry(const std::string &modname, const std::string &key, std::string *value);
+ bool hasModEntry(const std::string &modname, const std::string &key);
+ bool setModEntry(const std::string &modname,
+ const std::string &key, const std::string &value);
+ bool removeModEntry(const std::string &modname, const std::string &key);
+ bool removeModEntries(const std::string &modname);
+ void listMods(std::vector<std::string> *res);
+
+ void beginSave() { Database_PostgreSQL::beginSave(); }
+ void endSave() { Database_PostgreSQL::endSave(); }
+
+protected:
+ virtual void createDatabase();
+ virtual void initStatements();
+};