Database System 0.1.0
Advanced C++20 Database System with Multi-Backend Support
Loading...
Searching...
No Matches
database_coordinator.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
66#pragma once
67
68#include "configuration.h"
69
70#include <memory>
71
72// Conditional Result pattern inclusion
73#include "common_result.h"
74
75// Forward declarations to avoid circular dependencies
76namespace database
77{
78namespace integrated
79{
80namespace adapters
81{
82 class logger_adapter;
83 class monitoring_adapter;
84 class thread_adapter;
85} // namespace adapters
86
99{
100public:
105 explicit database_coordinator(const unified_db_config& config);
106
111
112 // Non-copyable
115
116 // Moveable
119
134
146
151 bool is_initialized() const;
152
157 adapters::logger_adapter* get_logger();
158
163 adapters::monitoring_adapter* get_monitor();
164
169 adapters::thread_adapter* get_thread_pool();
170
181 common::Result<bool> check_health();
182
189 {
194 std::chrono::milliseconds uptime;
195 std::chrono::system_clock::time_point init_time;
196 };
197
199
200private:
204 class impl;
205 std::unique_ptr<impl> pimpl_;
206};
207
208} // namespace integrated
209} // namespace database
Manages lifecycle and coordination of all database system adapters.
common::Result< bool > check_health()
Perform aggregate health check of all adapters.
database_coordinator(const unified_db_config &config)
Construct coordinator with configuration.
database_coordinator(database_coordinator &&) noexcept
adapters::logger_adapter * get_logger()
Get logger adapter.
database_coordinator & operator=(const database_coordinator &)=delete
adapters::thread_adapter * get_thread_pool()
Get thread adapter.
common::Result< coordinator_stats > get_stats() const
common::VoidResult shutdown()
Shutdown all adapters in reverse order.
database_coordinator(const database_coordinator &)=delete
bool is_initialized() const
Check if coordinator is initialized.
common::VoidResult initialize()
Initialize all adapters in correct order.
adapters::monitoring_adapter * get_monitor()
Get monitoring adapter.
~database_coordinator()
Destructor - ensures graceful shutdown.
Common Result<T> pattern for integrated database system.
Unified configuration for integrated database system.
kcenon::common::Result< T > Result
Primary Result type - use this for all database operations.
Definition result.h:30
kcenon::common::VoidResult VoidResult
Primary VoidResult type - use this for void operations.
Definition result.h:33