//----------------------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.ServiceModel.Configuration { using System.ComponentModel; using System.Configuration; using System.Runtime; using System.ServiceModel.Channels; public sealed partial class UdpRetransmissionSettingsElement : ServiceModelConfigurationElement { public UdpRetransmissionSettingsElement() { } internal void ApplyConfiguration(UdpRetransmissionSettings udpRetransmissionSettings) { udpRetransmissionSettings.DelayLowerBound = this.DelayLowerBound; udpRetransmissionSettings.DelayUpperBound = this.DelayUpperBound; udpRetransmissionSettings.MaxDelayPerRetransmission = this.MaxDelayPerRetransmission; udpRetransmissionSettings.MaxMulticastRetransmitCount = this.MaxMulticastRetransmitCount; udpRetransmissionSettings.MaxUnicastRetransmitCount = this.MaxUnicastRetransmitCount; } internal void InitializeFrom(UdpRetransmissionSettings udpRetransmissionSettings) { if (udpRetransmissionSettings == null) { throw FxTrace.Exception.ArgumentNull("udpRetransmissionSettings"); } this.SetPropertyValueIfNotDefaultValue(UdpTransportConfigurationStrings.DelayLowerBound, udpRetransmissionSettings.DelayLowerBound); this.SetPropertyValueIfNotDefaultValue(UdpTransportConfigurationStrings.DelayUpperBound, udpRetransmissionSettings.DelayUpperBound); this.SetPropertyValueIfNotDefaultValue(UdpTransportConfigurationStrings.MaxDelayPerRetransmission, udpRetransmissionSettings.MaxDelayPerRetransmission); this.SetPropertyValueIfNotDefaultValue(UdpTransportConfigurationStrings.MaxMulticastRetransmitCount, udpRetransmissionSettings.MaxMulticastRetransmitCount); this.SetPropertyValueIfNotDefaultValue(UdpTransportConfigurationStrings.MaxUnicastRetransmitCount, udpRetransmissionSettings.MaxUnicastRetransmitCount); } [ConfigurationProperty(UdpTransportConfigurationStrings.DelayLowerBound, DefaultValue = UdpConstants.Defaults.DelayLowerBound)] [TypeConverter(typeof(TimeSpanOrInfiniteConverter))] [ServiceModelTimeSpanValidator(MinValueString = UdpConstants.TimeSpanZero)] public TimeSpan DelayLowerBound { get { return (TimeSpan)base[UdpTransportConfigurationStrings.DelayLowerBound]; } set { base[UdpTransportConfigurationStrings.DelayLowerBound] = value; } } [ConfigurationProperty(UdpTransportConfigurationStrings.DelayUpperBound, DefaultValue = UdpConstants.Defaults.DelayUpperBound)] [TypeConverter(typeof(TimeSpanOrInfiniteConverter))] [ServiceModelTimeSpanValidator(MinValueString = UdpConstants.TimeSpanZero)] public TimeSpan DelayUpperBound { get { return (TimeSpan)base[UdpTransportConfigurationStrings.DelayUpperBound]; } set { base[UdpTransportConfigurationStrings.DelayUpperBound] = value; } } [ConfigurationProperty(UdpTransportConfigurationStrings.MaxDelayPerRetransmission, DefaultValue = UdpConstants.Defaults.MaxDelayPerRetransmission)] [TypeConverter(typeof(TimeSpanOrInfiniteConverter))] [ServiceModelTimeSpanValidator(MinValueString = UdpConstants.TimeSpanZero)] public TimeSpan MaxDelayPerRetransmission { get { return (TimeSpan)base[UdpTransportConfigurationStrings.MaxDelayPerRetransmission]; } set { base[UdpTransportConfigurationStrings.MaxDelayPerRetransmission] = value; } } [ConfigurationProperty(UdpTransportConfigurationStrings.MaxMulticastRetransmitCount, DefaultValue = UdpConstants.Defaults.MaxMulticastRetransmitCount)] [IntegerValidator(MinValue = 0)] public int MaxMulticastRetransmitCount { get { return (int)base[UdpTransportConfigurationStrings.MaxMulticastRetransmitCount]; } set { base[UdpTransportConfigurationStrings.MaxMulticastRetransmitCount] = value; } } [ConfigurationProperty(UdpTransportConfigurationStrings.MaxUnicastRetransmitCount, DefaultValue = UdpConstants.Defaults.MaxUnicastRetransmitCount)] [IntegerValidator(MinValue = 0)] public int MaxUnicastRetransmitCount { get { return (int)base[UdpTransportConfigurationStrings.MaxUnicastRetransmitCount]; } set { base[UdpTransportConfigurationStrings.MaxUnicastRetransmitCount] = value; } } } }