|
PACS System 0.1.0
PACS DICOM system library
|
Bridges network_system sessions with DICOM protocol handling. More...
#include <dicom_association_handler.h>


Public Types | |
| using | session_ptr = std::shared_ptr<kcenon::network::interfaces::i_session> |
| using | service_map = std::map<std::string, services::scp_service*> |
| using | clock = std::chrono::steady_clock |
| using | time_point = clock::time_point |
| using | duration = std::chrono::milliseconds |
Public Member Functions | |
| dicom_association_handler (session_ptr session, const server_config &config, const service_map &services) | |
| Construct a handler for a network session. | |
| ~dicom_association_handler () | |
| Destructor (stops handler if still running). | |
| dicom_association_handler (const dicom_association_handler &)=delete | |
| dicom_association_handler & | operator= (const dicom_association_handler &)=delete |
| dicom_association_handler (dicom_association_handler &&)=delete | |
| dicom_association_handler & | operator= (dicom_association_handler &&)=delete |
| void | start () |
| Start processing the session. | |
| void | stop (bool graceful=false) |
| Stop the handler and close the session. | |
| void | feed_data (const std::vector< uint8_t > &data) |
| Feed received data to the handler. | |
| void | handle_disconnect () |
| Handle session disconnection. | |
| void | handle_error (std::error_code ec) |
| Handle session error. | |
| handler_state | state () const noexcept |
| Get current handler state. | |
| bool | is_established () const noexcept |
| Check if the association is established. | |
| bool | is_closed () const noexcept |
| Check if the handler is closed. | |
| std::string | session_id () const |
| Get the session identifier. | |
| std::string | calling_ae () const |
| Get the calling AE title. | |
| std::string | called_ae () const |
| Get the called AE title. | |
| Result< std::reference_wrapper< association > > | get_association () |
| Get the underlying association object. | |
| Result< std::reference_wrapper< const association > > | get_association () const |
| time_point | last_activity () const noexcept |
| Get time of last activity. | |
| void | set_established_callback (association_established_callback callback) |
| Set callback for association established event. | |
| void | set_closed_callback (association_closed_callback callback) |
| Set callback for association closed event. | |
| void | set_error_callback (handler_error_callback callback) |
| Set callback for error events. | |
| uint64_t | pdus_received () const noexcept |
| Get number of PDUs received. | |
| uint64_t | pdus_sent () const noexcept |
| Get number of PDUs sent. | |
| uint64_t | messages_processed () const noexcept |
| Get number of DIMSE messages processed. | |
| void | set_access_control (std::shared_ptr< security::access_control_manager > acm) |
| Set the access control manager for RBAC. | |
| void | set_access_control_enabled (bool enabled) |
| Enable or disable access control enforcement. | |
Static Public Attributes | |
| static constexpr size_t | pdu_header_size = 6 |
| PDU header size (type + reserved + length) | |
| static constexpr size_t | max_pdu_size = 64 * 1024 * 1024 |
| Maximum PDU size for safety checks. | |
Private Member Functions | |
| void | on_data_received (const std::vector< uint8_t > &data) |
| Handle data received from session. | |
| void | on_disconnected (const std::string &session_id) |
| Handle session disconnection. | |
| void | on_error (std::error_code ec) |
| Handle session error. | |
| void | process_buffer () |
| Process accumulated buffer for complete PDUs. | |
| void | process_pdu (const integration::pdu_data &pdu) |
| Process a complete PDU. | |
| void | handle_associate_rq (const std::vector< uint8_t > &payload) |
| Handle A-ASSOCIATE-RQ PDU. | |
| void | handle_p_data_tf (const std::vector< uint8_t > &payload) |
| Handle P-DATA-TF PDU. | |
| void | handle_release_rq () |
| Handle A-RELEASE-RQ PDU. | |
| void | handle_abort (const std::vector< uint8_t > &payload) |
| Handle A-ABORT PDU. | |
| void | send_associate_ac () |
| Send A-ASSOCIATE-AC response. | |
| void | send_associate_rj (reject_result result, uint8_t source, uint8_t reason) |
| Send A-ASSOCIATE-RJ response. | |
| void | send_p_data_tf (const std::vector< uint8_t > &payload) |
| Send P-DATA-TF PDU. | |
| void | send_release_rp () |
| Send A-RELEASE-RP response. | |
| void | send_abort (abort_source source, abort_reason reason) |
| Send A-ABORT PDU. | |
| void | send_pdu (pdu_type type, const std::vector< uint8_t > &payload) |
| Send raw PDU data. | |
| Result< std::monostate > | dispatch_to_service (uint8_t context_id, const dimse::dimse_message &msg) |
| Dispatch DIMSE message to appropriate service. | |
| services::scp_service * | find_service (const std::string &sop_class_uid) const |
| Find service for SOP Class UID. | |
| void | transition_to (handler_state new_state) |
| Transition to new state. | |
| void | touch () |
| Update last activity timestamp. | |
| void | report_error (const std::string &error) |
| Report error through callback. | |
| void | close_handler (bool graceful) |
| Close and cleanup. | |
Private Attributes | |
| session_ptr | session_ |
| Network session. | |
| server_config | config_ |
| Server configuration. | |
| service_map | services_ |
| Service registry (non-owning pointers) | |
| association | association_ |
| DICOM association. | |
| std::atomic< handler_state > | state_ {handler_state::idle} |
| Current handler state. | |
| std::vector< uint8_t > | receive_buffer_ |
| PDU receive buffer. | |
| uint32_t | expected_pdu_length_ {0} |
| Expected PDU length (0 if waiting for header) | |
| pdu_type | current_pdu_type_ {pdu_type::abort} |
| Current PDU type being received. | |
| time_point | last_activity_ |
| Last activity timestamp. | |
| std::atomic< uint64_t > | pdus_received_ {0} |
| Statistics. | |
| std::atomic< uint64_t > | pdus_sent_ {0} |
| std::atomic< uint64_t > | messages_processed_ {0} |
| association_established_callback | established_callback_ |
| Callbacks. | |
| association_closed_callback | closed_callback_ |
| handler_error_callback | error_callback_ |
| std::mutex | mutex_ |
| Thread safety. | |
| std::mutex | callback_mutex_ |
| std::shared_ptr< security::access_control_manager > | access_control_ |
| Access control manager for RBAC. | |
| std::optional< security::user_context > | user_context_ |
| User context for this association (set after A-ASSOCIATE negotiation) | |
| bool | access_control_enabled_ {false} |
| Whether access control is enabled. | |
Bridges network_system sessions with DICOM protocol handling.
This class wraps a network_system messaging_session to provide DICOM-specific behavior including:
All public methods are thread-safe. The handler can be accessed from multiple threads (e.g., network I/O thread and service threads).
start() to begin processing incoming PDUsstop() or let graceful release complete Definition at line 148 of file dicom_association_handler.h.
| using kcenon::pacs::network::v2::dicom_association_handler::clock = std::chrono::steady_clock |
Definition at line 157 of file dicom_association_handler.h.
| using kcenon::pacs::network::v2::dicom_association_handler::duration = std::chrono::milliseconds |
Definition at line 159 of file dicom_association_handler.h.
| using kcenon::pacs::network::v2::dicom_association_handler::service_map = std::map<std::string, services::scp_service*> |
Definition at line 156 of file dicom_association_handler.h.
| using kcenon::pacs::network::v2::dicom_association_handler::session_ptr = std::shared_ptr<kcenon::network::interfaces::i_session> |
Definition at line 155 of file dicom_association_handler.h.
| using kcenon::pacs::network::v2::dicom_association_handler::time_point = clock::time_point |
Definition at line 158 of file dicom_association_handler.h.
| kcenon::pacs::network::v2::dicom_association_handler::dicom_association_handler | ( | session_ptr | session, |
| const server_config & | config, | ||
| const service_map & | services ) |
Construct a handler for a network session.
| session | The network_system session to wrap |
| config | Server configuration for association negotiation |
| services | Map from SOP Class UID to service implementation |
Definition at line 37 of file dicom_association_handler.cpp.
| kcenon::pacs::network::v2::dicom_association_handler::~dicom_association_handler | ( | ) |
Destructor (stops handler if still running).
Definition at line 47 of file dicom_association_handler.cpp.
References is_closed(), and stop().

|
delete |
|
delete |
|
nodiscard |
Get the called AE title.
Definition at line 132 of file dicom_association_handler.cpp.
References association_, kcenon::pacs::network::association::called_ae(), and mutex_.

|
nodiscard |
Get the calling AE title.
Definition at line 127 of file dicom_association_handler.cpp.
References association_, kcenon::pacs::network::association::calling_ae(), and mutex_.

|
private |
Close and cleanup.
Definition at line 769 of file dicom_association_handler.cpp.
References callback_mutex_, kcenon::pacs::network::v2::closed, closed_callback_, mutex_, session_, session_id(), state_, and transition_to().
Referenced by handle_abort(), handle_associate_rq(), handle_p_data_tf(), handle_release_rq(), on_disconnected(), on_error(), process_buffer(), process_pdu(), and stop().


|
private |
Dispatch DIMSE message to appropriate service.
Definition at line 657 of file dicom_association_handler.cpp.
References kcenon::pacs::network::abstract_syntax, kcenon::pacs::network::association::accepted_contexts(), access_control_, access_control_enabled_, association_, kcenon::pacs::network::dimse::c_echo_rq, kcenon::pacs::network::dimse::c_find_rq, kcenon::pacs::network::dimse::c_get_rq, kcenon::pacs::network::dimse::c_move_rq, kcenon::pacs::network::dimse::c_store_rq, kcenon::pacs::security::CEcho, kcenon::pacs::security::CFind, kcenon::pacs::security::CGet, kcenon::pacs::security::CMove, kcenon::pacs::network::dimse::dimse_message::command(), kcenon::pacs::security::CStore, find_service(), kcenon::pacs::network::dimse::n_action_rq, kcenon::pacs::network::dimse::n_create_rq, kcenon::pacs::network::dimse::n_delete_rq, kcenon::pacs::network::dimse::n_event_report_rq, kcenon::pacs::network::dimse::n_get_rq, kcenon::pacs::network::dimse::n_set_rq, kcenon::pacs::security::NAction, kcenon::pacs::security::NCreate, kcenon::pacs::security::NDelete, kcenon::pacs::security::NEventReport, kcenon::pacs::security::NGet, kcenon::pacs::security::NSet, and user_context_.
Referenced by handle_p_data_tf().


