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 | Protected Attributes | List of all members
StormByte::Database::Database Class Referenceabstract

Abstract database class for database handling. More...

#include <database.hxx>

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

Public Member Functions

 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 ExpectedRows Query (const std::string &query)=0
 
virtual bool SilentQuery (const std::string &query) noexcept=0
 
virtual void BeginTransaction ()
 
virtual void BeginExclusiveTransaction ()
 
virtual void CommitTransaction ()
 
virtual void RollbackTransaction ()
 

Protected Member Functions

virtual void DoPreConnect () noexcept
 Pre-connect action Default is a noop.
 
virtual bool DoConnect () noexcept=0
 Connects to the database.
 
virtual void DoPostConnect () noexcept
 Post-connect action Default is a noop.
 
virtual void DoPreDisconnect () noexcept
 Pre-disconnect action Default is a noop.
 
virtual void DoDisconnect () noexcept=0
 Disconnects from the database.
 
virtual void DoPostDisconnect () noexcept
 Post-disconnect action Default is a noop.
 
virtual std::unique_ptr< PreparedSTMTCreatePreparedSTMT (std::string &&name, std::string &&query) noexcept=0
 Creates a prepared statement.
 
void PrepareSTMT (std::string &&name, std::string &&query) noexcept
 

Protected Attributes

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

Abstract database class for database handling.

Constructor & Destructor Documentation

◆ Database() [1/2]

StormByte::Database::Database::Database ( const Database other)
delete

Default copy constructor (deleted)

Parameters
otherOther Database to copy from

◆ Database() [2/2]

StormByte::Database::Database::Database ( Database &&  other)
default

Default move constructor.

Parameters
otherOther Database to move from

Member Function Documentation

◆ BeginExclusiveTransaction()

virtual void StormByte::Database::Database::BeginExclusiveTransaction ( )
inlinevirtual

Begins an exclusive transaction

◆ BeginTransaction()

virtual void StormByte::Database::Database::BeginTransaction ( )
inlinevirtual

Begins a transaction

◆ CommitTransaction()

virtual void StormByte::Database::Database::CommitTransaction ( )
inlinevirtual

Commits the transaction

◆ CreatePreparedSTMT()

virtual std::unique_ptr< PreparedSTMT > StormByte::Database::Database::CreatePreparedSTMT ( std::string &&  name,
std::string &&  query 
)
protectedpure virtualnoexcept

Creates a prepared statement.

Parameters
nameThe name of the prepared statement
queryThe query to prepare
Returns
The created prepared statement

◆ DoConnect()

virtual bool StormByte::Database::Database::DoConnect ( )
protectedpure virtualnoexcept

Connects to the database.

Returns
true if connection was successful, false otherwise

◆ ExecuteSTMT()

template<typename... Args>
ExpectedRows StormByte::Database::Database::ExecuteSTMT ( const std::string &  name,
Args &&...  args 
)
inline

Executes a prepared statement

Template Parameters
ArgsTypes of the arguments
Parameters
nameThe name of the prepared statement
argsArguments to bind and execute
Returns
Resulting rows

◆ IsConnected()

bool StormByte::Database::Database::IsConnected ( ) const
inlinenoexcept

Checks if the database is connected.

Returns
true if connected, false otherwise

◆ operator=() [1/2]

Database & StormByte::Database::Database::operator= ( const Database other)
delete

Default copy assignment operator (deleted)

Parameters
otherOther Database to copy from
Returns
Reference to this Database

◆ operator=() [2/2]

Database & StormByte::Database::Database::operator= ( Database &&  other)
default

Default move assignment operator.

Parameters
otherOther Database to move from
Returns
Reference to this Database

◆ PrepareSTMT()

void StormByte::Database::Database::PrepareSTMT ( std::string &&  name,
std::string &&  query 
)
protectednoexcept

Prepares a statement

Parameters
nameThe name of the prepared statement
queryThe query to prepare
Returns
The created prepared statement

◆ Query()

virtual ExpectedRows StormByte::Database::Database::Query ( const std::string &  query)
pure virtual

Executes a query

Parameters
queryThe query to execute.
Returns
The created query

Implemented in StormByte::Database::MariaDB::MariaDB, StormByte::Database::Postgres::Postgres, and StormByte::Database::SQLite::SQLite3.

◆ RollbackTransaction()

virtual void StormByte::Database::Database::RollbackTransaction ( )
inlinevirtual

Rolls back the transaction

◆ SilentQuery()

virtual bool StormByte::Database::Database::SilentQuery ( const std::string &  query)
pure virtualnoexcept

Executes a query without returning any result

Parameters
queryThe query to execute.
Returns
True if the query was executed successfully

Implemented in StormByte::Database::MariaDB::MariaDB, StormByte::Database::Postgres::Postgres, and StormByte::Database::SQLite::SQLite3.


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