Database System 0.1.0
Advanced C++20 Database System with Multi-Backend Support
Loading...
Searching...
No Matches
unified_database_system.h File Reference

Zero-configuration database system with integrated adapters (Phase 6) More...

#include "core/configuration.h"
#include <memory>
#include <string>
#include <vector>
#include <map>
#include <future>
#include <chrono>
#include <functional>
#include <optional>
#include "../core/result.h"
#include "../query_builder.h"
Include dependency graph for unified_database_system.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  database::integrated::query_result
 Query result set. More...
 
struct  database::integrated::database_metrics
 Database performance metrics. More...
 
struct  database::integrated::health_check
 Health check result. More...
 
struct  database::integrated::query_param
 
class  database::integrated::transaction
 Transaction interface for ACID operations. More...
 
class  database::integrated::unified_database_system
 Main unified database system class. More...
 
class  database::integrated::unified_database_system::builder
 Builder class for custom configuration. More...
 
struct  database::integrated::unified_database_system::pool_stats
 Get connection pool statistics. More...
 

Namespaces

namespace  database
 
namespace  database::integrated
 

Typedefs

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

Enumerations

enum class  database::integrated::health_status { database::integrated::healthy , database::integrated::degraded , database::integrated::critical , database::integrated::failed }
 Database health status. More...
 

Functions

std::unique_ptr< unified_database_systemdatabase::integrated::create_database ()
 Create a database with zero configuration.
 
kcenon::common::Result< std::unique_ptr< unified_database_system > > database::integrated::create_database (backend_type backend, const std::string &connection_string)
 Create a database with builder configuration.
 

Detailed Description

Zero-configuration database system with integrated adapters (Phase 6)

This is the main entry point for the unified database system. It provides a simple, modern API that integrates all adapters (logger, monitoring, thread) behind the scenes using database_coordinator.

Key Features:

  • Zero-configuration with smart defaults
  • Builder pattern for custom configuration
  • Synchronous and asynchronous query execution
  • Transaction management
  • Connection pooling
  • Integrated logging, monitoring, and async operations
  • Backward compatible with legacy database_manager

Example Usage:

using namespace database::integrated;
// 1. Zero-config usage (simplest)
auto result = db.connect("postgresql://localhost/mydb");
if (result.is_ok()) {
auto rows = db.execute("SELECT * FROM users WHERE id = $1", 42);
}
// 2. Builder pattern configuration
.set_backend(backend_type::postgresql)
.set_connection_string("host=localhost dbname=mydb")
.set_pool_size(10, 50)
.enable_logging(db_log_level::debug, "./logs")
.enable_async(4) // 4 worker threads
.build();
// 3. Async query execution
auto future = db->execute_async("SELECT * FROM large_table");
// Do other work...
auto result = future.get();
// 4. Transaction management
auto tx = db->begin_transaction();
tx->execute("INSERT INTO users (name) VALUES ($1)", "Alice");
tx->execute("UPDATE accounts SET balance = balance - 100");
tx->commit();
// 5. Query builder integration
auto query = db->query_builder()
.select("users")
.where("age > ?", 18)
.order_by("name")
.limit(10)
.build();
auto users = db->execute(query);
// 6. Health check and metrics
auto health = db->check_health();
auto metrics = db->get_metrics();
std::cout << "Query throughput: " << metrics.queries_per_second << "\n";
builder & enable_monitoring(bool enable=true)
Enable monitoring and metrics collection.
builder & set_connection_string(const std::string &conn_str)
Set the connection string.
builder & set_pool_size(size_t min_size, size_t max_size)
Set connection pool size.
builder & enable_async(size_t worker_threads=4)
Enable async operations.
kcenon::common::Result< std::unique_ptr< unified_database_system > > build()
Build and return the configured database system.
builder & enable_logging(db_log_level level, const std::string &log_dir="./logs")
Enable logging.
builder & set_backend(backend_type type)
Set the database backend type.
kcenon::common::Result< std::unique_ptr< transaction > > begin_transaction()
std::future< kcenon::common::Result< query_result > > execute_async(const std::string &query, const std::vector< query_param > &params={})
database_metrics get_metrics() const
Get current performance metrics.
kcenon::common::Result< query_result > execute(const std::string &query, const std::vector< query_param > &params={})
health_check check_health() const
Perform health check.
kcenon::common::VoidResult connect(const std::string &connection_string)
Connect to database.
kcenon::common::Result< query_result > select(const std::string &query, const std::vector< query_param > &params={})
Execute a SELECT query.

Definition in file unified_database_system.h.