PACS System 0.1.0
PACS DICOM system library
Loading...
Searching...
No Matches
pipeline_job_types.h File Reference

Job type definitions for the 6-stage DICOM I/O pipeline. More...

#include <cstdint>
#include <string_view>
Include dependency graph for pipeline_job_types.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  kcenon::pacs::network::pipeline::job_context
 Context information attached to pipeline jobs for tracking. More...
 

Namespaces

namespace  kcenon
 
namespace  kcenon::pacs
 
namespace  kcenon::pacs::network
 
namespace  kcenon::pacs::network::pipeline
 

Enumerations

enum class  kcenon::pacs::network::pipeline::pipeline_stage : uint8_t {
  kcenon::pacs::network::pipeline::network_receive = 0 , kcenon::pacs::network::pipeline::pdu_decode = 1 , kcenon::pacs::network::pipeline::dimse_process = 2 , kcenon::pacs::network::pipeline::storage_query_exec = 3 ,
  kcenon::pacs::network::pipeline::response_encode = 4 , kcenon::pacs::network::pipeline::network_send = 5 , kcenon::pacs::network::pipeline::stage_count = 6
}
 Identifies the 6 stages of the DICOM I/O pipeline. More...
 
enum class  kcenon::pacs::network::pipeline::job_category : uint8_t {
  kcenon::pacs::network::pipeline::echo = 0 , kcenon::pacs::network::pipeline::store = 1 , kcenon::pacs::network::pipeline::find = 2 , kcenon::pacs::network::pipeline::get = 3 ,
  kcenon::pacs::network::pipeline::move = 4 , kcenon::pacs::network::pipeline::association = 5 , kcenon::pacs::network::pipeline::control = 6 , kcenon::pacs::network::pipeline::other = 7
}
 Categories for pipeline jobs used in metrics and monitoring. More...
 

Functions

constexpr auto kcenon::pacs::network::pipeline::get_stage_name (pipeline_stage stage) noexcept -> std::string_view
 Get the human-readable name of a pipeline stage.
 
constexpr auto kcenon::pacs::network::pipeline::is_blocking_stage (pipeline_stage stage) noexcept -> bool
 Check if a stage allows blocking operations.
 
constexpr auto kcenon::pacs::network::pipeline::is_network_io_stage (pipeline_stage stage) noexcept -> bool
 Check if a stage handles network I/O.
 
constexpr auto kcenon::pacs::network::pipeline::get_category_name (job_category category) noexcept -> std::string_view
 Get the human-readable name of a job category.
 

Detailed Description

Job type definitions for the 6-stage DICOM I/O pipeline.

This file defines the job types and priorities for the pipeline stages that process DICOM operations with improved throughput.

Pipeline Architecture:

Stage 1: Network I/O (Receive) <- net_io_workers
| [Queue 1: PDU Bytes]
Stage 2: PDU Decode <- protocol_workers
| [Queue 2: Decoded PDU]
Stage 3: DIMSE Processing <- protocol_workers
| [Queue 3: Service Request]
Stage 4: Storage/Query Execution <- execution_workers (blocking allowed)
| [Queue 4: Service Result]
Stage 5: Response Encoding <- encode_workers
| [Queue 5: Encoded PDU]
Stage 6: Network I/O (Send) <- net_io_workers
See also
Issue #517 - Implement typed_thread_pool-based I/O Pipeline
DICOM PS3.8 Network Communication Support
Author
kcenon
Since
1.0.0

Definition in file pipeline_job_types.h.