#ifndef QUERY_SQLITE_CONNECTION_HPP #define QUERY_SQLITE_CONNECTION_HPP #ifdef _MSC_VER #ifdef matador_sqlite_EXPORTS #define MATADOR_SQLITE_API __declspec(dllexport) #else #define MATADOR_SQLITE_API __declspec(dllimport) #endif #pragma warning(disable: 4355) #else #define MATADOR_SQLITE_API #endif #include "matador/sql/connection_impl.hpp" #include namespace matador::backends::sqlite { class sqlite_connection : public matador::sql::connection_impl { public: explicit sqlite_connection(const sql::connection_info &info); void open() override; void close() override; bool is_open() override; std::unique_ptr fetch(const std::string &stmt) override; void prepare(const std::string &stmt) override; size_t execute(const std::string &stmt) override; sql::record describe(const std::string& table) override; private: static int parse_result(void* param, int column_count, char** values, char** columns); private: sqlite3 *sqlite_db_{}; }; } extern "C" { MATADOR_SQLITE_API matador::sql::connection_impl* create_database(const matador::sql::connection_info &info); MATADOR_SQLITE_API void destroy_database(matador::sql::connection_impl *db); } #endif //QUERY_SQLITE_CONNECTION_HPP