NGen
Loading...
Searching...
No Matches
ngen::sqlite::database Class Reference

#include <ngen_sqlite.hpp>

+ Collaboration diagram for ngen::sqlite::database:

Classes

struct  deleter
 Deleter used to provide smart pointer support for sqlite3 structs. More...
 
struct  iterator
 

Public Member Functions

 database ()=delete
 
 database (const database &)=delete
 
databaseoperator= (const database &)=delete
 
 database (database &&)=default
 
databaseoperator= (database &&)=default
 
 ~database ()=default
 
 database (const std::string &path)
 Construct a new sqlite object from a path to database.
 
sqlite3 * connection () const noexcept
 Return the originating sqlite3 database pointer.
 
bool contains (const std::string &table)
 Check if SQLite database contains a given table.
 
iterator query (const std::string &statement, const boost::span< const std::string > binds={})
 Query the SQLite Database and get the result.
 
template<typename... Ts, std::enable_if_t< ngen::traits::all_is_convertible< std::string, Ts... >::value, bool > = true>
iterator query (const std::string &statement, const Ts &... params)
 Query the SQLite Database with a bound statement and get the result.
 

Private Types

using sqlite_t = std::unique_ptr<sqlite3, deleter>
 
using stmt_t = std::unique_ptr<sqlite3_stmt, deleter>
 

Private Attributes

sqlite_t conn_ = nullptr
 

Member Typedef Documentation

◆ sqlite_t

using ngen::sqlite::database::sqlite_t = std::unique_ptr<sqlite3, deleter>
private

◆ stmt_t

using ngen::sqlite::database::stmt_t = std::unique_ptr<sqlite3_stmt, deleter>
private

Constructor & Destructor Documentation

◆ database() [1/4]

ngen::sqlite::database::database ( )
delete

◆ database() [2/4]

ngen::sqlite::database::database ( const database & )
delete

◆ database() [3/4]

ngen::sqlite::database::database ( database && )
default

◆ ~database()

ngen::sqlite::database::~database ( )
default

◆ database() [4/4]

ngen::sqlite::database::database ( const std::string & path)
explicit

Construct a new sqlite object from a path to database.

Parameters
pathFile path to sqlite3 database

References conn_.

Member Function Documentation

◆ connection()

auto ngen::sqlite::database::connection ( ) const
noexcept

Return the originating sqlite3 database pointer.

Returns
sqlite3*

References conn_.

Referenced by query().

◆ contains()

auto ngen::sqlite::database::contains ( const std::string & table)

Check if SQLite database contains a given table.

Parameters
tablename of table
Returns
true if table does exist
false if table does not exist

References query().

◆ operator=() [1/2]

database & ngen::sqlite::database::operator= ( const database & )
delete

◆ operator=() [2/2]

database & ngen::sqlite::database::operator= ( database && )
default

◆ query() [1/2]

auto ngen::sqlite::database::query ( const std::string & statement,
const boost::span< const std::string > binds = {} )

Query the SQLite Database and get the result.

Parameters
statementString query with parameters
bindstext parameters to bind to statement
Returns
SQLite row iterator

References connection().

Referenced by contains(), and query().

◆ query() [2/2]

template<typename... Ts, std::enable_if_t< ngen::traits::all_is_convertible< std::string, Ts... >::value, bool > = true>
iterator ngen::sqlite::database::query ( const std::string & statement,
const Ts &... params )
inline

Query the SQLite Database with a bound statement and get the result.

Parameters
statementString query with parameters
paramsparameters to bind to statement
Returns
SQLite row iterator

References query().

Member Data Documentation

◆ conn_

sqlite_t ngen::sqlite::database::conn_ = nullptr
private

Referenced by database(), and connection().


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