| void kcenon::pacs::network::v2::dicom_association_handler::feed_data | ( | const std::vector< uint8_t > & | data | ) |
Feed received data to the handler.
Called by the server when data arrives for this handler's session. This replaces the session-level receive callback pattern used with messaging_session. In the i_protocol_server architecture, the server receives data via its receive callback and forwards it here.
| data | The received data bytes |
Definition at line 216 of file dicom_association_handler.cpp.
References on_data_received().

|
nodiscardprivate |
Find service for SOP Class UID.
Definition at line 737 of file dicom_association_handler.cpp.
References services_.
Referenced by dispatch_to_service().

|
nodiscard |
Get the underlying association object.
Definition at line 137 of file dicom_association_handler.cpp.
References association_, kcenon::pacs::error_codes::invalid_association_state, is_established(), and mutex_.

|
nodiscard |
Definition at line 146 of file dicom_association_handler.cpp.
References association_, kcenon::pacs::error_codes::invalid_association_state, is_established(), and mutex_.

|
private |
Handle A-ABORT PDU.
Definition at line 588 of file dicom_association_handler.cpp.
References association_, close_handler(), kcenon::pacs::network::not_specified, kcenon::pacs::network::association::process_abort(), and kcenon::pacs::network::service_user.
Referenced by process_pdu().


|
private |
Handle A-ASSOCIATE-RQ PDU.
Definition at line 368 of file dicom_association_handler.cpp.
References kcenon::pacs::network::association::accept(), kcenon::pacs::network::server_config::accept_unknown_calling_ae, kcenon::pacs::network::association::accepted_contexts(), access_control_, access_control_enabled_, kcenon::pacs::network::scp_config::ae_title, kcenon::pacs::network::server_config::ae_title, kcenon::pacs::network::server_config::ae_whitelist, kcenon::pacs::network::associate_rq, association_, callback_mutex_, kcenon::pacs::network::called_ae_not_recognized, kcenon::pacs::network::associate_rq::called_ae_title, kcenon::pacs::network::calling_ae_not_recognized, kcenon::pacs::network::associate_rq::calling_ae_title, close_handler(), config_, kcenon::pacs::network::pdu_decoder::decode_associate_rq(), kcenon::pacs::network::established, kcenon::pacs::network::v2::established, established_callback_, kcenon::pacs::network::scp_config::implementation_class_uid, kcenon::pacs::network::server_config::implementation_class_uid, kcenon::pacs::network::scp_config::implementation_version_name, kcenon::pacs::network::server_config::implementation_version_name, kcenon::pacs::network::scp_config::max_pdu_length, kcenon::pacs::network::server_config::max_pdu_size, kcenon::pacs::network::no_reason, pdu_header_size, kcenon::pacs::network::rejected_permanent, report_error(), send_associate_ac(), send_associate_rj(), kcenon::pacs::network::service_provider_acse, kcenon::pacs::network::service_user, services_, session_id(), kcenon::pacs::network::association::set_state(), kcenon::pacs::network::scp_config::supported_abstract_syntaxes, kcenon::pacs::network::scp_config::supported_transfer_syntaxes, transition_to(), uid, and user_context_.
Referenced by process_pdu().


