From 66fd99a8831955034cb25c8468ecfe1f9d3a7d62 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 15 Jan 2020 23:28:23 +0100 Subject: Address review comments for https://github.com/OSGeo/PROJ/pull/1817 --- src/sqlite3.hpp | 127 -------------------------------------------------------- 1 file changed, 127 deletions(-) delete mode 100644 src/sqlite3.hpp (limited to 'src/sqlite3.hpp') diff --git a/src/sqlite3.hpp b/src/sqlite3.hpp deleted file mode 100644 index ef141d1f..00000000 --- a/src/sqlite3.hpp +++ /dev/null @@ -1,127 +0,0 @@ -/****************************************************************************** - * Project: PROJ - * Purpose: SQLite3 related utilities - * Author: Even Rouault, - * - ****************************************************************************** - * Copyright (c) 2019, Even Rouault, - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - *****************************************************************************/ - -#ifndef SQLITE3_HPP_INCLUDED -#define SQLITE3_HPP_INCLUDED - -#include - -#include - -#include "proj.h" -#include "proj/util.hpp" - -NS_PROJ_START - -//! @cond Doxygen_Suppress - -class SQLite3VFS { - sqlite3_vfs *vfs_ = nullptr; - - explicit SQLite3VFS(sqlite3_vfs *vfs); - - SQLite3VFS(const SQLite3VFS &) = delete; - SQLite3VFS &operator=(const SQLite3VFS &) = delete; - - public: - ~SQLite3VFS(); - - static std::unique_ptr create(bool fakeSync, bool fakeLock, - bool skipStatJournalAndWAL); - const char *name() const; - sqlite3_vfs *raw() { return vfs_; } -}; - -// --------------------------------------------------------------------------- - -class SQLiteStatement { - sqlite3_stmt *hStmt = nullptr; - int iBindIdx = 1; - int iResIdx = 0; - SQLiteStatement(const SQLiteStatement &) = delete; - SQLiteStatement &operator=(const SQLiteStatement &) = delete; - - public: - explicit SQLiteStatement(sqlite3_stmt *hStmtIn); - ~SQLiteStatement() { sqlite3_finalize(hStmt); } - - int execute() { return sqlite3_step(hStmt); } - - void bindNull() { - sqlite3_bind_null(hStmt, iBindIdx); - iBindIdx++; - } - - void bindText(const char *txt) { - sqlite3_bind_text(hStmt, iBindIdx, txt, -1, nullptr); - iBindIdx++; - } - - void bindInt64(sqlite3_int64 v) { - sqlite3_bind_int64(hStmt, iBindIdx, v); - iBindIdx++; - } - - void bindBlob(const void *blob, size_t blob_size) { - sqlite3_bind_blob(hStmt, iBindIdx, blob, static_cast(blob_size), - nullptr); - iBindIdx++; - } - - const char *getText() { - auto ret = sqlite3_column_text(hStmt, iResIdx); - iResIdx++; - return reinterpret_cast(ret); - } - - sqlite3_int64 getInt64() { - auto ret = sqlite3_column_int64(hStmt, iResIdx); - iResIdx++; - return ret; - } - - const void *getBlob(int &size) { - size = sqlite3_column_bytes(hStmt, iResIdx); - auto ret = sqlite3_column_blob(hStmt, iResIdx); - iResIdx++; - return ret; - } - - void reset() { - sqlite3_reset(hStmt); - iBindIdx = 1; - iResIdx = 0; - } - - void resetResIndex() { iResIdx = 0; } -}; - -//! @endcond Doxygen_Suppress - -NS_PROJ_END - -#endif // SQLITE3_HPP_INCLUDED -- cgit v1.2.3