Thread System 0.3.1
High-performance C++20 thread pool with work stealing and DAG scheduling
Loading...
Searching...
No Matches
kcenon::thread::thread_system_config Struct Reference

Unified configuration for thread_system. More...

#include <thread_system_config.h>

Collaboration diagram for kcenon::thread::thread_system_config:
Collaboration graph

Classes

struct  pool_config
 Configuration for thread pool behavior. More...
 
struct  resilience_config
 Configuration for resilience features. More...
 
struct  scaling_config
 Configuration for dynamic scaling features. More...
 

Public Member Functions

auto is_valid () const -> bool
 Validates the entire configuration.
 

Static Public Member Functions

static auto builder () -> config_builder
 Creates a builder for fluent configuration.
 

Public Attributes

struct kcenon::thread::thread_system_config::pool_config pool
 
struct kcenon::thread::thread_system_config::resilience_config resilience
 
dag_config dag {}
 DAG (Directed Acyclic Graph) configuration.
 
struct kcenon::thread::thread_system_config::scaling_config scaling
 

Detailed Description

Unified configuration for thread_system.

This structure consolidates all configuration options into a hierarchical, easy-to-use format. It supports partial configuration with sensible defaults for unspecified values.

Example Usage

// Using builder pattern
.with_worker_count(8)
.with_queue_capacity(5000)
.enable_backpressure()
.enable_circuit_breaker()
.build();
// Or direct initialization
config.pool.worker_count = 8;
config.pool.queue_capacity = 5000;
config.resilience.circuit_breaker.failure_threshold = 5;
std::size_t worker_count
Number of worker threads in the pool.
std::size_t queue_capacity
Maximum number of jobs in the queue.
circuit_breaker_config circuit_breaker
Circuit breaker configuration.
Unified configuration for thread_system.
static auto builder() -> config_builder
Creates a builder for fluent configuration.
struct kcenon::thread::thread_system_config::resilience_config resilience
struct kcenon::thread::thread_system_config::pool_config pool
Examples
config_example.cpp.

Definition at line 56 of file thread_system_config.h.

Member Function Documentation

◆ builder()

auto kcenon::thread::thread_system_config::builder ( ) -> config_builder
inlinestatic

Creates a builder for fluent configuration.

Returns
A new builder instance
Examples
config_example.cpp.

Definition at line 450 of file thread_system_config.h.

451 {
452 return config_builder{};
453 }

◆ is_valid()

auto kcenon::thread::thread_system_config::is_valid ( ) const -> bool
inlinenodiscard

Validates the entire configuration.

Checks all sub-configurations for validity.

Returns
true if configuration is valid, false otherwise

Definition at line 198 of file thread_system_config.h.

199 {
200 // Pool validation
201 if (pool.worker_count == 0)
202 {
203 return false;
204 }
205
206 // Backpressure validation
208 {
209 return false;
210 }
211
212 // DAG validation
213 if (dag.max_retries > 10)
214 {
215 return false; // Sanity check to prevent infinite retries
216 }
217
218 return true;
219 }
auto is_valid() const -> bool
Validates the configuration.
std::size_t max_retries
Maximum number of retry attempts for failed jobs.
Definition dag_config.h:90
backpressure_config backpressure
Backpressure configuration.
dag_config dag
DAG (Directed Acyclic Graph) configuration.

References kcenon::thread::thread_system_config::pool_config::backpressure, dag, kcenon::thread::backpressure_config::is_valid(), kcenon::thread::dag_config::max_retries, pool, and kcenon::thread::thread_system_config::pool_config::worker_count.

Referenced by kcenon::thread::config_builder::build().

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

Member Data Documentation

◆ dag

dag_config kcenon::thread::thread_system_config::dag {}

DAG (Directed Acyclic Graph) configuration.

Configuration for DAG-based task scheduling. Default: fail-fast policy, cycle detection enabled

Definition at line 166 of file thread_system_config.h.

166{};

Referenced by is_valid(), kcenon::thread::config_builder::with_dag_failure_policy(), and kcenon::thread::config_builder::with_dag_retry_params().

◆ pool

◆ resilience

◆ scaling


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