| void kcenon::pacs::network::v2::dicom_association_handler::handle_disconnect | ( | ) |
Handle session disconnection.
Called by the server when the session disconnects.
Definition at line 220 of file dicom_association_handler.cpp.
References on_disconnected(), and session_id().

| void kcenon::pacs::network::v2::dicom_association_handler::handle_error | ( | std::error_code | ec | ) |
Handle session error.
Called by the server when an error occurs on the session.
| ec | The error code |
Definition at line 224 of file dicom_association_handler.cpp.
References on_error().

|
private |
Handle P-DATA-TF PDU.
Definition at line 494 of file dicom_association_handler.cpp.
References kcenon::pacs::network::abstract_syntax, kcenon::pacs::network::association::accepted_contexts(), association_, close_handler(), kcenon::pacs::network::association::context_transfer_syntax(), kcenon::pacs::network::dimse::dimse_message::decode(), kcenon::pacs::network::pdu_decoder::decode_p_data_tf(), dispatch_to_service(), kcenon::pacs::network::invalid_pdu_parameter, messages_processed_, kcenon::pacs::network::p_data_tf, pdu_header_size, kcenon::pacs::network::p_data_tf_pdu::pdvs, report_error(), send_abort(), and kcenon::pacs::network::service_provider.
Referenced by process_pdu().


|
private |
Handle A-RELEASE-RQ PDU.
Definition at line 575 of file dicom_association_handler.cpp.
References association_, close_handler(), kcenon::pacs::network::association::process_release_rq(), kcenon::pacs::network::v2::releasing, send_release_rp(), and transition_to().
Referenced by process_pdu().


|
nodiscardnoexcept |
Check if the handler is closed.
Definition at line 113 of file dicom_association_handler.cpp.
References kcenon::pacs::network::v2::closed, and state_.
Referenced by on_data_received(), and ~dicom_association_handler().

|
nodiscardnoexcept |
Check if the association is established.
Definition at line 109 of file dicom_association_handler.cpp.
References kcenon::pacs::network::v2::established, and state_.
Referenced by get_association(), and get_association().

|
nodiscardnoexcept |
Get time of last activity.
Definition at line 155 of file dicom_association_handler.cpp.
References last_activity_, and mutex_.
|
nodiscardnoexcept |
Get number of DIMSE messages processed.
Definition at line 193 of file dicom_association_handler.cpp.
References messages_processed_.
|
private |
Handle data received from session.
Definition at line 232 of file dicom_association_handler.cpp.
References is_closed(), mutex_, process_buffer(), receive_buffer_, and touch().
Referenced by feed_data().


|
private |
Handle session disconnection.
Definition at line 248 of file dicom_association_handler.cpp.
References close_handler().
Referenced by handle_disconnect().


|
private |
Handle session error.
Definition at line 252 of file dicom_association_handler.cpp.
References close_handler(), and report_error().
Referenced by handle_error().


|
delete |
|
delete |
|
nodiscardnoexcept |
Get number of PDUs received.
Definition at line 185 of file dicom_association_handler.cpp.
References pdus_received_.
|
nodiscardnoexcept |
Get number of PDUs sent.
Definition at line 189 of file dicom_association_handler.cpp.
References pdus_sent_.
|
private |
Process accumulated buffer for complete PDUs.
Definition at line 264 of file dicom_association_handler.cpp.
References close_handler(), mutex_, pdu_header_size, kcenon::pacs::network::pdu_decoder::pdu_length(), pdus_received_, kcenon::pacs::network::pdu_decoder::peek_pdu_type(), process_pdu(), receive_buffer_, report_error(), send_abort(), kcenon::pacs::network::service_provider, and kcenon::pacs::network::unrecognized_pdu.
Referenced by on_data_received().


|
private |
Process a complete PDU.
Definition at line 313 of file dicom_association_handler.cpp.
References kcenon::pacs::network::abort, kcenon::pacs::network::associate_ac, kcenon::pacs::network::associate_rj, kcenon::pacs::network::associate_rq, close_handler(), kcenon::pacs::network::v2::established, handle_abort(), handle_associate_rq(), handle_p_data_tf(), handle_release_rq(), kcenon::pacs::network::v2::idle, kcenon::pacs::network::p_data_tf, kcenon::pacs::network::release_rp, kcenon::pacs::network::release_rq, report_error(), send_abort(), kcenon::pacs::network::service_provider, state_, kcenon::pacs::network::v2::to_string(), kcenon::pacs::network::unexpected_pdu, and kcenon::pacs::network::unrecognized_pdu.
Referenced by process_buffer().


