using System; namespace MxGateway.Worker.Ipc; public sealed class WorkerPipeSessionOptions { public static readonly TimeSpan DefaultHeartbeatInterval = TimeSpan.FromSeconds(5); public static readonly TimeSpan DefaultHeartbeatGrace = TimeSpan.FromSeconds(15); public WorkerPipeSessionOptions() { HeartbeatInterval = DefaultHeartbeatInterval; HeartbeatGrace = DefaultHeartbeatGrace; } public TimeSpan HeartbeatInterval { get; set; } public TimeSpan HeartbeatGrace { get; set; } public void Validate() { if (HeartbeatInterval <= TimeSpan.Zero) { throw new ArgumentOutOfRangeException( nameof(HeartbeatInterval), "Worker heartbeat interval must be greater than zero."); } if (HeartbeatGrace <= TimeSpan.Zero) { throw new ArgumentOutOfRangeException( nameof(HeartbeatGrace), "Worker heartbeat grace must be greater than zero."); } } }