81 return "network_receive";
85 return "dimse_process";
87 return "storage_query_exec";
89 return "response_encode";
91 return "network_send";
154 -> std::string_view {
167 return "association";
constexpr auto is_blocking_stage(pipeline_stage stage) noexcept -> bool
Check if a stage allows blocking operations.
job_category
Categories for pipeline jobs used in metrics and monitoring.
@ move
C-MOVE move request/response.
@ other
Unknown or other category.
@ store
C-STORE storage request/response.
@ association
Association management (A-ASSOCIATE, A-RELEASE, A-ABORT)
@ get
C-GET retrieve request/response.
@ echo
C-ECHO verification request/response.
@ find
C-FIND query request/response.
@ control
Internal pipeline control messages.
constexpr auto get_stage_name(pipeline_stage stage) noexcept -> std::string_view
Get the human-readable name of a pipeline stage.
constexpr auto get_category_name(job_category category) noexcept -> std::string_view
Get the human-readable name of a job category.
pipeline_stage
Identifies the 6 stages of the DICOM I/O pipeline.
@ storage_query_exec
Stage 4: Execute storage/query operations (blocking allowed)
@ stage_count
Total number of stages.
@ 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.
constexpr auto is_network_io_stage(pipeline_stage stage) noexcept -> bool
Check if a stage handles network I/O.
Context information attached to pipeline jobs for tracking.
pipeline_stage stage
Current pipeline stage.
job_category category
Job category for metrics.
uint16_t message_id
Message ID from DIMSE command (if applicable)
uint32_t sequence_number
Sequence number for ordering within a session.
uint64_t job_id
Unique identifier for this job (monotonically increasing)
uint64_t enqueue_time_ns
Timestamp when job entered the pipeline (nanoseconds since epoch)
uint8_t priority
Priority (lower = higher priority, 0 = highest)
uint64_t session_id
Session/association identifier.