|
private |
Report error through callback.
Definition at line 762 of file dicom_association_handler.cpp.
References callback_mutex_, error_callback_, and session_id().
Referenced by handle_associate_rq(), handle_p_data_tf(), on_error(), process_buffer(), process_pdu(), and start().


|
private |
Send A-ABORT PDU.
Definition at line 632 of file dicom_association_handler.cpp.
References kcenon::pacs::network::abort, kcenon::pacs::network::pdu_encoder::encode_abort(), and send_pdu().
Referenced by handle_p_data_tf(), process_buffer(), and process_pdu().


|
private |
Send A-ASSOCIATE-AC response.
Definition at line 609 of file dicom_association_handler.cpp.
References kcenon::pacs::network::associate_ac, association_, kcenon::pacs::network::association::build_associate_ac(), kcenon::pacs::network::pdu_encoder::encode_associate_ac(), and send_pdu().
Referenced by handle_associate_rq().


|
private |
Send A-ASSOCIATE-RJ response.
Definition at line 615 of file dicom_association_handler.cpp.
References kcenon::pacs::network::associate_rj, kcenon::pacs::network::pdu_encoder::encode_associate_rj(), and send_pdu().
Referenced by handle_associate_rq().


|
private |
Send P-DATA-TF PDU.
Definition at line 622 of file dicom_association_handler.cpp.
References kcenon::pacs::network::p_data_tf, and send_pdu().

|
private |
Send raw PDU data.
Definition at line 637 of file dicom_association_handler.cpp.
References pdus_sent_, and session_.
Referenced by send_abort(), send_associate_ac(), send_associate_rj(), send_p_data_tf(), and send_release_rp().

|
private |
Send A-RELEASE-RP response.
Definition at line 627 of file dicom_association_handler.cpp.
References kcenon::pacs::network::pdu_encoder::encode_release_rp(), kcenon::pacs::network::release_rp, and send_pdu().
Referenced by handle_release_rq().


|
nodiscard |
Get the session identifier.
Definition at line 117 of file dicom_association_handler.cpp.
References mutex_, and session_.
Referenced by close_handler(), handle_associate_rq(), handle_disconnect(), and report_error().

| void kcenon::pacs::network::v2::dicom_association_handler::set_access_control | ( | std::shared_ptr< security::access_control_manager > | acm | ) |
Set the access control manager for RBAC.
| acm | Shared pointer to access control manager |
Definition at line 201 of file dicom_association_handler.cpp.
References access_control_, and mutex_.
| void kcenon::pacs::network::v2::dicom_association_handler::set_access_control_enabled | ( | bool | enabled | ) |
Enable or disable access control enforcement.
| enabled | If true, access control is enforced |
Definition at line 207 of file dicom_association_handler.cpp.
References access_control_enabled_, and mutex_.
| void kcenon::pacs::network::v2::dicom_association_handler::set_closed_callback | ( | association_closed_callback | callback | ) |
Set callback for association closed event.
| callback | Function called when association is closed |
Definition at line 170 of file dicom_association_handler.cpp.
References callback_mutex_, and closed_callback_.
| void kcenon::pacs::network::v2::dicom_association_handler::set_error_callback | ( | handler_error_callback | callback | ) |
Set callback for error events.
| callback | Function called on errors |
Definition at line 176 of file dicom_association_handler.cpp.
References callback_mutex_, and error_callback_.
| void kcenon::pacs::network::v2::dicom_association_handler::set_established_callback | ( | association_established_callback | callback | ) |
Set callback for association established event.
| callback | Function called when association is established |
Definition at line 164 of file dicom_association_handler.cpp.
References callback_mutex_, and established_callback_.
| void kcenon::pacs::network::v2::dicom_association_handler::start | ( | ) |
Start processing the session.
Sets up receive callbacks and begins handling incoming PDUs. The handler will automatically process association negotiation.
Definition at line 62 of file dicom_association_handler.cpp.
References kcenon::pacs::network::v2::idle, mutex_, report_error(), session_, state_, and touch().

