Database System 0.1.0
Advanced C++20 Database System with Multi-Backend Support
Loading...
Searching...
No Matches
database::integrated Namespace Reference

Namespaces

namespace  adapters
 

Classes

class  connection_string_builder
 Fluent builder for constructing database connection strings. More...
 
struct  database_config
 Database-specific configuration. More...
 
class  database_coordinator
 Manages lifecycle and coordination of all database system adapters. More...
 
struct  database_metrics
 Database performance metrics. More...
 
struct  db_logger_config
 Logger configuration. More...
 
struct  db_monitoring_config
 Monitoring and metrics configuration. More...
 
struct  db_thread_config
 Thread pool configuration for async operations. More...
 
struct  health_check
 Health check result. More...
 
struct  pool_config
 Connection pool configuration. More...
 
struct  query_param
 
struct  query_result
 Query result set. More...
 
class  transaction
 Transaction interface for ACID operations. More...
 
class  transaction_impl
 
class  unified_database_system
 Main unified database system class. More...
 
struct  unified_db_config
 

Typedefs

using row_data = std::map<std::string, std::string>
 Database row representation.
 
using database = unified_database_system
 Convenience alias for unified database system.
 

Enumerations

enum class  ssl_mode {
  disable , allow , prefer , require ,
  verify_ca , verify_full
}
 SSL connection mode for database connections. More...
 
enum class  db_log_level {
  trace , debug , info , warning ,
  error , critical , fatal
}
 Database logging level enumeration. More...
 
enum class  backend_type { postgres , sqlite , mongodb , redis }
 Database backend type enumeration. More...
 
enum class  thread_pool_type { standard , typed }
 Thread pool implementation type. More...
 
enum class  health_status { healthy , degraded , critical , failed }
 Database health status. More...
 

Functions

static std::string backend_type_to_name (backend_type type)
 Convert backend_type to registry name string.
 
static std::shared_ptr< core::database_backendcreate_backend (backend_type type)
 Create database backend instance.
 
static std::string value_to_string (const core::database_value &value)
 Convert database_value (variant) to string.
 
static query_result convert_result (const core::database_result &db_result, std::chrono::microseconds exec_time)
 Convert core::database_result to query_result.
 
std::unique_ptr< unified_database_systemcreate_database ()
 Create a database with zero configuration.
 
kcenon::common::Result< std::unique_ptr< unified_database_system > > create_database (backend_type backend, const std::string &connection_string)
 Create a database with builder configuration.
 

Typedef Documentation

◆ database

◆ row_data

using database::integrated::row_data = std::map<std::string, std::string>

Enumeration Type Documentation

◆ backend_type

Database backend type enumeration.

Specifies which database backend to use.

Enumerator
postgres 

PostgreSQL database.

sqlite 

SQLite embedded database.

mongodb 

MongoDB NoSQL database.

redis 

Redis key-value store.

Examples
/home/runner/work/database_system/database_system/database/integrated/unified_database_system.h.

Definition at line 65 of file configuration.h.

66{
67 postgres,
68 sqlite,
69 mongodb,
70 redis
71};
@ mongodb
Indicates a MongoDB database (future implementation).
@ sqlite
Indicates a SQLite database.
@ redis
Indicates a Redis database (future implementation).
@ postgres
Indicates a PostgreSQL database.

◆ db_log_level

Database logging level enumeration.

Defines the verbosity level for database operation logging. Lower levels include higher levels (e.g., debug includes info, warning, error).

Enumerator
trace 

Most verbose, includes all operations.

debug 

Debug information for development.

info 

Informational messages (default)

warning 

Warning conditions.

error 

Error conditions.

critical 

Critical failures requiring immediate attention.

fatal 

Fatal errors causing system shutdown.

Examples
/home/runner/work/database_system/database_system/database/integrated/unified_database_system.h.

Definition at line 49 of file configuration.h.

50{
51 trace,
52 debug,
53 info,
54 warning,
55 error,
56 critical,
57 fatal
58};
@ trace
Most verbose, includes all operations.
@ critical
Critical failures requiring immediate attention.
@ debug
Debug information for development.
@ info
Informational messages (default)
@ fatal
Fatal errors causing system shutdown.

◆ health_status

Database health status.

Enumerator
healthy 
degraded 
critical 
failed 
Examples
/home/runner/work/database_system/database_system/database/integrated/unified_database_system.h.

Definition at line 158 of file unified_database_system.h.

158 {
159 healthy, // All systems operational
160 degraded, // Some issues, but operational
161 critical, // Major issues, limited functionality
162 failed // System not operational
163};

◆ ssl_mode

enum class database::integrated::ssl_mode
strong

SSL connection mode for database connections.

Enumerator
disable 

No SSL.

allow 

Try SSL, fall back to non-SSL.

prefer 

Try SSL first, fall back to non-SSL.

require 

Require SSL, no verification.

verify_ca 

Require SSL with CA verification.

verify_full 

Require SSL with full verification.

Examples
/home/runner/work/database_system/database_system/database/integrated/connection_string_builder.h.

Definition at line 57 of file connection_string_builder.h.

57 {
58 disable,
59 allow,
60 prefer,
61 require,
62 verify_ca,
64};
@ prefer
Try SSL first, fall back to non-SSL.
@ verify_ca
Require SSL with CA verification.
@ allow
Try SSL, fall back to non-SSL.
@ verify_full
Require SSL with full verification.
@ require
Require SSL, no verification.

◆ thread_pool_type

Thread pool implementation type.

Determines which thread pool implementation to use for async operations.

Enumerator
standard 

Standard thread pool (default)

typed 

Typed thread pool with priority support.

Definition at line 78 of file configuration.h.

79{
80 standard,
81 typed
82};
@ typed
Typed thread pool with priority support.
@ standard
Standard thread pool (default)

Function Documentation

◆ backend_type_to_name()

static std::string database::integrated::backend_type_to_name ( backend_type type)
static

Convert backend_type to registry name string.

Definition at line 53 of file unified_database_system.cpp.

53 {
54 switch (type) {
55 case backend_type::postgres: return "postgresql";
56 case backend_type::sqlite: return "sqlite";
57 case backend_type::mongodb: return "mongodb";
58 case backend_type::redis: return "redis";
59 default: return "";
60 }
61}

References mongodb, postgres, redis, and sqlite.

Referenced by create_backend().

Here is the caller graph for this function:

◆ convert_result()

static query_result database::integrated::convert_result ( const core::database_result & db_result,
std::chrono::microseconds exec_time )
static

Convert core::database_result to query_result.

Definition at line 111 of file unified_database_system.cpp.

113 {
114
115 query_result result;
116 result.rows.reserve(db_result.size());
117
118 // Convert each row: map<string, database_value> -> map<string, string>
119 for (const auto& db_row : db_result) {
120 row_data converted_row;
121 for (const auto& [key, value] : db_row) {
122 converted_row[key] = value_to_string(value);
123 }
124 result.rows.push_back(std::move(converted_row));
125 }
126
127 result.affected_rows = db_result.size();
128 result.execution_time = exec_time;
129
130 return result;
131}
std::map< std::string, std::string > row_data
Database row representation.
static std::string value_to_string(const core::database_value &value)
Convert database_value (variant) to string.

References database::integrated::query_result::affected_rows, database::integrated::query_result::execution_time, database::integrated::query_result::rows, and value_to_string().

Referenced by database::integrated::transaction_impl::execute(), and database::integrated::unified_database_system::impl::execute().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ create_backend()

static std::shared_ptr< core::database_backend > database::integrated::create_backend ( backend_type type)
static

Create database backend instance.

First tries hardcoded backends, then falls back to backend_registry for dynamically registered backends (including test stubs).

Definition at line 69 of file unified_database_system.cpp.

69 {
70 switch (type) {
71 case backend_type::postgres:
72 return std::make_shared<postgres_manager>();
73 default: {
74 // Fall back to backend_registry for other types
75 auto name = backend_type_to_name(type);
76 if (!name.empty()) {
77 auto backend = core::backend_registry::instance().create(name);
78 if (backend) {
79 return std::shared_ptr<core::database_backend>(std::move(backend));
80 }
81 }
82 return nullptr;
83 }
84 }
85}
static std::string backend_type_to_name(backend_type type)
Convert backend_type to registry name string.

References backend_type_to_name(), database::core::backend_registry::create(), database::core::backend_registry::instance(), and postgres.

Referenced by database::integrated::unified_database_system::impl::connect().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ create_database() [1/2]

std::unique_ptr< unified_database_system > database::integrated::create_database ( )
inline

Create a database with zero configuration.

Returns
Unique pointer to database system
Examples
/home/runner/work/database_system/database_system/database/integrated/unified_database_system.h.

Definition at line 647 of file unified_database_system.h.

647 {
648 return std::make_unique<unified_database_system>();
649}

◆ create_database() [2/2]

kcenon::common::Result< std::unique_ptr< unified_database_system > > database::integrated::create_database ( backend_type backend,
const std::string & connection_string )
inline

Create a database with builder configuration.

Parameters
backendDatabase backend type
connection_stringConnection string
Returns
Result containing configured database system or error

Definition at line 657 of file unified_database_system.h.

659 {
660
661 return unified_database_system::create_builder()
662 .set_backend(backend)
663 .set_connection_string(connection_string)
664 .build();
665}

References database::integrated::unified_database_system::builder::build(), database::integrated::unified_database_system::create_builder(), database::integrated::unified_database_system::builder::set_backend(), and database::integrated::unified_database_system::builder::set_connection_string().

Here is the call graph for this function:

◆ value_to_string()

static std::string database::integrated::value_to_string ( const core::database_value & value)
static

Convert database_value (variant) to string.

Definition at line 90 of file unified_database_system.cpp.

90 {
91 return std::visit([](const auto& v) -> std::string {
92 using T = std::decay_t<decltype(v)>;
93 if constexpr (std::is_same_v<T, std::string>) {
94 return v;
95 } else if constexpr (std::is_same_v<T, int64_t>) {
96 return std::to_string(v);
97 } else if constexpr (std::is_same_v<T, double>) {
98 return std::to_string(v);
99 } else if constexpr (std::is_same_v<T, bool>) {
100 return v ? "true" : "false";
101 } else if constexpr (std::is_same_v<T, std::nullptr_t>) {
102 return "NULL";
103 }
104 return "";
105 }, value);
106}

Referenced by convert_result().

Here is the caller graph for this function: