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< Query, PreparedSTMT > Class Template Referenceabstract

Abstract database class for database handling. More...

#include <database.hxx>

Inheritance diagram for StormByte::Database::Database< Query, PreparedSTMT >:
Inheritance graph
[legend]

Public Member Functions

 Database ()=default
 
 Database (const Database &)=delete
 
 Database (Database &&)=default
 
Databaseoperator= (const Database &)=delete
 
Databaseoperator= (Database &&)=default
 
virtual ~Database ()=default
 
virtual void Connect ()=0
 
virtual void Disconnect ()=0
 
std::unique_ptr< QueryPrepareQuery (const std::string &query)
 
void SilentQuery (const std::string &query)
 
void PrepareSTMT (const std::string &name, const std::string &query)
 
void PrepareAll (const std::map< std::string, std::string > &queries)
 
PreparedSTMTGetPreparedSTMT (const std::string &name) const
 
virtual void BeginTransaction ()
 
virtual void BeginExclusiveTransaction ()
 
virtual void CommitTransaction ()
 
virtual void RollbackTransaction ()
 
virtual const std::string LastError () const =0
 

Protected Member Functions

virtual std::unique_ptr< PreparedSTMTInternalPrepare (const std::string &name, const std::string &query)=0
 
virtual std::unique_ptr< QueryInternalQuery (const std::string &query)=0
 

Protected Attributes

std::map< std::string, std::unique_ptr< PreparedSTMT > > m_prepared_stmts
 Prepared statements.
 

Detailed Description

template<class Query, class PreparedSTMT>
class StormByte::Database::Database< Query, PreparedSTMT >

Abstract database class for database handling.

Constructor & Destructor Documentation

◆ Database() [1/3]

template<class Query , class PreparedSTMT >
StormByte::Database::Database< Query, PreparedSTMT >::Database ( )
default

Default constructor.

◆ Database() [2/3]

template<class Query , class PreparedSTMT >
StormByte::Database::Database< Query, PreparedSTMT >::Database ( const Database< Query, PreparedSTMT > &  )
delete

Default copy constructor (deleted)

◆ Database() [3/3]

template<class Query , class PreparedSTMT >
StormByte::Database::Database< Query, PreparedSTMT >::Database ( Database< Query, PreparedSTMT > &&  )
default

Default move constructor

◆ ~Database()

template<class Query , class PreparedSTMT >
virtual StormByte::Database::Database< Query, PreparedSTMT >::~Database ( )
virtualdefault

Default destructor.

Member Function Documentation

◆ BeginExclusiveTransaction()

template<class Query , class PreparedSTMT >
virtual void StormByte::Database::Database< Query, PreparedSTMT >::BeginExclusiveTransaction ( )
inlinevirtual

Begins an exclusive transaction

◆ BeginTransaction()

template<class Query , class PreparedSTMT >
virtual void StormByte::Database::Database< Query, PreparedSTMT >::BeginTransaction ( )
inlinevirtual

Begins a transaction

◆ CommitTransaction()

template<class Query , class PreparedSTMT >
virtual void StormByte::Database::Database< Query, PreparedSTMT >::CommitTransaction ( )
inlinevirtual

Commits the transaction

◆ Connect()

template<class Query , class PreparedSTMT >
virtual void StormByte::Database::Database< Query, PreparedSTMT >::Connect ( )
pure virtual

Connects to the database.

Implemented in StormByte::Database::SQLite::SQLite3.

◆ Disconnect()

template<class Query , class PreparedSTMT >
virtual void StormByte::Database::Database< Query, PreparedSTMT >::Disconnect ( )
pure virtual

Disconnects from the database.

Implemented in StormByte::Database::SQLite::SQLite3.

◆ GetPreparedSTMT()

template<class Query , class PreparedSTMT >
PreparedSTMT & StormByte::Database::Database< Query, PreparedSTMT >::GetPreparedSTMT ( const std::string &  name) const
inline

Gets a prepared statement

Parameters
nameThe name of the prepared statement
Returns
The prepared statement

◆ InternalPrepare()

template<class Query , class PreparedSTMT >
virtual std::unique_ptr< PreparedSTMT > StormByte::Database::Database< Query, PreparedSTMT >::InternalPrepare ( const std::string &  name,
const std::string &  query 
)
protectedpure virtual

Prepares a statement

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

◆ InternalQuery()

template<class Query , class PreparedSTMT >
virtual std::unique_ptr< Query > StormByte::Database::Database< Query, PreparedSTMT >::InternalQuery ( const std::string &  query)
protectedpure virtual

Executes a query

Parameters
queryThe query to execute.
Returns
The created query

◆ LastError()

template<class Query , class PreparedSTMT >
virtual const std::string StormByte::Database::Database< Query, PreparedSTMT >::LastError ( ) const
pure virtual

Gets the last error

Returns
The last error

Implemented in StormByte::Database::SQLite::SQLite3.

◆ operator=() [1/2]

template<class Query , class PreparedSTMT >
Database & StormByte::Database::Database< Query, PreparedSTMT >::operator= ( const Database< Query, PreparedSTMT > &  )
delete

Default copy assignment operator (deleted)

◆ operator=() [2/2]

template<class Query , class PreparedSTMT >
Database & StormByte::Database::Database< Query, PreparedSTMT >::operator= ( Database< Query, PreparedSTMT > &&  )
default

Default move assignment operator

◆ PrepareAll()

template<class Query , class PreparedSTMT >
void StormByte::Database::Database< Query, PreparedSTMT >::PrepareAll ( const std::map< std::string, std::string > &  queries)
inline

Prepares all the statements

Parameters
queriesThe queries to prepare

◆ PrepareQuery()

template<class Query , class PreparedSTMT >
std::unique_ptr< Query > StormByte::Database::Database< Query, PreparedSTMT >::PrepareQuery ( const std::string &  query)
inline

Executes a query

Parameters
queryThe query to execute.
Returns
The created query

◆ PrepareSTMT()

template<class Query , class PreparedSTMT >
void StormByte::Database::Database< Query, PreparedSTMT >::PrepareSTMT ( const std::string &  name,
const std::string &  query 
)
inline

Prepares a statement

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

◆ RollbackTransaction()

template<class Query , class PreparedSTMT >
virtual void StormByte::Database::Database< Query, PreparedSTMT >::RollbackTransaction ( )
inlinevirtual

Rolls back the transaction

◆ SilentQuery()

template<class Query , class PreparedSTMT >
void StormByte::Database::Database< Query, PreparedSTMT >::SilentQuery ( const std::string &  query)
inline

Executes a query without returning any result

Parameters
queryThe query to execute.

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