|
Database System 0.1.0
Advanced C++20 Database System with Multi-Backend Support
|
Manages database connections and operations. More...
#include <database_manager.h>

Public Member Functions | |
| database_manager (std::shared_ptr< database_context > context) | |
| virtual | ~database_manager () |
| Destructor. | |
| bool | set_mode (const database_types &database_type) |
| Sets the database mode (type) for the manager. | |
| database_types | database_type (void) |
| Retrieves the current database type used by the manager. | |
| query_builder | create_query_builder () |
| Creates a query builder for the current database type. | |
| query_builder | create_query_builder (database_types db_type) |
| Creates a query builder for a specific database type. | |
| kcenon::common::VoidResult | connect_result (const std::string &connect_string) |
| Result-based wrapper for connect(). | |
| kcenon::common::VoidResult | disconnect_result () |
| Result-based wrapper for disconnect(). | |
| kcenon::common::VoidResult | create_query_result (const std::string &query_string) |
| Result-based wrapper for create_query(). | |
| kcenon::common::Result< core::database_result > | select_query_result (const std::string &query_string) |
| Execute a SELECT query and return results. | |
| kcenon::common::VoidResult | execute_query_result (const std::string &query_string) |
| Result-based wrapper for execute_query(). | |
| kcenon::common::VoidResult | begin_transaction () |
| Begin a database transaction. | |
| kcenon::common::VoidResult | commit_transaction () |
| Commit the current transaction. | |
| kcenon::common::VoidResult | rollback_transaction () |
| Rollback the current transaction. | |
| bool | in_transaction () const |
| Check if currently in a transaction. | |
| std::string | last_error () const |
| Get last error message from the backend. | |
| std::map< std::string, std::string > | connection_info () const |
| Get connection information for monitoring. | |
Private Attributes | |
| bool | connected_ |
| Indicates whether a database connection is active. | |
| std::unique_ptr< core::database_backend > | database_ |
| The underlying database backend. | |
| std::shared_ptr< database_context > | context_ |
| Dependency injection context. | |
| std::string | connect_string_ |
| Cached connection string for initialization. | |
Manages database connections and operations.
The database_manager class provides a high-level interface for controlling database connections and executing queries. It wraps a database_backend instance and exposes methods such as connect, disconnect, create_query, execute_query, etc.
Definition at line 37 of file database_manager.h.
|
explicit |
Definition at line 20 of file database_manager.cpp.
References context_.
|
virtual |
Destructor.
Cleans up resources and disconnects from the database if an active connection exists.
Definition at line 33 of file database_manager.cpp.
| kcenon::common::VoidResult database::database_manager::begin_transaction | ( | ) |
Begin a database transaction.
Definition at line 156 of file database_manager.cpp.
References database_.
| kcenon::common::VoidResult database::database_manager::commit_transaction | ( | ) |
Commit the current transaction.
Definition at line 166 of file database_manager.cpp.
References database_.
| kcenon::common::VoidResult database::database_manager::connect_result | ( | const std::string & | connect_string | ) |
Result-based wrapper for connect().
Definition at line 87 of file database_manager.cpp.
References connect_string_, connected_, database_, and database::core::connection_config::from_string().

| std::map< std::string, std::string > database::database_manager::connection_info | ( | ) | const |
Get connection information for monitoring.
Definition at line 204 of file database_manager.cpp.
References database_.
| query_builder database::database_manager::create_query_builder | ( | ) |
Creates a query builder for the current database type.
Definition at line 215 of file database_manager.cpp.
References database_type().

| query_builder database::database_manager::create_query_builder | ( | database_types | db_type | ) |
Creates a query builder for a specific database type.
| db_type | The database type to create a builder for |
Definition at line 220 of file database_manager.cpp.
| kcenon::common::VoidResult database::database_manager::create_query_result | ( | const std::string & | query_string | ) |
Result-based wrapper for create_query().
Definition at line 125 of file database_manager.cpp.
References database_.
| database_types database::database_manager::database_type | ( | void | ) |
Retrieves the current database type used by the manager.
database_types representing the current database mode. Definition at line 77 of file database_manager.cpp.
References database_, and database::none.
Referenced by create_query_builder(), and set_mode().

| kcenon::common::VoidResult database::database_manager::disconnect_result | ( | ) |
Result-based wrapper for disconnect().
Definition at line 109 of file database_manager.cpp.
References connected_, and database_.
| kcenon::common::VoidResult database::database_manager::execute_query_result | ( | const std::string & | query_string | ) |
Result-based wrapper for execute_query().
| query_string | The SQL statement. |
Definition at line 146 of file database_manager.cpp.
References database_.
| bool database::database_manager::in_transaction | ( | ) | const |
Check if currently in a transaction.
Definition at line 186 of file database_manager.cpp.
References database_.
| std::string database::database_manager::last_error | ( | ) | const |
Get last error message from the backend.
Definition at line 195 of file database_manager.cpp.
References database_.
| kcenon::common::VoidResult database::database_manager::rollback_transaction | ( | ) |
Rollback the current transaction.
Definition at line 176 of file database_manager.cpp.
References database_.
| kcenon::common::Result< core::database_result > database::database_manager::select_query_result | ( | const std::string & | query_string | ) |
Execute a SELECT query and return results.
| query_string | The SQL SELECT statement. |
Definition at line 136 of file database_manager.cpp.
References database_.
| bool database::database_manager::set_mode | ( | const database_types & | database_type | ) |
Sets the database mode (type) for the manager.
| database_type | An enum value of database_types that specifies the target database type (e.g., PostgreSQL, SQLite). |
true on success (e.g., if a corresponding database implementation is available), false otherwise. Definition at line 35 of file database_manager.cpp.
References connected_, database::core::backend_base< mongodb_backend, database_types::mongodb >::create(), database::core::backend_base< postgresql_backend, database_types::postgres >::create(), database::core::backend_base< redis_backend, database_types::redis >::create(), database::core::backend_base< sqlite_backend, database_types::sqlite >::create(), database_, database_type(), database::mongodb, database::postgres, database::redis, and database::sqlite.

|
private |
Cached connection string for initialization.
Definition at line 176 of file database_manager.h.
Referenced by connect_result().
|
private |
Indicates whether a database connection is active.
Definition at line 172 of file database_manager.h.
Referenced by connect_result(), disconnect_result(), and set_mode().
|
private |
Dependency injection context.
Definition at line 175 of file database_manager.h.
Referenced by database_manager().
|
private |
The underlying database backend.
Definition at line 174 of file database_manager.h.
Referenced by begin_transaction(), commit_transaction(), connect_result(), connection_info(), create_query_result(), database_type(), disconnect_result(), execute_query_result(), in_transaction(), last_error(), rollback_transaction(), select_query_result(), and set_mode().