Database System 0.1.0
Advanced C++20 Database System with Multi-Backend Support
Loading...
Searching...
No Matches
database_manager.h
Go to the documentation of this file.
1// BSD 3-Clause License
2// Copyright (c) 2025, 🍀☀🌕🌥 🌊
3// See the LICENSE file in the project root for full license information.
4
5#pragma once
6
7#include <memory>
8#include <mutex>
9
10// Use unified Result<T> implementation from common_system
11#include <kcenon/common/patterns/result.h>
15
16#include "query_builder.h"
17
18
19namespace database
20{
38 {
39 public:
56 explicit database_manager(std::shared_ptr<database_context> context);
57
64 virtual ~database_manager();
65
77
85
86
93
101
105 kcenon::common::VoidResult connect_result(const std::string& connect_string);
106
110 kcenon::common::VoidResult disconnect_result();
111
115 kcenon::common::VoidResult create_query_result(const std::string& query_string);
116
117 // Result-based query methods
118
124 kcenon::common::Result<core::database_result> select_query_result(const std::string& query_string);
125
131 kcenon::common::VoidResult execute_query_result(const std::string& query_string);
132
133 // Transaction support (new API)
134
139 kcenon::common::VoidResult begin_transaction();
140
145 kcenon::common::VoidResult commit_transaction();
146
151 kcenon::common::VoidResult rollback_transaction();
152
157 bool in_transaction() const;
158
163 std::string last_error() const;
164
169 std::map<std::string, std::string> connection_info() const;
170
171 private:
173 std::unique_ptr<core::database_backend>
175 std::shared_ptr<database_context> context_;
176 std::string connect_string_;
177
178 };
179} // namespace database
Registry for database backend plugins.
Manages database connections and operations.
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.
Abstract interface for database backends.
Dependency injection container for database system components.
database_types
Represents various database backends or modes.