diff options
author | Konstantin Käfer <mail@kkaefer.com> | 2018-08-14 13:04:00 -0700 |
---|---|---|
committer | Konstantin Käfer <mail@kkaefer.com> | 2018-08-14 17:03:46 -0700 |
commit | 084c28f0bb3969aaa09078c278f08f83e389eda2 (patch) | |
tree | 45764b677e5ac2cb2245d0bf193a222f08cd60db /platform/default/sqlite3.hpp | |
parent | 6e06e55b95fdb9070d32d44786441255871dbb0b (diff) | |
download | qtlocation-mapboxgl-084c28f0bb3969aaa09078c278f08f83e389eda2.tar.gz |
[core] recreate offline database when it is deleted out from under our feet
Diffstat (limited to 'platform/default/sqlite3.hpp')
-rw-r--r-- | platform/default/sqlite3.hpp | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/platform/default/sqlite3.hpp b/platform/default/sqlite3.hpp index 612e92acc6..16f76a0d1a 100644 --- a/platform/default/sqlite3.hpp +++ b/platform/default/sqlite3.hpp @@ -15,7 +15,7 @@ enum OpenFlag : int { ReadWriteCreate = 0b110, }; -enum class ResultCode : int { +enum class ResultCode : uint8_t { OK = 0, Error = 1, Internal = 2, @@ -40,24 +40,25 @@ enum class ResultCode : int { NoLFS = 22, Auth = 23, Range = 25, - NotADB = 26 + NotADB = 26, +}; + +enum class ExtendedResultCode : uint8_t { + Unknown = 0, + ReadOnlyDBMoved = 4, }; class Exception : public std::runtime_error { public: - Exception(int err, const char* msg) - : std::runtime_error(msg), code(static_cast<ResultCode>(err)) { - } - Exception(ResultCode err, const char* msg) - : std::runtime_error(msg), code(err) { - } + Exception(ResultCode err, const char* msg) : Exception(static_cast<int>(err), msg) {} + Exception(int err, const char* msg) : Exception(err, std::string{ msg }) {} Exception(int err, const std::string& msg) - : std::runtime_error(msg), code(static_cast<ResultCode>(err)) { - } - Exception(ResultCode err, const std::string& msg) - : std::runtime_error(msg), code(err) { + : std::runtime_error(msg), + code(static_cast<ResultCode>(err)), + extendedCode(static_cast<ExtendedResultCode>(err >> 8)) { } const ResultCode code = ResultCode::OK; + const ExtendedResultCode extendedCode = ExtendedResultCode::Unknown; }; class DatabaseImpl; |