diff options
author | Jude Melton-Houghton <jwmhjwmh@gmail.com> | 2022-10-19 14:16:57 -0400 |
---|---|---|
committer | Loïc Blot <nerzhul@users.noreply.github.com> | 2022-11-10 18:56:48 +0100 |
commit | aaa05f901adddebf2435890edcbe03fe3e501771 (patch) | |
tree | 187afc29f1c3bc36bb1e7ddc9b95c8e46d48c200 /src/database/database-postgresql.h | |
parent | 9dbac989bd0fb22de8bd882a788c827a7a3bc2e1 (diff) | |
download | minetest-aaa05f901adddebf2435890edcbe03fe3e501771.tar.xz |
Add mod storage PostgreSQL backend
Diffstat (limited to 'src/database/database-postgresql.h')
-rw-r--r-- | src/database/database-postgresql.h | 24 |
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(); +}; |