57 return make_error(
"Coordinator already initialized");
69 auto logger_result =
logger_->initialize();
70 if (!logger_result.is_ok())
74 "Logger initialization failed: "
75#
if defined(USE_COMMON_SYSTEM)
76 + logger_result.error().message
78 + logger_result.error().message
90 auto monitor_result =
monitor_->initialize();
91 if (!monitor_result.is_ok())
101 "Monitoring initialization failed: "
102#
if defined(USE_COMMON_SYSTEM)
103 + monitor_result.error().message
105 + monitor_result.error().message
118 if (!thread_result.is_ok())
130 "Thread pool initialization failed: "
131#
if defined(USE_COMMON_SYSTEM)
132 + thread_result.error().message
134 + thread_result.error().message
147 "Database coordinator: All adapters initialized successfully");
151 catch (
const std::exception& e)
167 std::string(
"Exception during initialization: ") + e.what());
172 return make_error(std::string(
"Exception during initialization: ") + e.what());
196 "Database coordinator: Shutting down thread pool");
200 if (!thread_result.is_ok())
205 "Thread pool shutdown warning: "
206#
if defined(USE_COMMON_SYSTEM)
207 + thread_result.error().message
209 + thread_result.error().message
226 "Database coordinator: Shutting down monitoring");
229 auto monitor_result =
monitor_->shutdown();
230 if (!monitor_result.is_ok())
235 "Monitoring shutdown warning: "
236#
if defined(USE_COMMON_SYSTEM)
237 + monitor_result.error().message
239 + monitor_result.error().message
254 "Database coordinator: Shutdown complete");
257 auto logger_result =
logger_->shutdown();
267 catch (
const std::exception& e)
276 return make_error(std::string(
"Exception during shutdown: ") + e.what());
309 bool overall_healthy =
true;
314 overall_healthy =
false;
320 overall_healthy =
false;
324 auto monitor_health =
monitor_->check_health();
325 if (!monitor_health.is_ok())
327 overall_healthy =
false;
338 overall_healthy =
false;
357 auto now = std::chrono::system_clock::now();
359 = std::chrono::duration_cast<std::chrono::milliseconds>(now -
init_time_);
363 stats.
uptime = std::chrono::milliseconds(0);
374 std::unique_ptr<adapters::logger_adapter>
logger_;
375 std::unique_ptr<adapters::monitoring_adapter>
monitor_;
387 : pimpl_(std::make_unique<
impl>(config))
403 return pimpl_->shutdown();
408 return pimpl_->is_initialized();
413 return pimpl_->get_logger();
418 return pimpl_->get_monitor();
423 return pimpl_->get_thread_pool();
428 return pimpl_->check_health();
433 return pimpl_->get_stats();
Unified logging adapter for database operations.
Monitoring adapter for database operations.
Thread pool adapter for async database operations.
adapters::logger_adapter * get_logger()
common::Result< bool > check_health()
common::Result< database_coordinator::coordinator_stats > get_stats() const
adapters::thread_adapter * get_thread_pool()
std::unique_ptr< adapters::thread_adapter > thread_pool_
impl(const unified_db_config &config)
common::VoidResult shutdown()
adapters::monitoring_adapter * get_monitor()
common::VoidResult initialize()
std::unique_ptr< adapters::monitoring_adapter > monitor_
bool is_initialized() const
std::unique_ptr< adapters::logger_adapter > logger_
unified_db_config config_
std::chrono::system_clock::time_point init_time_
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.
std::unique_ptr< impl > pimpl_
adapters::logger_adapter * get_logger()
Get logger adapter.
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.
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.
Lifecycle manager for all database system adapters (Phase 5)
Database logging adapter with runtime backend selection.
Database monitoring adapter with runtime backend selection.
Result< std::monostate > VoidResult
@ warning
Warning conditions.
@ info
Informational messages (default)
kcenon::common::VoidResult VoidResult
Primary VoidResult type - use this for void operations.
Get coordinator statistics.
std::chrono::milliseconds uptime
std::chrono::system_clock::time_point init_time
db_logger_config logger
Logger configuration.
db_monitoring_config monitoring
Monitoring configuration.
db_thread_config thread
Thread pool configuration.
Thread pool adapter with runtime backend selection.