Luanti 5.17.0-dev
Loading...
Searching...
No Matches
database-dummy.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 <map>
8#include <set>
9#include <string>
10#include <mutex>
11#include "database.h"
12#include "irrlichttypes.h"
13
15{
16public:
17 bool saveBlock(const v3s16 &pos, std::string_view data);
18 void loadBlock(const v3s16 &pos, std::string *block);
19 bool deleteBlock(const v3s16 &pos);
20 void listAllLoadableBlocks(std::vector<v3s16> &dst);
21
22 void savePlayer(RemotePlayer *player);
23 bool loadPlayer(RemotePlayer *player, PlayerSAO *sao);
24 bool removePlayer(const std::string &name);
25 void listPlayers(std::vector<std::string> &res);
26
27 void getModEntries(const std::string &modname, StringMap *storage);
28 void getModKeys(const std::string &modname, std::vector<std::string> *storage);
29 bool getModEntry(const std::string &modname,
30 const std::string &key, std::string *value);
31 bool hasModEntry(const std::string &modname, const std::string &key);
32 bool setModEntry(const std::string &modname,
33 const std::string &key, std::string_view value);
34 bool removeModEntry(const std::string &modname, const std::string &key);
35 bool removeModEntries(const std::string &modname);
36 void listMods(std::vector<std::string> *res);
37
38 void beginSave() {}
39 void endSave() {}
40
41private:
42 // We could have used 3 mutexes, one per container, but as it's only for testing purposes, one mutex is enough.
43 std::mutex m_mutex;
44 std::map<s64, std::string> m_database;
45 std::set<std::string> m_player_database;
46 std::unordered_map<std::string, StringMap> m_mod_storage_database;
47};
48
49/*
50 * Auth: kept here for completeness, declared alongside the other in-memory
51 * backends.
52 */
54{
55public:
56 AuthDatabaseDummy() = default;
57 virtual ~AuthDatabaseDummy() = default;
58
59 virtual bool getAuth(const std::string &name, AuthEntry &res);
60 virtual bool saveAuth(const AuthEntry &authEntry);
61 virtual bool createAuth(AuthEntry &authEntry);
62 virtual bool deleteAuth(const std::string &name);
63 virtual void listNames(std::vector<std::string> &res);
64 virtual void reload();
65
66private:
67 std::mutex m_mutex;
68 std::unordered_map<std::string, AuthEntry> m_auth_entries;
69 u64 m_next_id = 1;
70};
virtual void listNames(std::vector< std::string > &res)
Definition database-dummy.cpp:231
virtual bool createAuth(AuthEntry &authEntry)
Definition database-dummy.cpp:213
virtual void reload()
Definition database-dummy.cpp:240
u64 m_next_id
Definition database-dummy.h:69
std::mutex m_mutex
Definition database-dummy.h:67
std::unordered_map< std::string, AuthEntry > m_auth_entries
Definition database-dummy.h:68
virtual bool deleteAuth(const std::string &name)
Definition database-dummy.cpp:225
virtual bool saveAuth(const AuthEntry &authEntry)
Definition database-dummy.cpp:197
virtual bool getAuth(const std::string &name, AuthEntry &res)
Definition database-dummy.cpp:185
AuthDatabaseDummy()=default
virtual ~AuthDatabaseDummy()=default
Definition database.h:66
Definition database-dummy.h:15
std::map< s64, std::string > m_database
Definition database-dummy.h:44
bool saveBlock(const v3s16 &pos, std::string_view data)
Definition database-dummy.cpp:13
bool hasModEntry(const std::string &modname, const std::string &key)
Definition database-dummy.cpp:125
void savePlayer(RemotePlayer *player)
Definition database-dummy.cpp:52
void getModKeys(const std::string &modname, std::vector< std::string > *storage)
Definition database-dummy.cpp:95
void listPlayers(std::vector< std::string > &res)
Definition database-dummy.cpp:74
void listMods(std::vector< std::string > *res)
Definition database-dummy.cpp:174
std::set< std::string > m_player_database
Definition database-dummy.h:45
void listAllLoadableBlocks(std::vector< v3s16 > &dst)
Definition database-dummy.cpp:42
bool setModEntry(const std::string &modname, const std::string &key, std::string_view value)
Definition database-dummy.cpp:137
bool deleteBlock(const v3s16 &pos)
Definition database-dummy.cpp:35
void getModEntries(const std::string &modname, StringMap *storage)
Definition database-dummy.cpp:83
void endSave()
Definition database-dummy.h:39
void loadBlock(const v3s16 &pos, std::string *block)
Definition database-dummy.cpp:21
bool removeModEntries(const std::string &modname)
Definition database-dummy.cpp:162
bool loadPlayer(RemotePlayer *player, PlayerSAO *sao)
Definition database-dummy.cpp:59
void beginSave()
Definition database-dummy.h:38
bool getModEntry(const std::string &modname, const std::string &key, std::string *value)
Definition database-dummy.cpp:107
bool removePlayer(const std::string &name)
Definition database-dummy.cpp:66
std::unordered_map< std::string, StringMap > m_mod_storage_database
Definition database-dummy.h:46
bool removeModEntry(const std::string &modname, const std::string &key)
Definition database-dummy.cpp:152
std::mutex m_mutex
Definition database-dummy.h:43
Definition database.h:28
Definition database.h:79
Definition database.h:46
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