diff options
author | Bruno de Oliveira Abinader <bruno@mapbox.com> | 2017-01-03 18:49:52 -0400 |
---|---|---|
committer | Bruno de Oliveira Abinader <bruno@mapbox.com> | 2017-01-23 19:06:53 +0200 |
commit | 97b433edc99f5b7212915aab483e119f60fde101 (patch) | |
tree | ddbc208040b64d56610626480850447c6e4c5f79 /platform/default/sqlite3.hpp | |
parent | fbe0320c9cff014f2a4d4f2c5f3a85531078b501 (diff) | |
download | qtlocation-mapboxgl-97b433edc99f5b7212915aab483e119f60fde101.tar.gz |
[core] Private implementation for SQLite interface
Diffstat (limited to 'platform/default/sqlite3.hpp')
-rw-r--r-- | platform/default/sqlite3.hpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/platform/default/sqlite3.hpp b/platform/default/sqlite3.hpp index 8e4a4b971e..dac7b6f650 100644 --- a/platform/default/sqlite3.hpp +++ b/platform/default/sqlite3.hpp @@ -4,9 +4,7 @@ #include <vector> #include <stdexcept> #include <chrono> - -typedef struct sqlite3 sqlite3; -typedef struct sqlite3_stmt sqlite3_stmt; +#include <memory> namespace mapbox { namespace sqlite { @@ -27,7 +25,9 @@ struct Exception : std::runtime_error { const int code = 0; }; +class DatabaseImpl; class Statement; +class StatementImpl; class Database { private: @@ -42,7 +42,6 @@ public: explicit operator bool() const; - static void errorLogCallback(void *arg, const int err, const char *msg); void setBusyTimeout(std::chrono::milliseconds); void exec(const std::string &sql); Statement prepare(const char *query); @@ -51,7 +50,9 @@ public: uint64_t changes() const; private: - sqlite3 *db = nullptr; + std::unique_ptr<DatabaseImpl> impl; + + friend class Statement; }; class Statement { @@ -62,7 +63,7 @@ private: void check(int err); public: - Statement(sqlite3 *db, const char *sql); + Statement(Database *db, const char *sql); Statement(Statement &&); ~Statement(); Statement &operator=(Statement &&); @@ -86,7 +87,7 @@ public: void clearBindings(); private: - sqlite3_stmt *stmt = nullptr; + std::unique_ptr<StatementImpl> impl; }; class Transaction { |