Minetest 5.9.0-dev
 
Loading...
Searching...
No Matches
database.h
Go to the documentation of this file.
1/*
2Minetest
3Copyright (C) 2013 celeron55, Perttu Ahola <celeron55@gmail.com>
4
5This program is free software; you can redistribute it and/or modify
6it under the terms of the GNU Lesser General Public License as published by
7the Free Software Foundation; either version 2.1 of the License, or
8(at your option) any later version.
9
10This program is distributed in the hope that it will be useful,
11but WITHOUT ANY WARRANTY; without even the implied warranty of
12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13GNU Lesser General Public License for more details.
14
15You should have received a copy of the GNU Lesser General Public License along
16with this program; if not, write to the Free Software Foundation, Inc.,
1751 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18*/
19
20#pragma once
21
22#include <string>
23#include <string_view>
24#include <vector>
25#include "irr_v3d.h"
26#include "irrlichttypes.h"
27#include "util/string.h"
28
30{
31public:
32 virtual void beginSave() = 0;
33 virtual void endSave() = 0;
34 virtual bool initialized() const { return true; }
35};
36
37class MapDatabase : public Database
38{
39public:
40 virtual ~MapDatabase() = default;
41
42 virtual bool saveBlock(const v3s16 &pos, std::string_view data) = 0;
43 virtual void loadBlock(const v3s16 &pos, std::string *block) = 0;
44 virtual bool deleteBlock(const v3s16 &pos) = 0;
45
46 static s64 getBlockAsInteger(const v3s16 &pos);
47 static v3s16 getIntegerAsBlock(s64 i);
48
49 virtual void listAllLoadableBlocks(std::vector<v3s16> &dst) = 0;
50};
51
52class PlayerSAO;
53class RemotePlayer;
54
56{
57public:
58 virtual ~PlayerDatabase() = default;
59
60 virtual void savePlayer(RemotePlayer *player) = 0;
61 virtual bool loadPlayer(RemotePlayer *player, PlayerSAO *sao) = 0;
62 virtual bool removePlayer(const std::string &name) = 0;
63 virtual void listPlayers(std::vector<std::string> &res) = 0;
64};
65
67{
68 u64 id;
69 std::string name;
70 std::string password;
71 std::vector<std::string> privileges;
73};
74
76{
77public:
78 virtual ~AuthDatabase() = default;
79
80 virtual bool getAuth(const std::string &name, AuthEntry &res) = 0;
81 virtual bool saveAuth(const AuthEntry &authEntry) = 0;
82 virtual bool createAuth(AuthEntry &authEntry) = 0;
83 virtual bool deleteAuth(const std::string &name) = 0;
84 virtual void listNames(std::vector<std::string> &res) = 0;
85 virtual void reload() = 0;
86};
87
89{
90public:
91 virtual ~ModStorageDatabase() = default;
92
93 virtual void getModEntries(const std::string &modname, StringMap *storage) = 0;
94 virtual void getModKeys(const std::string &modname, std::vector<std::string> *storage) = 0;
95 virtual bool hasModEntry(const std::string &modname, const std::string &key) = 0;
96 virtual bool getModEntry(const std::string &modname,
97 const std::string &key, std::string *value) = 0;
98 virtual bool setModEntry(const std::string &modname,
99 const std::string &key, std::string_view value) = 0;
100 virtual bool removeModEntry(const std::string &modname, const std::string &key) = 0;
101 virtual bool removeModEntries(const std::string &modname) = 0;
102 virtual void listMods(std::vector<std::string> *res) = 0;
103};
Definition: database.h:76
virtual void listNames(std::vector< std::string > &res)=0
virtual bool saveAuth(const AuthEntry &authEntry)=0
virtual bool createAuth(AuthEntry &authEntry)=0
virtual ~AuthDatabase()=default
virtual bool getAuth(const std::string &name, AuthEntry &res)=0
virtual void reload()=0
virtual bool deleteAuth(const std::string &name)=0
Definition: database.h:30
virtual void endSave()=0
virtual void beginSave()=0
virtual bool initialized() const
Definition: database.h:34
Definition: database.h:38
virtual ~MapDatabase()=default
virtual bool saveBlock(const v3s16 &pos, std::string_view data)=0
static v3s16 getIntegerAsBlock(s64 i)
Definition: database.cpp:59
static s64 getBlockAsInteger(const v3s16 &pos)
Definition: database.cpp:51
virtual void listAllLoadableBlocks(std::vector< v3s16 > &dst)=0
virtual bool deleteBlock(const v3s16 &pos)=0
virtual void loadBlock(const v3s16 &pos, std::string *block)=0
Definition: database.h:89
virtual void getModEntries(const std::string &modname, StringMap *storage)=0
virtual void listMods(std::vector< std::string > *res)=0
virtual bool hasModEntry(const std::string &modname, const std::string &key)=0
virtual bool setModEntry(const std::string &modname, const std::string &key, std::string_view value)=0
virtual ~ModStorageDatabase()=default
virtual bool removeModEntry(const std::string &modname, const std::string &key)=0
virtual bool getModEntry(const std::string &modname, const std::string &key, std::string *value)=0
virtual void getModKeys(const std::string &modname, std::vector< std::string > *storage)=0
virtual bool removeModEntries(const std::string &modname)=0
Definition: database.h:56
virtual bool removePlayer(const std::string &name)=0
virtual void listPlayers(std::vector< std::string > &res)=0
virtual ~PlayerDatabase()=default
virtual bool loadPlayer(RemotePlayer *player, PlayerSAO *sao)=0
virtual void savePlayer(RemotePlayer *player)=0
Definition: player_sao.h:71
Definition: remoteplayer.h:40
core::vector3d< s16 > v3s16
Definition: irr_v3d.h:28
std::unordered_map< std::string, std::string > StringMap
Definition: string.h:78
Definition: database.h:67
u64 id
Definition: database.h:68
std::vector< std::string > privileges
Definition: database.h:71
std::string name
Definition: database.h:69
std::string password
Definition: database.h:70
s64 last_login
Definition: database.h:72