From 29ab20c27229672c24a7699afbcd54caad903331 Mon Sep 17 00:00:00 2001 From: Loïc Blot Date: Sun, 23 Apr 2017 14:35:08 +0200 Subject: Player data to Database (#5475) * Player data to Database Add player data into databases (SQLite3 & PG only) PostgreSQL & SQLite: better POO Design for databases Add --migrate-players argument to server + deprecation warning * Remove players directory if empty --- src/database-files.h | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/database-files.h (limited to 'src/database-files.h') diff --git a/src/database-files.h b/src/database-files.h new file mode 100644 index 000000000..d23069c2a --- /dev/null +++ b/src/database-files.h @@ -0,0 +1,46 @@ +/* +Minetest +Copyright (C) 2017 nerzhul, Loic Blot + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + +#ifndef DATABASE_FILES_HEADER +#define DATABASE_FILES_HEADER + +// !!! WARNING !!! +// This backend is intended to be used on Minetest 0.4.16 only for the transition backend for +// player files + +#include "database.h" + +class PlayerDatabaseFiles : public PlayerDatabase +{ +public: + PlayerDatabaseFiles(const std::string &savedir) : m_savedir(savedir) {} + virtual ~PlayerDatabaseFiles() {} + + void savePlayer(RemotePlayer *player); + bool loadPlayer(RemotePlayer *player, PlayerSAO *sao); + bool removePlayer(const std::string &name); + void listPlayers(std::vector &res); + +private: + void serialize(std::ostringstream &os, RemotePlayer *player); + + std::string m_savedir; +}; + +#endif -- cgit v1.2.3 From d7ddceac730393e7a66980ad21630a05b7e291c4 Mon Sep 17 00:00:00 2001 From: Loic Blot Date: Sun, 23 Apr 2017 16:22:53 +0200 Subject: Fix lint since recent player to db merge --- src/database-files.cpp | 4 ++-- src/database-files.h | 4 ++-- src/remoteplayer.h | 1 + util/travis/clang-format-whitelist.txt | 2 ++ 4 files changed, 7 insertions(+), 4 deletions(-) (limited to 'src/database-files.h') diff --git a/src/database-files.cpp b/src/database-files.cpp index 08a1f2d03..3b130f91b 100644 --- a/src/database-files.cpp +++ b/src/database-files.cpp @@ -27,8 +27,8 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "filesys.h" // !!! WARNING !!! -// This backend is intended to be used on Minetest 0.4.16 only for the transition backend for -// player files +// This backend is intended to be used on Minetest 0.4.16 only for the transition backend +// for player files void PlayerDatabaseFiles::serialize(std::ostringstream &os, RemotePlayer *player) { diff --git a/src/database-files.h b/src/database-files.h index d23069c2a..888362249 100644 --- a/src/database-files.h +++ b/src/database-files.h @@ -21,8 +21,8 @@ with this program; if not, write to the Free Software Foundation, Inc., #define DATABASE_FILES_HEADER // !!! WARNING !!! -// This backend is intended to be used on Minetest 0.4.16 only for the transition backend for -// player files +// This backend is intended to be used on Minetest 0.4.16 only for the transition backend +// for player files #include "database.h" diff --git a/src/remoteplayer.h b/src/remoteplayer.h index ce7db5608..4b96835fc 100644 --- a/src/remoteplayer.h +++ b/src/remoteplayer.h @@ -38,6 +38,7 @@ enum RemotePlayerChatResult class RemotePlayer : public Player { friend class PlayerDatabaseFiles; + public: RemotePlayer(const char *name, IItemDefManager *idef); virtual ~RemotePlayer() {} diff --git a/util/travis/clang-format-whitelist.txt b/util/travis/clang-format-whitelist.txt index e9ff56cf5..9f5612b78 100644 --- a/util/travis/clang-format-whitelist.txt +++ b/util/travis/clang-format-whitelist.txt @@ -51,11 +51,13 @@ src/craftdef.cpp src/craftdef.h src/database.cpp src/database-dummy.cpp +src/database-files.cpp src/database-leveldb.cpp src/database-postgresql.cpp src/database-postgresql.h src/database-redis.cpp src/database-sqlite3.cpp +src/database-sqlite3.h src/daynightratio.h src/debug.cpp src/debug.h -- cgit v1.2.3