StormByte C++ Library: Database module 0.0.9999
StormByte-Database is a StormByte library module for handling database connections
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | List of all members
StormByte::Database::Postgres::Postgres Class Reference

PostgreSQL database implementation. More...

#include <postgres.hxx>

Inheritance diagram for StormByte::Database::Postgres::Postgres:
Inheritance graph
[legend]
Collaboration diagram for StormByte::Database::Postgres::Postgres:
Collaboration graph
[legend]

Public Member Functions

 Postgres (const Postgres &db)=delete
 
 Postgres (Postgres &&db) noexcept=default
 
Postgresoperator= (const Postgres &db)=delete
 
Postgresoperator= (Postgres &&db) noexcept=default
 
virtual ~Postgres () noexcept
 
ExpectedRows Query (const std::string &query) noexcept override
 
bool SilentQuery (const std::string &query) noexcept override
 
- Public Member Functions inherited from StormByte::Database::Database
 Database (std::shared_ptr< Logger::Log > logger) noexcept
 Default constructor.
 
 Database (const Database &other)=delete
 Default copy constructor (deleted)
 
 Database (Database &&other)=default
 Default move constructor.
 
Databaseoperator= (const Database &other)=delete
 Default copy assignment operator (deleted)
 
Databaseoperator= (Database &&other)=default
 Default move assignment operator.
 
virtual ~Database ()=default
 Default destructor.
 
bool Connect () noexcept
 Connects to the database.
 
virtual void Disconnect () noexcept
 Disconnects from the database.
 
bool IsConnected () const noexcept
 Checks if the database is connected.
 
template<typename... Args>
ExpectedRows ExecuteSTMT (const std::string &name, Args &&... args)
 
virtual void BeginTransaction ()
 
virtual void BeginExclusiveTransaction ()
 
virtual void CommitTransaction ()
 
virtual void RollbackTransaction ()
 

Protected Member Functions

 Postgres (const std::string &host, const std::string &user, const std::string &password, const std::string &db_name, std::shared_ptr< Logger::Log > logger)
 
 Postgres (std::string &&host, std::string &&user, std::string &&password, std::string &&db_name, std::shared_ptr< Logger::Log > logger)
 
- Protected Member Functions inherited from StormByte::Database::Database
virtual void DoPreConnect () noexcept
 Pre-connect action Default is a noop.
 
virtual void DoPostConnect () noexcept
 Post-connect action Default is a noop.
 
virtual void DoPostDisconnect () noexcept
 Post-disconnect action Default is a noop.
 
void PrepareSTMT (std::string &&name, std::string &&query) noexcept
 

Additional Inherited Members

- Protected Attributes inherited from StormByte::Database::Database
std::shared_ptr< Logger::Log > m_logger
 Logger instance.
 
std::unordered_map< std::string, std::unique_ptr< PreparedSTMT > > m_prepared_stmts
 Prepared statements.
 
bool m_connected
 Connection state.
 

Detailed Description

PostgreSQL database implementation.

Constructor & Destructor Documentation

◆ Postgres() [1/4]

StormByte::Database::Postgres::Postgres::Postgres ( const Postgres db)
delete

Default copy constructor (deleted)

Parameters
dbOther Postgres database to copy from

◆ Postgres() [2/4]

StormByte::Database::Postgres::Postgres::Postgres ( Postgres &&  db)
defaultnoexcept

Default move constructor

Parameters
dbOther Postgres database to move from

◆ ~Postgres()

virtual StormByte::Database::Postgres::Postgres::~Postgres ( )
virtualnoexcept

Destructor

◆ Postgres() [3/4]

StormByte::Database::Postgres::Postgres::Postgres ( const std::string &  host,
const std::string &  user,
const std::string &  password,
const std::string &  db_name,
std::shared_ptr< Logger::Log >  logger 
)
protected

Constructor

Parameters
hostThe database host
userThe database user
passwordThe database password
db_nameThe database name
loggerLogger instance

◆ Postgres() [4/4]

StormByte::Database::Postgres::Postgres::Postgres ( std::string &&  host,
std::string &&  user,
std::string &&  password,
std::string &&  db_name,
std::shared_ptr< Logger::Log >  logger 
)
protected

Constructor moving strings

Parameters
hostThe database host
userThe database user
passwordThe database password
db_nameThe database name
loggerLogger instance

Member Function Documentation

◆ operator=() [1/2]

Postgres & StormByte::Database::Postgres::Postgres::operator= ( const Postgres db)
delete

Default copy assignment operator (deleted)

Parameters
dbOther Postgres database to copy from
Returns
Reference to this Postgres database

◆ operator=() [2/2]

Postgres & StormByte::Database::Postgres::Postgres::operator= ( Postgres &&  db)
defaultnoexcept

Default move assignment operator

Parameters
dbOther Postgres database to move from
Returns
Reference to this Postgres database

◆ Query()

ExpectedRows StormByte::Database::Postgres::Postgres::Query ( const std::string &  query)
overridevirtualnoexcept

Executes a query on the database

Parameters
queryThe query to execute
Returns
The resulting rows or an error

Implements StormByte::Database::Database.

◆ SilentQuery()

bool StormByte::Database::Postgres::Postgres::SilentQuery ( const std::string &  query)
overridevirtualnoexcept

Executes a query on the database without returning results

Parameters
queryThe query to execute
Returns
true on success, false on failure

Implements StormByte::Database::Database.


The documentation for this class was generated from the following file: