23 , context_(std::move(context))
29 context_ = std::make_shared<database_context>();
91 return kcenon::common::VoidResult(
92 kcenon::common::error_info{-1,
"No database backend configured",
"database_manager"});
100 auto result =
database_->initialize(config);
113 return kcenon::common::VoidResult(
114 kcenon::common::error_info{-1,
"No database backend",
"database_manager"});
129 return kcenon::common::VoidResult(
130 kcenon::common::error_info{-1,
"No database backend",
"database_manager"});
133 return database_->execute_query(query_string);
140 return kcenon::common::Result<core::database_result>(
141 kcenon::common::error_info{-1,
"No database backend",
"database_manager"});
143 return database_->select_query(query_string);
150 return kcenon::common::VoidResult(
151 kcenon::common::error_info{-1,
"No database backend",
"database_manager"});
153 return database_->execute_query(query_string);
160 return kcenon::common::VoidResult(
161 kcenon::common::error_info{-1,
"No database backend",
"database_manager"});
170 return kcenon::common::VoidResult(
171 kcenon::common::error_info{-1,
"No database backend",
"database_manager"});
180 return kcenon::common::VoidResult(
181 kcenon::common::error_info{-1,
"No database backend",
"database_manager"});
183 return database_->rollback_transaction();
199 return "No database backend";
Registry for database backend plugins.
static std::unique_ptr< database_backend > create()
kcenon::common::VoidResult connect_result(const std::string &connect_string)
Result-based wrapper for connect().
std::map< std::string, std::string > connection_info() const
Get connection information for monitoring.
kcenon::common::VoidResult commit_transaction()
Commit the current transaction.
std::string last_error() const
Get last error message from the backend.
kcenon::common::VoidResult disconnect_result()
Result-based wrapper for disconnect().
bool set_mode(const database_types &database_type)
Sets the database mode (type) for the manager.
std::string connect_string_
Cached connection string for initialization.
query_builder create_query_builder()
Creates a query builder for the current database type.
kcenon::common::VoidResult rollback_transaction()
Rollback the current transaction.
virtual ~database_manager()
Destructor.
std::unique_ptr< core::database_backend > database_
The underlying database backend.
std::shared_ptr< database_context > context_
Dependency injection context.
bool connected_
Indicates whether a database connection is active.
database_types database_type(void)
Retrieves the current database type used by the manager.
kcenon::common::VoidResult begin_transaction()
Begin a database transaction.
bool in_transaction() const
Check if currently in a transaction.
kcenon::common::VoidResult create_query_result(const std::string &query_string)
Result-based wrapper for create_query().
kcenon::common::VoidResult execute_query_result(const std::string &query_string)
Result-based wrapper for execute_query().
database_manager(std::shared_ptr< database_context > context)
kcenon::common::Result< core::database_result > select_query_result(const std::string &query_string)
Execute a SELECT query and return results.
Universal query builder that adapts to different database types.
MongoDB database backend plugin implementation.
database_types
Represents various database backends or modes.
@ none
No specific database type is set.
@ mongodb
Indicates a MongoDB database (future implementation).
@ sqlite
Indicates a SQLite database.
@ redis
Indicates a Redis database (future implementation).
@ postgres
Indicates a PostgreSQL database.
PostgreSQL database backend plugin implementation.
Redis database backend plugin implementation.
SQLite database backend plugin implementation.
static connection_config from_string(const std::string &connect_string)
Construct connection_config from legacy connection string.