17#ifndef PACS_NETWORK_SERVER_CONFIG_HPP
18#define PACS_NETWORK_SERVER_CONFIG_HPP
88 ,
port(listen_port) {}
123 [[nodiscard]] std::chrono::seconds
uptime() const noexcept {
124 auto now = std::chrono::steady_clock::now();
125 return std::chrono::duration_cast<std::chrono::seconds>(now -
start_time);
constexpr uint32_t DEFAULT_MAX_PDU_LENGTH
Maximum PDU length recommended by DICOM (16384 bytes)
size_t max_associations
Maximum concurrent associations (0 = unlimited)
server_config()=default
Default constructor with sensible defaults.
std::chrono::seconds idle_timeout
Idle timeout for associations (0 = no timeout)
uint32_t max_pdu_size
Maximum PDU size for data transfer.
std::vector< std::string > ae_whitelist
AE Title whitelist (empty = accept all)
std::string implementation_version_name
Implementation Version Name.
uint16_t port
Port to listen on (default: 11112, standard alternate DICOM port)
std::string ae_title
Application Entity Title for this server (16 chars max)
server_config(std::string ae, uint16_t listen_port)
Construct with minimal required parameters.
std::string implementation_class_uid
Implementation Class UID.
bool accept_unknown_calling_ae
Accept unknown calling AE titles (when whitelist is non-empty)
std::chrono::seconds association_timeout
Timeout for association negotiation.
Statistics for server monitoring.
std::chrono::steady_clock::time_point last_activity
Time of last activity.
uint64_t total_associations
Total associations since server start.
uint64_t messages_processed
Total DIMSE messages processed.
std::chrono::seconds uptime() const noexcept
Get server uptime.
size_t active_associations
Currently active associations.
uint64_t bytes_sent
Total bytes sent.
std::chrono::steady_clock::time_point start_time
Server start time.
uint64_t bytes_received
Total bytes received.
uint64_t rejected_associations
Total associations rejected due to limit.