80ba028a486b7156290e3ed2856e2f0030d41778
[oweals/minetest.git] / src / database-sqlite3.h
1 #ifndef DATABASE_SQLITE3_HEADER
2 #define DATABASE_SQLITE3_HEADER
3
4 #include "config.h"
5 #include "map.h"
6 #include "mapsector.h"
7 #include "mapblock.h"
8 #include "main.h"
9 #include "filesys.h"
10 #include "database.h"
11
12 extern "C" {
13         #include "sqlite3.h"
14 }
15
16 class Database_SQLite3 : public Database
17 {
18 public:
19         Database_SQLite3(ServerMap *map, std::string savedir);
20         virtual void beginSave();
21         virtual void endSave();
22
23         virtual void saveBlock(MapBlock *block);
24         virtual MapBlock* loadBlock(v3s16 blockpos);
25         virtual void listAllLoadableBlocks(std::list<v3s16> &dst);
26         virtual int Initialized(void);
27         ~Database_SQLite3();
28 private:
29         ServerMap *srvmap;
30         std::string m_savedir;
31         sqlite3 *m_database;
32         sqlite3_stmt *m_database_read;
33         sqlite3_stmt *m_database_write;
34         sqlite3_stmt *m_database_list;
35
36         // Create the database structure
37         void createDatabase();
38         // Verify we can read/write to the database
39         void verifyDatabase();
40         void createDirs(std::string path);
41 };
42
43 #endif