Database System 0.1.0
Advanced C++20 Database System with Multi-Backend Support
Loading...
Searching...
No Matches
database_context.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#include <cstdint>
10
39namespace database
40{
41
42// Forward declarations
43enum class database_types : uint8_t;
44
45namespace monitoring {
47}
48
49namespace orm {
50 class entity_manager;
51}
52
53namespace async {
54 class transaction_coordinator;
55}
56
57namespace security {
59 class access_control;
60 class audit_logger;
61 class security_monitor;
63}
64
80public:
93
98
99 // Delete copy and move to prevent accidental sharing
104
109 inline bool is_initialized() const noexcept {
110 return performance_monitor_ != nullptr;
111 }
112
123 inline std::shared_ptr<monitoring::performance_monitor> get_performance_monitor() const noexcept {
125 }
126
136 inline std::shared_ptr<orm::entity_manager> get_entity_manager() const noexcept {
137 return entity_manager_;
138 }
139
149 inline std::shared_ptr<async::transaction_coordinator> get_transaction_coordinator() const noexcept {
151 }
152
162 inline std::shared_ptr<security::credential_manager> get_credential_manager() const noexcept {
163 return credential_manager_;
164 }
165
175 inline std::shared_ptr<security::access_control> get_access_control() const noexcept {
176 return access_control_;
177 }
178
188 inline std::shared_ptr<security::audit_logger> get_audit_logger() const noexcept {
189 return audit_logger_;
190 }
191
201 inline std::shared_ptr<security::security_monitor> get_security_monitor() const noexcept {
202 return security_monitor_;
203 }
204
214 inline std::shared_ptr<security::encryption_manager> get_encryption_manager() const noexcept {
215 return encryption_manager_;
216 }
217
218private:
220 std::shared_ptr<monitoring::performance_monitor> performance_monitor_;
221
223 std::shared_ptr<orm::entity_manager> entity_manager_;
224
226 std::shared_ptr<async::transaction_coordinator> transaction_coordinator_;
227
229 std::shared_ptr<security::credential_manager> credential_manager_;
230 std::shared_ptr<security::access_control> access_control_;
231 std::shared_ptr<security::audit_logger> audit_logger_;
232 std::shared_ptr<security::security_monitor> security_monitor_;
233 std::shared_ptr<security::encryption_manager> encryption_manager_;
234
236 mutable std::mutex mutex_;
237};
238
239} // namespace database
Dependency injection container for database components.
std::shared_ptr< security::credential_manager > credential_manager_
Security component instances (Sprint 3, Task 3.3)
std::shared_ptr< security::security_monitor > get_security_monitor() const noexcept
Get security monitor instance.
~database_context()
Destructor - ensures clean shutdown.
std::shared_ptr< security::encryption_manager > encryption_manager_
std::shared_ptr< orm::entity_manager > get_entity_manager() const noexcept
Get entity manager instance.
std::shared_ptr< security::security_monitor > security_monitor_
std::shared_ptr< async::transaction_coordinator > get_transaction_coordinator() const noexcept
Get transaction coordinator instance.
std::shared_ptr< security::access_control > get_access_control() const noexcept
Get access control instance.
std::shared_ptr< security::access_control > access_control_
std::shared_ptr< orm::entity_manager > entity_manager_
Entity manager instance (Sprint 3, Task 3.1)
database_context & operator=(const database_context &)=delete
database_context(database_context &&)=delete
std::shared_ptr< monitoring::performance_monitor > get_performance_monitor() const noexcept
Get performance monitor instance.
std::shared_ptr< security::audit_logger > audit_logger_
std::shared_ptr< security::credential_manager > get_credential_manager() const noexcept
Get credential manager instance.
bool is_initialized() const noexcept
Check if context is initialized.
std::shared_ptr< security::audit_logger > get_audit_logger() const noexcept
Get audit logger instance.
database_context(const database_context &)=delete
std::mutex mutex_
Mutex for thread-safe access.
std::shared_ptr< monitoring::performance_monitor > performance_monitor_
Performance monitor instance (Sprint 3, Task 3.2)
database_context()
Default constructor - creates default implementations.
std::shared_ptr< async::transaction_coordinator > transaction_coordinator_
Transaction coordinator instance (Sprint 3, Task 3.1)
database_context & operator=(database_context &&)=delete
std::shared_ptr< security::encryption_manager > get_encryption_manager() const noexcept
Get encryption manager instance.
Main performance monitoring system.
Manages entity metadata and provides factory methods.
Definition entity.h:247
Role-based access control (RBAC) system.
Security audit logging system.
Manages encrypted credential storage and retrieval.
Data encryption and key management.
Real-time security monitoring and alerting.
database_types
Represents various database backends or modes.