Database System 0.1.0
Advanced C++20 Database System with Multi-Backend Support
Loading...
Searching...
No Matches
sample_runner Class Reference
Collaboration diagram for sample_runner:
Collaboration graph

Public Member Functions

 sample_runner ()
 
void run_all_samples ()
 
void run_specific_sample (const std::string &sample_name)
 
void list_available_samples ()
 

Private Member Functions

void register_samples ()
 

Private Attributes

std::vector< sample_infosamples_
 

Detailed Description

Examples
run_all_samples.cpp.

Definition at line 43 of file run_all_samples.cpp.

Constructor & Destructor Documentation

◆ sample_runner()

sample_runner::sample_runner ( )
inline
Examples
run_all_samples.cpp.

Definition at line 45 of file run_all_samples.cpp.

45 {
47 }

References register_samples().

Here is the call graph for this function:

Member Function Documentation

◆ list_available_samples()

void sample_runner::list_available_samples ( )
inline
Examples
run_all_samples.cpp.

Definition at line 117 of file run_all_samples.cpp.

117 {
118 std::cout << "\nAvailable samples:" << std::endl;
119 std::cout << std::string(50, '-') << std::endl;
120
121 for (const auto& sample : samples_) {
122 std::cout << " " << std::setw(20) << std::left << sample.name
123 << " - " << sample.description << std::endl;
124 }
125 std::cout << std::string(50, '-') << std::endl;
126 }
std::vector< sample_info > samples_

References samples_.

Referenced by main(), and run_specific_sample().

Here is the caller graph for this function:

◆ register_samples()

void sample_runner::register_samples ( )
inlineprivate
Examples
run_all_samples.cpp.

Definition at line 131 of file run_all_samples.cpp.

131 {
132 samples_ = {
133 {
134 "basic_usage",
135 "Demonstrates fundamental database operations",
137 },
138 {
139 "postgres_advanced",
140 "Shows PostgreSQL-specific advanced features",
142 },
143 {
144 "connection_pool_demo",
145 "Connection pooling and concurrent access examples",
147 }
148 };
149 }
void run_basic_usage_sample()
void run_connection_pool_demo_sample()
void run_postgres_advanced_sample()

References run_basic_usage_sample(), run_connection_pool_demo_sample(), run_postgres_advanced_sample(), and samples_.

Referenced by sample_runner().

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

◆ run_all_samples()

void sample_runner::run_all_samples ( )
inline
Examples
run_all_samples.cpp.

Definition at line 49 of file run_all_samples.cpp.

49 {
50 std::cout << "=== Database System - All Samples Runner ===" << std::endl;
51 std::cout << "Running " << samples_.size() << " samples..." << std::endl;
52
53 auto start_time = std::chrono::high_resolution_clock::now();
54
55 for (const auto& sample : samples_) {
56 std::cout << "\n" << std::string(60, '=') << std::endl;
57 std::cout << "Running sample: " << sample.name << std::endl;
58 std::cout << "Description: " << sample.description << std::endl;
59 std::cout << std::string(60, '=') << std::endl;
60
61 auto sample_start = std::chrono::high_resolution_clock::now();
62
63 try {
64 sample.runner();
65 } catch (const std::exception& e) {
66 std::cout << "Error running sample '" << sample.name << "': " << e.what() << std::endl;
67 } catch (...) {
68 std::cout << "Unknown error running sample '" << sample.name << "'" << std::endl;
69 }
70
71 auto sample_end = std::chrono::high_resolution_clock::now();
72 auto sample_duration = std::chrono::duration_cast<std::chrono::milliseconds>(sample_end - sample_start);
73
74 std::cout << "\nSample '" << sample.name << "' completed in " << sample_duration.count() << " ms" << std::endl;
75 }
76
77 auto end_time = std::chrono::high_resolution_clock::now();
78 auto total_duration = std::chrono::duration_cast<std::chrono::milliseconds>(end_time - start_time);
79
80 std::cout << "\n" << std::string(60, '=') << std::endl;
81 std::cout << "All samples completed successfully!" << std::endl;
82 std::cout << "Total execution time: " << total_duration.count() << " ms" << std::endl;
83 std::cout << std::string(60, '=') << std::endl;
84 }

References samples_.

Referenced by main().

Here is the caller graph for this function:

◆ run_specific_sample()

void sample_runner::run_specific_sample ( const std::string & sample_name)
inline
Examples
run_all_samples.cpp.

Definition at line 86 of file run_all_samples.cpp.

86 {
87 for (const auto& sample : samples_) {
88 if (sample.name == sample_name) {
89 std::cout << "=== Database System - " << sample.name << " Sample ===" << std::endl;
90 std::cout << "Description: " << sample.description << std::endl;
91 std::cout << std::string(50, '-') << std::endl;
92
93 auto start_time = std::chrono::high_resolution_clock::now();
94
95 try {
96 sample.runner();
97 } catch (const std::exception& e) {
98 std::cout << "Error running sample: " << e.what() << std::endl;
99 return;
100 } catch (...) {
101 std::cout << "Unknown error running sample" << std::endl;
102 return;
103 }
104
105 auto end_time = std::chrono::high_resolution_clock::now();
106 auto duration = std::chrono::duration_cast<std::chrono::milliseconds>(end_time - start_time);
107
108 std::cout << "\nSample completed successfully in " << duration.count() << " ms" << std::endl;
109 return;
110 }
111 }
112
113 std::cout << "Sample '" << sample_name << "' not found!" << std::endl;
115 }
void list_available_samples()

References list_available_samples(), and samples_.

Referenced by main().

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

Member Data Documentation

◆ samples_

std::vector<sample_info> sample_runner::samples_
private

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