Luanti 5.15.0-dev
 
Loading...
Searching...
No Matches
database.h
Go to the documentation of this file.
1// Luanti
2// SPDX-License-Identifier: LGPL-2.1-or-later
3// Copyright (C) 2013 celeron55, Perttu Ahola <celeron55@gmail.com>
4
5#pragma once
6
7#include <string>
8#include <string_view>
9#include <vector>
10#include "irr_v3d.h"
11#include "irrlichttypes.h"
12#include "util/string.h"
13
15{
16public:
17 virtual void beginSave() = 0;
18 virtual void endSave() = 0;
19
21 virtual bool initialized() const { return true; }
22
24 virtual void verifyDatabase() {};
25};
26
27class MapDatabase : public Database
28{
29public:
30 virtual ~MapDatabase() = default;
31
32 virtual bool saveBlock(const v3s16 &pos, std::string_view data) = 0;
33 virtual void loadBlock(const v3s16 &pos, std::string *block) = 0;
34 virtual bool deleteBlock(const v3s16 &pos) = 0;
35
36 static s64 getBlockAsInteger(const v3s16 &pos);
37 static v3s16 getIntegerAsBlock(s64 i);
38
39 virtual void listAllLoadableBlocks(std::vector<v3s16> &dst) = 0;
40};
41
42class PlayerSAO;
43class RemotePlayer;
44
46{
47public:
48 virtual ~PlayerDatabase() = default;
49
50 virtual void savePlayer(RemotePlayer *player) = 0;
51 virtual bool loadPlayer(RemotePlayer *player, PlayerSAO *sao) = 0;
52 virtual bool removePlayer(const std::string &name) = 0;
53 virtual void listPlayers(std::vector<std::string> &res) = 0;
54};
55
57{
58 u64 id;
59 std::string name;
60 std::string password;
61 std::vector<std::string> privileges;
63};
64
66{
67public:
68 virtual ~AuthDatabase() = default;
69
70 virtual bool getAuth(const std::string &name, AuthEntry &res) = 0;
71 virtual bool saveAuth(const AuthEntry &authEntry) = 0;
72 virtual bool createAuth(AuthEntry &authEntry) = 0;
73 virtual bool deleteAuth(const std::string &name) = 0;
74 virtual void listNames(std::vector<std::string> &res) = 0;
75 virtual void reload() = 0;
76};
77
79{
80public:
81 virtual ~ModStorageDatabase() = default;
82
83 virtual void getModEntries(const std::string &modname, StringMap *storage) = 0;
84 virtual void getModKeys(const std::string &modname, std::vector<std::string> *storage) = 0;
85 virtual bool hasModEntry(const std::string &modname, const std::string &key) = 0;
86 virtual bool getModEntry(const std::string &modname,
87 const std::string &key, std::string *value) = 0;
88 virtual bool setModEntry(const std::string &modname,
89 const std::string &key, std::string_view value) = 0;
90 virtual bool removeModEntry(const std::string &modname, const std::string &key) = 0;
91 virtual bool removeModEntries(const std::string &modname) = 0;
92 virtual void listMods(std::vector<std::string> *res) = 0;
93};
Definition database.h:66
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:15
virtual void endSave()=0
virtual void verifyDatabase()
Open and initialize the database if needed.
Definition database.h:24
virtual void beginSave()=0
virtual bool initialized() const
Definition database.h:21
Definition database.h:28
virtual ~MapDatabase()=default
virtual bool saveBlock(const v3s16 &pos, std::string_view data)=0
static v3s16 getIntegerAsBlock(s64 i)
Definition database.cpp:21
static s64 getBlockAsInteger(const v3s16 &pos)
Definition database.cpp:15
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:79
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:46
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:58
Definition remoteplayer.h:27
core::vector3d< s16 > v3s16
Definition irr_v3d.h:13
std::unordered_map< std::string, std::string > StringMap
Definition string.h:66
Definition database.h:57
u64 id
Definition database.h:58
std::vector< std::string > privileges
Definition database.h:61
std::string name
Definition database.h:59
std::string password
Definition database.h:60
s64 last_login
Definition database.h:62