PACS System 0.1.0
PACS DICOM system library
Loading...
Searching...
No Matches
kcenon::pacs::network::pipeline::pipeline_config Struct Reference

Configuration options for the pipeline coordinator. More...

#include <pipeline_coordinator.h>

Collaboration diagram for kcenon::pacs::network::pipeline::pipeline_config:
Collaboration graph

Public Member Functions

auto get_workers_for_stage (pipeline_stage stage) const noexcept -> size_t
 Get the number of workers for a specific stage.
 

Public Attributes

size_t net_io_workers = 4
 Number of workers for network I/O stages (1 & 6) Low latency, non-blocking operations.
 
size_t protocol_workers = 2
 Number of workers for protocol stages (2 & 3) PDU decoding and DIMSE processing.
 
size_t execution_workers = 8
 Number of workers for execution stage (4) Blocking I/O allowed (database, file system)
 
size_t encode_workers = 2
 Number of workers for encoding stage (5) Response PDU encoding.
 
size_t max_queue_depth = 10000
 Maximum queue depth per stage (backpressure threshold)
 
std::chrono::milliseconds shutdown_timeout {500}
 Graceful shutdown timeout.
 
bool enable_metrics = true
 Enable metrics collection.
 
std::string name_prefix = "pipeline"
 Name prefix for thread pools (for logging)
 

Detailed Description

Configuration options for the pipeline coordinator.

Default values are tuned for a typical PACS workload with balanced throughput and latency requirements.

Definition at line 43 of file pipeline_coordinator.h.

Member Function Documentation

◆ get_workers_for_stage()

auto kcenon::pacs::network::pipeline::pipeline_config::get_workers_for_stage ( pipeline_stage stage) const -> size_t
inlinenodiscardnoexcept

Get the number of workers for a specific stage.

Parameters
stageThe pipeline stage
Returns
Number of workers configured for that stage
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/network/pipeline/pipeline_coordinator.h.

Definition at line 77 of file pipeline_coordinator.h.

78 {
79 switch (stage) {
82 return net_io_workers;
83
86 return protocol_workers;
87
89 return execution_workers;
90
92 return encode_workers;
93
94 default:
95 return 1;
96 }
97 }
@ storage_query_exec
Stage 4: Execute storage/query operations (blocking allowed)
@ dimse_process
Stage 3: Process DIMSE messages and route requests.
@ response_encode
Stage 5: Encode response into PDU bytes.
@ network_send
Stage 6: Send PDU bytes to network.
@ network_receive
Stage 1: Receive raw PDU bytes from network.
@ pdu_decode
Stage 2: Decode PDU bytes into structured data.
size_t encode_workers
Number of workers for encoding stage (5) Response PDU encoding.
size_t net_io_workers
Number of workers for network I/O stages (1 & 6) Low latency, non-blocking operations.
size_t execution_workers
Number of workers for execution stage (4) Blocking I/O allowed (database, file system)
size_t protocol_workers
Number of workers for protocol stages (2 & 3) PDU decoding and DIMSE processing.

References kcenon::pacs::network::pipeline::dimse_process, encode_workers, execution_workers, net_io_workers, kcenon::pacs::network::pipeline::network_receive, kcenon::pacs::network::pipeline::network_send, kcenon::pacs::network::pipeline::pdu_decode, protocol_workers, kcenon::pacs::network::pipeline::response_encode, and kcenon::pacs::network::pipeline::storage_query_exec.

Member Data Documentation

◆ enable_metrics

bool kcenon::pacs::network::pipeline::pipeline_config::enable_metrics = true

◆ encode_workers

size_t kcenon::pacs::network::pipeline::pipeline_config::encode_workers = 2

Number of workers for encoding stage (5) Response PDU encoding.

Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/network/pipeline/pipeline_coordinator.h.

Definition at line 58 of file pipeline_coordinator.h.

Referenced by get_workers_for_stage().

◆ execution_workers

size_t kcenon::pacs::network::pipeline::pipeline_config::execution_workers = 8

Number of workers for execution stage (4) Blocking I/O allowed (database, file system)

Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/network/pipeline/pipeline_coordinator.h.

Definition at line 54 of file pipeline_coordinator.h.

Referenced by get_workers_for_stage().

◆ max_queue_depth

size_t kcenon::pacs::network::pipeline::pipeline_config::max_queue_depth = 10000

◆ name_prefix

std::string kcenon::pacs::network::pipeline::pipeline_config::name_prefix = "pipeline"

Name prefix for thread pools (for logging)

Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/network/pipeline/pipeline_coordinator.h.

Definition at line 70 of file pipeline_coordinator.h.

◆ net_io_workers

size_t kcenon::pacs::network::pipeline::pipeline_config::net_io_workers = 4

Number of workers for network I/O stages (1 & 6) Low latency, non-blocking operations.

Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/network/pipeline/pipeline_coordinator.h.

Definition at line 46 of file pipeline_coordinator.h.

Referenced by get_workers_for_stage().

◆ protocol_workers

size_t kcenon::pacs::network::pipeline::pipeline_config::protocol_workers = 2

Number of workers for protocol stages (2 & 3) PDU decoding and DIMSE processing.

Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/network/pipeline/pipeline_coordinator.h.

Definition at line 50 of file pipeline_coordinator.h.

Referenced by get_workers_for_stage().

◆ shutdown_timeout

std::chrono::milliseconds kcenon::pacs::network::pipeline::pipeline_config::shutdown_timeout {500}

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