summaryrefslogtreecommitdiff
path: root/src/database-sqlite3.h
diff options
context:
space:
mode:
authorIlya Zhuravlev <zhuravlevilya@ya.ru>2012-10-23 01:18:44 +0400
committerSfan5 <sfan5@live.de>2013-09-09 22:50:50 +0200
commit58841ef12f6cba1bb622353c1fcaa0e3c6fb46c9 (patch)
tree6012bbb1905231025dff89aa73782a7c38666839 /src/database-sqlite3.h
parent71a8769bb5ded4acb3f9e5a8502bb8af277f824d (diff)
downloadminetest-58841ef12f6cba1bb622353c1fcaa0e3c6fb46c9.tar.gz
minetest-58841ef12f6cba1bb622353c1fcaa0e3c6fb46c9.tar.bz2
minetest-58841ef12f6cba1bb622353c1fcaa0e3c6fb46c9.zip
Add dummy and LevelDB database backends
Diffstat (limited to 'src/database-sqlite3.h')
-rw-r--r--src/database-sqlite3.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/database-sqlite3.h b/src/database-sqlite3.h
new file mode 100644
index 000000000..83b0d2a55
--- /dev/null
+++ b/src/database-sqlite3.h
@@ -0,0 +1,43 @@
+#ifndef DATABASE_SQLITE3_HEADER
+#define DATABASE_SQLITE3_HEADER
+
+#include "config.h"
+#include "map.h"
+#include "mapsector.h"
+#include "mapblock.h"
+#include "main.h"
+#include "filesys.h"
+#include "database.h"
+
+extern "C" {
+ #include "sqlite3.h"
+}
+
+class Database_SQLite3 : public Database
+{
+public:
+ Database_SQLite3(ServerMap *map, std::string savedir);
+ virtual void beginSave();
+ virtual void endSave();
+
+ virtual void saveBlock(MapBlock *block);
+ virtual MapBlock* loadBlock(v3s16 blockpos);
+ virtual void listAllLoadableBlocks(core::list<v3s16> &dst);
+ virtual int Initialized(void);
+ ~Database_SQLite3();
+private:
+ ServerMap *srvmap;
+ std::string m_savedir;
+ sqlite3 *m_database;
+ sqlite3_stmt *m_database_read;
+ sqlite3_stmt *m_database_write;
+ sqlite3_stmt *m_database_list;
+
+ // Create the database structure
+ void createDatabase();
+ // Verify we can read/write to the database
+ void verifyDatabase();
+ void createDirs(std::string path);
+};
+
+#endif