DatabaseConnection class
RAII wrapper for SQLite database connection.
Manages a single SQLite database connection with automatic resource cleanup and thread-safe operations.
Public types
- enum class State { Disconnected, Connected, Error }
- Connection state.
- using ConnectionPtr = std::unique_ptr<sqlite3, std::function<void(sqlite3*)>>
Constructors, destructors, conversion operators
- DatabaseConnection()
- Constructor - creates a closed connection.
- ~DatabaseConnection()
- Destructor - ensures connection is closed.
Public functions
- auto open(const std::string& path, int flags = SQLITE_OPEN_READWRITE|SQLITE_OPEN_CREATE, mode_t file_mode = 0600) -> boost::system::error_code
- Open a database connection with secure file permissions.
- auto check_health() const -> bool
- Check connection health.
- void close()
- Close the database connection.
- auto is_open() const -> bool
- Check if connection is open.
- auto get_state() const -> State
- Get the current connection state.
- auto get() const -> sqlite3*
- Get the raw SQLite connection handle.
- auto execute(const std::string& sql) -> boost::system::error_code
- Execute a simple SQL statement.
- auto begin_transaction() -> boost::system::error_code
- Begin a transaction.
- auto commit() -> boost::system::error_code
- Commit a transaction.
- auto rollback() -> boost::system::error_code
- Rollback a transaction.
- auto get_last_error() const -> std::string
- Get the last error message.
- auto get_last_insert_rowid() const -> sqlite3_int64
- Get the last insert row ID.
- auto get_changes() const -> int
- Get the number of rows changed by last statement.
- auto get_idle_time() const -> std::chrono::steady_clock::duration
- Get time since last activity.
- auto get_connection_string() const -> std::string
- Get the connection string.
- void set_busy_timeout(int ms)
- Set busy timeout.
Function documentation
boost::system::error_code liarsdice:: database:: DatabaseConnection:: open(const std::string& path,
int flags = SQLITE_OPEN_READWRITE|SQLITE_OPEN_CREATE,
mode_t file_mode = 0600)
Open a database connection with secure file permissions.
| Parameters | |
|---|---|
| path | Database file path or URI |
| flags | SQLite open flags |
| file_mode | Unix file permissions (default: 0600 - owner read/write only) |
| Returns | Error code if failed |
bool liarsdice:: database:: DatabaseConnection:: check_health() const
Check connection health.
| Returns | true if connection is healthy |
|---|
bool liarsdice:: database:: DatabaseConnection:: is_open() const
Check if connection is open.
| Returns | true if connected |
|---|
sqlite3* liarsdice:: database:: DatabaseConnection:: get() const
Get the raw SQLite connection handle.
| Returns | SQLite3 pointer (may be null) |
|---|
boost::system::error_code liarsdice:: database:: DatabaseConnection:: execute(const std::string& sql)
Execute a simple SQL statement.
| Parameters | |
|---|---|
| sql | SQL statement to execute |
| Returns | Error code if failed |
boost::system::error_code liarsdice:: database:: DatabaseConnection:: begin_transaction()
Begin a transaction.
| Returns | Error code if failed |
|---|
boost::system::error_code liarsdice:: database:: DatabaseConnection:: commit()
Commit a transaction.
| Returns | Error code if failed |
|---|
boost::system::error_code liarsdice:: database:: DatabaseConnection:: rollback()
Rollback a transaction.
| Returns | Error code if failed |
|---|
std::string liarsdice:: database:: DatabaseConnection:: get_last_error() const
Get the last error message.
| Returns | Error message string |
|---|
sqlite3_int64 liarsdice:: database:: DatabaseConnection:: get_last_insert_rowid() const
Get the last insert row ID.
| Returns | Row ID or 0 if no insert |
|---|
int liarsdice:: database:: DatabaseConnection:: get_changes() const
Get the number of rows changed by last statement.
| Returns | Number of changed rows |
|---|
std::chrono::steady_clock::duration liarsdice:: database:: DatabaseConnection:: get_idle_time() const
Get time since last activity.
| Returns | Duration since last use |
|---|
std::string liarsdice:: database:: DatabaseConnection:: get_connection_string() const
Get the connection string.
| Returns | Connection string used to open database |
|---|
void liarsdice:: database:: DatabaseConnection:: set_busy_timeout(int ms)
Set busy timeout.
| Parameters | |
|---|---|
| ms | Timeout in milliseconds |