File: System\ServiceModel\Activation\TcpHostedTransportConfiguration.cs
Project: ndp\cdf\src\WCF\System.ServiceModel.Activation\System.ServiceModel.Activation.csproj (System.ServiceModel.Activation)
//----------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation.  All rights reserved.
//----------------------------------------------------------------------------
 
 
namespace System.ServiceModel.Activation
{
    using System.Collections.Generic;
    using System.ServiceModel;
    using System.ServiceModel.Channels;
    using System.Diagnostics;
 
    sealed class TcpHostedTransportConfiguration : HostedTransportConfigurationBase
    {
        HostedTcpTransportManager uniqueManager;
 
        public TcpHostedTransportConfiguration()
            : base(Uri.UriSchemeNetTcp)
        {
            string[] bindings = HostedTransportConfigurationManager.MetabaseSettings.GetBindings(Uri.UriSchemeNetTcp);
            for (int i = 0; i < bindings.Length; i++)
            {
                BaseUriWithWildcard listenAddress = BaseUriWithWildcard.CreateHostedUri(Uri.UriSchemeNetTcp, bindings[i], HostingEnvironmentWrapper.ApplicationVirtualPath);
                if (i == 0)
                {
                    Debug.Print("TcpHostedTransportConfiguration.ctor() Creating the unique TcpTransportManager with ListenUri:" + listenAddress.BaseAddress);
                    uniqueManager = new HostedTcpTransportManager(listenAddress);
                }
 
                this.ListenAddresses.Add(listenAddress);
                Debug.Print("Registering the unique TcpTransportManager with ListenUri:" + listenAddress.BaseAddress);
                TcpChannelListener.StaticTransportManagerTable.RegisterUri(listenAddress.BaseAddress, listenAddress.HostNameComparisonMode, uniqueManager);
            }
        }
 
        internal TcpTransportManager TransportManager { get { return uniqueManager; } }
    }
}