StormByte C++ Library: Database module 0.0.9999
StormByte-Database is a StormByte library module for handling database connections
Loading...
Searching...
No Matches
sqlite3.hxx
1#pragma once
2
3#include <StormByte/database/database.hxx>
4#include <StormByte/database/sqlite/prepared_stmt.hxx>
5
6#include <filesystem>
7#include <list>
8#include <map>
9#include <memory>
10
11class sqlite3; // Forward declaration so we don't have to depend on sqlite3 headers
12
17namespace StormByte::Database::SQLite {
22 class STORMBYTE_DATABASE_PUBLIC SQLite3: public Database {
23 public:
27 SQLite3(const SQLite3& db) = delete;
28
32 SQLite3(SQLite3&& db) noexcept = default;
33
37 SQLite3& operator=(const SQLite3& db) = delete;
38
42 SQLite3& operator=(SQLite3&& db) noexcept = default;
43
47 virtual ~SQLite3() noexcept;
48
54 ExpectedRows Query(const std::string& query) noexcept override;
55
61 bool SilentQuery(const std::string& query) noexcept override;
62
63 protected:
67 SQLite3(std::shared_ptr<Logger::Log> logger) noexcept;
68
73 SQLite3(const std::filesystem::path& dbfile, std::shared_ptr<Logger::Log> logger);
74
79 SQLite3(std::filesystem::path&& dbfile, std::shared_ptr<Logger::Log>&& logger);
80
84 void EnableForeignKeys();
85
86 private:
90 std::filesystem::path m_database_file;
91
96 sqlite3* m_database;
97
102 bool DoConnect() noexcept override;
103
107 void DoPreDisconnect() noexcept override;
108
112 void DoDisconnect() noexcept override;
113
117 void DoPostDisconnect() noexcept override;
118
125 std::unique_ptr<StormByte::Database::PreparedSTMT> CreatePreparedSTMT(std::string&& name, std::string&& query) noexcept override;
126 };
127}
Prepared statement for SQLite.
Definition prepared_stmt.hxx:16
SQLite3 database class.
Definition sqlite3.hxx:22
SQLite3 & operator=(const SQLite3 &db)=delete
SQLite3(SQLite3 &&db) noexcept=default
SQLite3(const SQLite3 &db)=delete
SQLite3 & operator=(SQLite3 &&db) noexcept=default
Contains classes and functions for database operations.