|
//----------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//----------------------------------------------------------------
namespace System.ServiceModel.Discovery
{
using System.Runtime;
using System.ServiceModel.Channels;
using System.Diagnostics.CodeAnalysis;
[Fx.Tag.XamlVisible(false)]
public class UdpTransportSettings
{
int maxPendingMessageCount;
internal UdpTransportSettings(UdpTransportBindingElement udpTransportBindingElement)
{
this.maxPendingMessageCount = UdpConstants.Defaults.MaxPendingMessageCount;
this.UdpTransportBindingElement = udpTransportBindingElement;
}
public int DuplicateMessageHistoryLength
{
get
{
return this.UdpTransportBindingElement.DuplicateMessageHistoryLength;
}
set
{
this.UdpTransportBindingElement.DuplicateMessageHistoryLength = value;
}
}
public int MaxPendingMessageCount
{
get
{
return this.maxPendingMessageCount;
}
set
{
this.maxPendingMessageCount = value;
this.UdpTransportBindingElement.MaxPendingMessagesTotalSize = this.MaxReceivedMessageSize * this.MaxPendingMessageCount;
}
}
public int MaxMulticastRetransmitCount
{
get
{
return this.UdpTransportBindingElement.RetransmissionSettings.MaxMulticastRetransmitCount;
}
set
{
this.UdpTransportBindingElement.RetransmissionSettings.MaxMulticastRetransmitCount = value;
}
}
[SuppressMessage(FxCop.Category.Naming, FxCop.Rule.IdentifiersShouldBeSpelledCorrectly, Justification = "Unicast is a valid name.")]
public int MaxUnicastRetransmitCount
{
get
{
return this.UdpTransportBindingElement.RetransmissionSettings.MaxUnicastRetransmitCount;
}
set
{
this.UdpTransportBindingElement.RetransmissionSettings.MaxUnicastRetransmitCount = value;
}
}
public string MulticastInterfaceId
{
get
{
return this.UdpTransportBindingElement.MulticastInterfaceId;
}
set
{
this.UdpTransportBindingElement.MulticastInterfaceId = value;
}
}
public int SocketReceiveBufferSize
{
get
{
return this.UdpTransportBindingElement.SocketReceiveBufferSize;
}
set
{
this.UdpTransportBindingElement.SocketReceiveBufferSize = value;
}
}
public long MaxReceivedMessageSize
{
get
{
return this.UdpTransportBindingElement.MaxReceivedMessageSize;
}
set
{
this.UdpTransportBindingElement.MaxReceivedMessageSize = value;
}
}
public long MaxBufferPoolSize
{
get
{
return this.UdpTransportBindingElement.MaxBufferPoolSize;
}
set
{
this.UdpTransportBindingElement.MaxBufferPoolSize = value;
}
}
public int TimeToLive
{
get
{
return this.UdpTransportBindingElement.TimeToLive;
}
set
{
this.UdpTransportBindingElement.TimeToLive = value;
}
}
internal UdpTransportBindingElement UdpTransportBindingElement
{
get;
private set;
}
}
}
|