|
nodiscardnoexcept |
Get current handler state.
Definition at line 105 of file dicom_association_handler.cpp.
References state_.
| void kcenon::pacs::network::v2::dicom_association_handler::stop | ( | bool | graceful = false | ) |
Stop the handler and close the session.
Sends an A-ABORT if the association is established and forces immediate closure of the underlying network session.
| graceful | If true, attempt graceful release before aborting |
Definition at line 84 of file dicom_association_handler.cpp.
References close_handler(), kcenon::pacs::network::v2::closed, kcenon::pacs::network::v2::established, kcenon::pacs::network::v2::releasing, state_, and transition_to().
Referenced by ~dicom_association_handler().


|
private |
Update last activity timestamp.
Definition at line 757 of file dicom_association_handler.cpp.
References last_activity_.
Referenced by on_data_received(), and start().

|
private |
Transition to new state.
Definition at line 750 of file dicom_association_handler.cpp.
References state_.
Referenced by close_handler(), handle_associate_rq(), handle_release_rq(), and stop().

|
private |
Access control manager for RBAC.
Definition at line 493 of file dicom_association_handler.h.
Referenced by dispatch_to_service(), handle_associate_rq(), and set_access_control().
|
private |
Whether access control is enabled.
Definition at line 499 of file dicom_association_handler.h.
Referenced by dispatch_to_service(), handle_associate_rq(), and set_access_control_enabled().
|
private |
DICOM association.
Definition at line 461 of file dicom_association_handler.h.
Referenced by called_ae(), calling_ae(), dispatch_to_service(), get_association(), get_association(), handle_abort(), handle_associate_rq(), handle_p_data_tf(), handle_release_rq(), and send_associate_ac().
|
mutableprivate |
Definition at line 490 of file dicom_association_handler.h.
Referenced by close_handler(), handle_associate_rq(), report_error(), set_closed_callback(), set_error_callback(), and set_established_callback().
|
private |
Definition at line 485 of file dicom_association_handler.h.
Referenced by close_handler(), and set_closed_callback().
|
private |
Server configuration.
Definition at line 455 of file dicom_association_handler.h.
Referenced by handle_associate_rq().
|
private |
Current PDU type being received.
Definition at line 473 of file dicom_association_handler.h.
|
private |
Definition at line 486 of file dicom_association_handler.h.
Referenced by report_error(), and set_error_callback().
|
private |
Callbacks.
Definition at line 484 of file dicom_association_handler.h.
Referenced by handle_associate_rq(), and set_established_callback().
|
private |
Expected PDU length (0 if waiting for header)
Definition at line 470 of file dicom_association_handler.h.
|
private |
Last activity timestamp.
Definition at line 476 of file dicom_association_handler.h.
Referenced by last_activity(), and touch().
|
staticconstexpr |
Maximum PDU size for safety checks.
Definition at line 165 of file dicom_association_handler.h.
|
private |
Definition at line 481 of file dicom_association_handler.h.
Referenced by handle_p_data_tf(), and messages_processed().
|
mutableprivate |
Thread safety.
Definition at line 489 of file dicom_association_handler.h.
Referenced by called_ae(), calling_ae(), close_handler(), get_association(), get_association(), last_activity(), on_data_received(), process_buffer(), session_id(), set_access_control(), set_access_control_enabled(), and start().
|
staticconstexpr |
PDU header size (type + reserved + length)
Definition at line 162 of file dicom_association_handler.h.
Referenced by handle_associate_rq(), handle_p_data_tf(), and process_buffer().
|
private |
Statistics.
Definition at line 479 of file dicom_association_handler.h.
Referenced by pdus_received(), and process_buffer().
|
private |
Definition at line 480 of file dicom_association_handler.h.
Referenced by pdus_sent(), and send_pdu().
|
private |
PDU receive buffer.
Definition at line 467 of file dicom_association_handler.h.
Referenced by on_data_received(), and process_buffer().
|
private |
Service registry (non-owning pointers)
Definition at line 458 of file dicom_association_handler.h.
Referenced by find_service(), and handle_associate_rq().
|
private |
Network session.
Definition at line 452 of file dicom_association_handler.h.
Referenced by close_handler(), send_pdu(), session_id(), and start().
|
private |
Current handler state.
Definition at line 464 of file dicom_association_handler.h.
Referenced by close_handler(), is_closed(), is_established(), process_pdu(), start(), state(), stop(), and transition_to().
|
private |
User context for this association (set after A-ASSOCIATE negotiation)
Definition at line 496 of file dicom_association_handler.h.
Referenced by dispatch_to_service(), and handle_associate_rq().