ConnectionManagementSection.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / Net / System / Net / Configuration / ConnectionManagementSection.cs / 1 / ConnectionManagementSection.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 

namespace System.Net.Configuration 
{ 
    using System.Configuration;
    using System.Collections; 
    using System.Threading;
    public sealed class ConnectionManagementSection : ConfigurationSection
    {
        public ConnectionManagementSection() 
        {
            this.properties.Add(this.connectionManagement); 
        } 

        [ConfigurationProperty("", IsDefaultCollection = true)] 
        public ConnectionManagementElementCollection ConnectionManagement
        {
            get { return (ConnectionManagementElementCollection)this[this.connectionManagement]; }
        } 

        protected override ConfigurationPropertyCollection Properties 
        { 
            get { return this.properties; }
        } 

        ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();

        readonly ConfigurationProperty connectionManagement = 
            new ConfigurationProperty(null, typeof(ConnectionManagementElementCollection), null,
                    ConfigurationPropertyOptions.IsDefaultCollection); 
    } 

    internal sealed class ConnectionManagementSectionInternal 
    {
        internal ConnectionManagementSectionInternal(ConnectionManagementSection section)
        {
            if (section.ConnectionManagement.Count > 0) 
            {
                this.connectionManagement = new Hashtable(section.ConnectionManagement.Count); 
                foreach(ConnectionManagementElement connectionManagementElement in section.ConnectionManagement) 
                {
                    this.connectionManagement[connectionManagementElement.Address] = connectionManagementElement.MaxConnection; 
                }
            }
        }
 
        internal Hashtable ConnectionManagement
        { 
            get 
            {
                Hashtable retval = this.connectionManagement; 
                if (retval == null)
                {
                    retval = new Hashtable();
                } 
                return retval;
            } 
        } 

        internal static object ClassSyncObject 
        {
            get
            {
                if (classSyncObject == null) 
                {
                    object o = new object(); 
                    Interlocked.CompareExchange(ref classSyncObject, o, null); 
                }
                return classSyncObject; 
            }
        }

        static internal ConnectionManagementSectionInternal GetSection() 
        {
            lock (ConnectionManagementSectionInternal.ClassSyncObject) 
            { 
                ConnectionManagementSection section = PrivilegedConfigurationManager.GetSection(ConfigurationStrings.ConnectionManagementSectionPath) as ConnectionManagementSection;
                if (section == null) 
                    return null;

                return new ConnectionManagementSectionInternal(section);
            } 
        }
 
        Hashtable connectionManagement = null; 
        static object classSyncObject = null;
    } 
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 

namespace System.Net.Configuration 
{ 
    using System.Configuration;
    using System.Collections; 
    using System.Threading;
    public sealed class ConnectionManagementSection : ConfigurationSection
    {
        public ConnectionManagementSection() 
        {
            this.properties.Add(this.connectionManagement); 
        } 

        [ConfigurationProperty("", IsDefaultCollection = true)] 
        public ConnectionManagementElementCollection ConnectionManagement
        {
            get { return (ConnectionManagementElementCollection)this[this.connectionManagement]; }
        } 

        protected override ConfigurationPropertyCollection Properties 
        { 
            get { return this.properties; }
        } 

        ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();

        readonly ConfigurationProperty connectionManagement = 
            new ConfigurationProperty(null, typeof(ConnectionManagementElementCollection), null,
                    ConfigurationPropertyOptions.IsDefaultCollection); 
    } 

    internal sealed class ConnectionManagementSectionInternal 
    {
        internal ConnectionManagementSectionInternal(ConnectionManagementSection section)
        {
            if (section.ConnectionManagement.Count > 0) 
            {
                this.connectionManagement = new Hashtable(section.ConnectionManagement.Count); 
                foreach(ConnectionManagementElement connectionManagementElement in section.ConnectionManagement) 
                {
                    this.connectionManagement[connectionManagementElement.Address] = connectionManagementElement.MaxConnection; 
                }
            }
        }
 
        internal Hashtable ConnectionManagement
        { 
            get 
            {
                Hashtable retval = this.connectionManagement; 
                if (retval == null)
                {
                    retval = new Hashtable();
                } 
                return retval;
            } 
        } 

        internal static object ClassSyncObject 
        {
            get
            {
                if (classSyncObject == null) 
                {
                    object o = new object(); 
                    Interlocked.CompareExchange(ref classSyncObject, o, null); 
                }
                return classSyncObject; 
            }
        }

        static internal ConnectionManagementSectionInternal GetSection() 
        {
            lock (ConnectionManagementSectionInternal.ClassSyncObject) 
            { 
                ConnectionManagementSection section = PrivilegedConfigurationManager.GetSection(ConfigurationStrings.ConnectionManagementSectionPath) as ConnectionManagementSection;
                if (section == null) 
                    return null;

                return new ConnectionManagementSectionInternal(section);
            } 
        }
 
        Hashtable connectionManagement = null; 
        static object classSyncObject = null;
    } 
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK