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

Builder class for custom configuration. More...

#include <unified_database_system.h>

Collaboration diagram for database::integrated::unified_database_system::builder:
Collaboration graph

Public Member Functions

 builder ()
 
builderset_backend (backend_type type)
 Set the database backend type.
 
builderset_connection_string (const std::string &conn_str)
 Set the connection string.
 
builderset_pool_size (size_t min_size, size_t max_size)
 Set connection pool size.
 
builderenable_logging (db_log_level level, const std::string &log_dir="./logs")
 Enable logging.
 
builderenable_monitoring (bool enable=true)
 Enable monitoring and metrics collection.
 
builderenable_async (size_t worker_threads=4)
 Enable async operations.
 
builderset_slow_query_threshold (std::chrono::milliseconds threshold)
 Set slow query threshold.
 
kcenon::common::Result< std::unique_ptr< unified_database_system > > build ()
 Build and return the configured database system.
 

Private Attributes

unified_db_config config_
 
std::string connection_string_
 

Detailed Description

Builder class for custom configuration.

Definition at line 293 of file unified_database_system.h.

Constructor & Destructor Documentation

◆ builder()

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

Definition at line 831 of file unified_database_system.cpp.

831 {
832 // Set smart defaults
835 config_.connection_pool.connection_timeout = std::chrono::seconds(5);
836
839 config_.logger.log_directory = "./logs";
840 config_.logger.slow_query_threshold = std::chrono::milliseconds(1000);
841
843 config_.monitoring.metrics_interval = std::chrono::seconds(60);
844
846}
@ info
Informational messages (default)
bool enable_file_logging
Enable logging to file (in addition to console)
std::string log_directory
Directory for log files.
std::chrono::milliseconds slow_query_threshold
Threshold for considering a query "slow".
db_log_level min_log_level
Minimum log level to output.
bool enable_metrics
Enable metrics collection.
std::chrono::seconds metrics_interval
Interval for collecting metrics.
std::size_t thread_count
Number of worker threads (0 = auto-detect from hardware)
std::size_t min_connections
Minimum number of connections to maintain.
std::chrono::seconds connection_timeout
Timeout for acquiring a connection from the pool.
std::size_t max_connections
Maximum number of connections allowed.
db_logger_config logger
Logger configuration.
pool_config connection_pool
Connection pool configuration.
db_monitoring_config monitoring
Monitoring configuration.
db_thread_config thread
Thread pool configuration.

References config_, database::integrated::unified_db_config::connection_pool, database::integrated::pool_config::connection_timeout, database::integrated::db_logger_config::enable_file_logging, database::integrated::db_monitoring_config::enable_metrics, database::integrated::info, database::integrated::db_logger_config::log_directory, database::integrated::unified_db_config::logger, database::integrated::pool_config::max_connections, database::integrated::db_monitoring_config::metrics_interval, database::integrated::pool_config::min_connections, database::integrated::db_logger_config::min_log_level, database::integrated::unified_db_config::monitoring, database::integrated::db_logger_config::slow_query_threshold, database::integrated::unified_db_config::thread, and database::integrated::db_thread_config::thread_count.

Member Function Documentation

◆ build()

kcenon::common::Result< std::unique_ptr< unified_database_system > > database::integrated::unified_database_system::builder::build ( )

Build and return the configured database system.

Returns
Result containing unique pointer to configured system, or error
Examples
/home/runner/work/database_system/database_system/database/integrated/unified_database_system.h.

Definition at line 895 of file unified_database_system.cpp.

895 {
896 auto system = std::make_unique<unified_database_system>(config_);
897
898 // Auto-connect if connection string provided
899 if (!connection_string_.empty()) {
900 auto result = system->connect(config_.database.type, connection_string_);
901 if (!result.is_ok()) {
902 return make_error_result<std::unique_ptr<unified_database_system>>(
903 "Failed to connect: " + result.error().message,
904 result.error().code,
905 "unified_database_system"
906 );
907 }
908 }
909
910 return std::move(system);
911}
@ system
Use common_system ILogger (fails if unavailable)
backend_type type
Database backend type.
database_config database
Database connection configuration.

Referenced by database::integrated::create_database(), main(), main(), test_builder_custom(), and test_move_semantics().

Here is the caller graph for this function:

◆ enable_async()

unified_database_system::builder & database::integrated::unified_database_system::builder::enable_async ( size_t worker_threads = 4)

Enable async operations.

Parameters
worker_threadsNumber of worker threads for async operations
Examples
/home/runner/work/database_system/database_system/database/integrated/unified_database_system.h.

Definition at line 883 of file unified_database_system.cpp.

884 {
885 config_.thread.thread_count = worker_threads;
886 return *this;
887}

Referenced by main(), and test_builder_custom().

Here is the caller graph for this function:

◆ enable_logging()

unified_database_system::builder & database::integrated::unified_database_system::builder::enable_logging ( db_log_level level,
const std::string & log_dir = "./logs" )

Enable logging.

Parameters
levelLog level (debug, info, warning, error)
log_dirDirectory for log files
Examples
/home/runner/work/database_system/database_system/database/integrated/unified_database_system.h.

Definition at line 868 of file unified_database_system.cpp.

870 {
872 config_.logger.log_directory = log_dir;
874 return *this;
875}

Referenced by main(), main(), and test_builder_custom().

Here is the caller graph for this function:

◆ enable_monitoring()

unified_database_system::builder & database::integrated::unified_database_system::builder::enable_monitoring ( bool enable = true)

Enable monitoring and metrics collection.

Parameters
enabletrue to enable monitoring
Examples
/home/runner/work/database_system/database_system/database/integrated/unified_database_system.h.

Definition at line 877 of file unified_database_system.cpp.

878 {
880 return *this;
881}

Referenced by main(), main(), and test_builder_custom().

Here is the caller graph for this function:

◆ set_backend()

unified_database_system::builder & database::integrated::unified_database_system::builder::set_backend ( backend_type type)

Set the database backend type.

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

Definition at line 848 of file unified_database_system.cpp.

849 {
850 config_.database.type = type;
851 return *this;
852}

Referenced by database::integrated::create_database(), test_builder_custom(), and test_move_semantics().

Here is the caller graph for this function:

◆ set_connection_string()

unified_database_system::builder & database::integrated::unified_database_system::builder::set_connection_string ( const std::string & conn_str)

Set the connection string.

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

Definition at line 854 of file unified_database_system.cpp.

855 {
856 connection_string_ = conn_str;
857 return *this;
858}

Referenced by database::integrated::create_database(), and test_builder_custom().

Here is the caller graph for this function:

◆ set_pool_size()

unified_database_system::builder & database::integrated::unified_database_system::builder::set_pool_size ( size_t min_size,
size_t max_size )

Set connection pool size.

Parameters
min_sizeMinimum number of connections
max_sizeMaximum number of connections
Examples
/home/runner/work/database_system/database_system/database/integrated/unified_database_system.h.

Definition at line 860 of file unified_database_system.cpp.

862 {
865 return *this;
866}

Referenced by main(), main(), and test_builder_custom().

Here is the caller graph for this function:

◆ set_slow_query_threshold()

unified_database_system::builder & database::integrated::unified_database_system::builder::set_slow_query_threshold ( std::chrono::milliseconds threshold)

Set slow query threshold.

Parameters
thresholdQueries taking longer than this are logged as slow
Examples
/home/runner/work/database_system/database_system/database/integrated/unified_database_system.h.

Definition at line 889 of file unified_database_system.cpp.

890 {
892 return *this;
893}

Referenced by main(), and test_builder_custom().

Here is the caller graph for this function:

Member Data Documentation

◆ config_

unified_db_config database::integrated::unified_database_system::builder::config_
private

◆ connection_string_

std::string database::integrated::unified_database_system::builder::connection_string_
private

The documentation for this class was generated from the following files: