StormByte C++ Library: Database module 0.0.9999
StormByte-Database is a StormByte library module for handling database connections
Loading...
Searching...
No Matches
postgres.hxx
1#pragma once
2
3#include <StormByte/database/database.hxx>
4#include <StormByte/database/postgres/prepared_stmt.hxx>
5
6#include <filesystem>
7#include <memory>
8
9struct pg_conn;
10
15namespace StormByte::Database::Postgres {
20 class STORMBYTE_DATABASE_PUBLIC Postgres: public Database {
21 public:
26 Postgres(const Postgres& db) = delete;
27
32 Postgres(Postgres&& db) noexcept = default;
33
39 Postgres& operator=(const Postgres& db) = delete;
40
46 Postgres& operator=(Postgres&& db) noexcept = default;
47
51 virtual ~Postgres() noexcept;
52
58 ExpectedRows Query(const std::string& query) noexcept override;
59
65 bool SilentQuery(const std::string& query) noexcept override;
66
67 protected:
76 Postgres(const std::string& host, const std::string& user, const std::string& password, const std::string& db_name, std::shared_ptr<Logger::Log> logger);
77
86 Postgres(std::string&& host, std::string&& user, std::string&& password, std::string&& db_name, std::shared_ptr<Logger::Log> logger);
87
88 private:
89 std::string m_host;
90 std::string m_user;
91 std::string m_password;
92 std::string m_dbname;
93 struct pg_conn* m_conn;
94
99 bool DoConnect() noexcept override;
100
104 void DoPreDisconnect() noexcept override;
105
109 void DoDisconnect() noexcept override;
110
117 std::unique_ptr<StormByte::Database::PreparedSTMT> CreatePreparedSTMT(std::string&& name, std::string&& query) noexcept override;
118 };
119}
Postgres(Postgres &&db) noexcept=default
Postgres & operator=(Postgres &&db) noexcept=default
Postgres & operator=(const Postgres &db)=delete
Postgres(const Postgres &db)=delete
Prepared statement for PostgreSQL databases.
Definition prepared_stmt.hxx:16
Contains classes and functions for database operations.
Forward declaration of libpq connection struct.