LCOV - code coverage report
Current view: top level - src - database-sqlite3.h (source / functions) Hit Total Coverage
Test: report Lines: 0 1 0.0 %
Date: 2015-07-11 18:23:49 Functions: 0 1 0.0 %

          Line data    Source code
       1             : /*
       2             : Minetest
       3             : Copyright (C) 2013 celeron55, Perttu Ahola <celeron55@gmail.com>
       4             : 
       5             : This program is free software; you can redistribute it and/or modify
       6             : it under the terms of the GNU Lesser General Public License as published by
       7             : the Free Software Foundation; either version 2.1 of the License, or
       8             : (at your option) any later version.
       9             : 
      10             : This program is distributed in the hope that it will be useful,
      11             : but WITHOUT ANY WARRANTY; without even the implied warranty of
      12             : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      13             : GNU Lesser General Public License for more details.
      14             : 
      15             : You should have received a copy of the GNU Lesser General Public License along
      16             : with this program; if not, write to the Free Software Foundation, Inc.,
      17             : 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
      18             : */
      19             : 
      20             : #ifndef DATABASE_SQLITE3_HEADER
      21             : #define DATABASE_SQLITE3_HEADER
      22             : 
      23             : #include "database.h"
      24             : #include <string>
      25             : 
      26             : extern "C" {
      27             :         #include "sqlite3.h"
      28             : }
      29             : 
      30             : class Database_SQLite3 : public Database
      31             : {
      32             : public:
      33             :         Database_SQLite3(const std::string &savedir);
      34             : 
      35             :         virtual void beginSave();
      36             :         virtual void endSave();
      37             : 
      38             :         virtual bool saveBlock(const v3s16 &pos, const std::string &data);
      39             :         virtual std::string loadBlock(const v3s16 &pos);
      40             :         virtual bool deleteBlock(const v3s16 &pos);
      41             :         virtual void listAllLoadableBlocks(std::vector<v3s16> &dst);
      42           0 :         virtual bool initialized() const { return m_initialized; }
      43             :         ~Database_SQLite3();
      44             : 
      45             : private:
      46             :         // Open the database
      47             :         void openDatabase();
      48             :         // Create the database structure
      49             :         void createDatabase();
      50             :         // Open and initialize the database if needed
      51             :         void verifyDatabase();
      52             : 
      53             :         void bindPos(sqlite3_stmt *stmt, const v3s16 &pos, int index=1);
      54             : 
      55             :         bool m_initialized;
      56             : 
      57             :         std::string m_savedir;
      58             : 
      59             :         sqlite3 *m_database;
      60             :         sqlite3_stmt *m_stmt_read;
      61             :         sqlite3_stmt *m_stmt_write;
      62             :         sqlite3_stmt *m_stmt_list;
      63             :         sqlite3_stmt *m_stmt_delete;
      64             :         sqlite3_stmt *m_stmt_begin;
      65             :         sqlite3_stmt *m_stmt_end;
      66             : };
      67             : 
      68             : #endif
      69             : 

Generated by: LCOV version 1.11