瀏覽代碼

2005-06-15 Lluis Sanchez Gual <[email protected]>

	* IInternalConfigRoot.cs, IInternalConfigSettingsFactory.cs,
	IConfigSystem.cs, IConfigurationManagerInternal.cs,
	IInternalConfigSystem.cs, IInternalConfigRecord.cs,
	IInternalConfigConfigurationFactory.cs, InternalConfigEventArgs.cs,
	IInternalConfigClientHost.cs, StreamChangeCallback.cs,
	IInternalConfigHost.cs, IConfigErrorInfo.cs, DelegatingConfigHost.cs,
	IConfigurationManagerHelper.cs, ChangeLog, InternalConfigEventHandler.cs:
		Added.

svn path=/trunk/mcs/; revision=46057
Lluis Sanchez 20 年之前
父節點
當前提交
9144511315
共有 16 個文件被更改,包括 871 次插入0 次删除
  1. 10 0
      mcs/class/System.Configuration/System.Configuration.Internal/ChangeLog
  2. 209 0
      mcs/class/System.Configuration/System.Configuration.Internal/DelegatingConfigHost.cs
  3. 42 0
      mcs/class/System.Configuration/System.Configuration.Internal/IConfigErrorInfo.cs
  4. 43 0
      mcs/class/System.Configuration/System.Configuration.Internal/IConfigSystem.cs
  5. 42 0
      mcs/class/System.Configuration/System.Configuration.Internal/IConfigurationManagerHelper.cs
  6. 48 0
      mcs/class/System.Configuration/System.Configuration.Internal/IConfigurationManagerInternal.cs
  7. 43 0
      mcs/class/System.Configuration/System.Configuration.Internal/IInternalConfigClientHost.cs
  8. 43 0
      mcs/class/System.Configuration/System.Configuration.Internal/IInternalConfigConfigurationFactory.cs
  9. 76 0
      mcs/class/System.Configuration/System.Configuration.Internal/IInternalConfigHost.cs
  10. 50 0
      mcs/class/System.Configuration/System.Configuration.Internal/IInternalConfigRecord.cs
  11. 50 0
      mcs/class/System.Configuration/System.Configuration.Internal/IInternalConfigRoot.cs
  12. 43 0
      mcs/class/System.Configuration/System.Configuration.Internal/IInternalConfigSettingsFactory.cs
  13. 45 0
      mcs/class/System.Configuration/System.Configuration.Internal/IInternalConfigSystem.cs
  14. 51 0
      mcs/class/System.Configuration/System.Configuration.Internal/InternalConfigEventArgs.cs
  15. 38 0
      mcs/class/System.Configuration/System.Configuration.Internal/InternalConfigEventHandler.cs
  16. 38 0
      mcs/class/System.Configuration/System.Configuration.Internal/StreamChangeCallback.cs

+ 10 - 0
mcs/class/System.Configuration/System.Configuration.Internal/ChangeLog

@@ -0,0 +1,10 @@
+2005-06-15  Lluis Sanchez Gual <[email protected]>
+
+	* IInternalConfigRoot.cs, IInternalConfigSettingsFactory.cs,
+	IConfigSystem.cs, IConfigurationManagerInternal.cs,
+	IInternalConfigSystem.cs, IInternalConfigRecord.cs,
+	IInternalConfigConfigurationFactory.cs, InternalConfigEventArgs.cs,
+	IInternalConfigClientHost.cs, StreamChangeCallback.cs,
+	IInternalConfigHost.cs, IConfigErrorInfo.cs, DelegatingConfigHost.cs,
+	IConfigurationManagerHelper.cs, ChangeLog, InternalConfigEventHandler.cs:
+		Added.

+ 209 - 0
mcs/class/System.Configuration/System.Configuration.Internal/DelegatingConfigHost.cs

@@ -0,0 +1,209 @@
+//
+// System.Configuration.Internal.IConfigErrorInfo.cs
+//
+// Authors:
+//  Lluis Sanchez Gual ([email protected])
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//
+
+#if NET_2_0
+
+using System;
+using System.IO;
+using System.Security;
+
+namespace System.Configuration.Internal
+{
+	public class DelegatingConfigHost: IInternalConfigHost
+	{
+		IInternalConfigHost host;
+		
+		protected DelegatingConfigHost ()
+		{
+		}
+		
+		protected IInternalConfigHost Host {
+			get { return host; }
+			set { host = value; }
+		}
+		
+		public virtual object CreateConfigurationContext (string configPath, string locationSubPath)
+		{
+			return host.CreateConfigurationContext (configPath, locationSubPath);
+		}
+		
+		public virtual object CreateDeprecatedConfigContext (string configPath)
+		{
+			return host.CreateDeprecatedConfigContext (configPath);
+		}
+		
+		public virtual string DecryptSection (string encryptedXml, ProtectedConfigurationProvider protectionProvider, ProtectedConfigurationSection protectedSection)
+		{
+			return host.DecryptSection (encryptedXml, protectionProvider, protectedSection);
+		}
+		
+		public virtual void DeleteStream (string streamName)
+		{
+			host.DeleteStream (streamName);
+		}
+		
+		public virtual string EncryptSection (string encryptedXml, ProtectedConfigurationProvider protectionProvider, ProtectedConfigurationSection protectedSection)
+		{
+			return host.EncryptSection (encryptedXml, protectionProvider, protectedSection);
+		}
+		
+		public virtual string GetConfigPathFromLocationSubPath (string configPath, string locatinSubPath)
+		{
+			return host.GetConfigPathFromLocationSubPath (configPath, locatinSubPath);
+		}
+		
+		public virtual Type GetConfigType (string typeName, bool throwOnError)
+		{
+			return host.GetConfigType (typeName, throwOnError);
+		}
+		
+		public virtual string GetConfigTypeName (Type t)
+		{
+			return host.GetConfigTypeName (t);
+		}
+		
+		public virtual void GetRestrictedPermissions (IInternalConfigRecord configRecord, out PermissionSet permissionSet, out bool isHostReady)
+		{
+			host.GetRestrictedPermissions (configRecord, out permissionSet, out isHostReady);
+		}
+		
+		public virtual string GetStreamName (string configPath)
+		{
+			return host.GetStreamName (configPath);
+		}
+		
+		public virtual string GetStreamNameForConfigSource (string streamName, string configSource)
+		{
+			return host.GetStreamNameForConfigSource (streamName, configSource);
+		}
+		
+		public virtual object GetStreamVersion (string streamName)
+		{
+			return host.GetStreamVersion (streamName);
+		}
+		
+		public virtual IDisposable Impersonate ()
+		{
+			return host.Impersonate ();
+		}
+		
+		public virtual void Init (IInternalConfigRoot root, params object[] hostInitParams)
+		{
+			host.Init (root, hostInitParams);
+		}
+		
+		public virtual void InitForConfiguration (ref string locationSubPath, out string configPath, out string locationConfigPath, IInternalConfigRoot root, params object[] hostInitConfigurationParams)
+		{
+			host.InitForConfiguration (ref locationSubPath, out configPath, out locationConfigPath, root, hostInitConfigurationParams);
+		}
+		
+		public virtual bool IsAboveApplication (string configPath)
+		{
+			return host.IsAboveApplication (configPath);
+		}
+		
+		public virtual bool IsConfigRecordRequired (string configPath)
+		{
+			return host.IsConfigRecordRequired (configPath);
+		}
+		
+		public virtual bool IsDefinitionAllowed (string configPath, ConfigurationAllowDefinition allowDefinition, ConfigurationAllowExeDefinition allowExeDefinition)
+		{
+			return host.IsDefinitionAllowed (configPath, allowDefinition, allowExeDefinition);
+		}
+		
+		public virtual bool IsFile (string streamName)
+		{
+			return host.IsFile (streamName);
+		}
+		
+		public virtual bool IsLocationApplicable (string configPath)
+		{
+			return host.IsLocationApplicable (configPath);
+		}
+		
+		public virtual Stream OpenStreamForRead (string streamName)
+		{
+			return host.OpenStreamForRead (streamName);
+		}
+		
+		public virtual Stream OpenStreamForWrite (string streamName, string templateStreamName, ref object writeContext)
+		{
+			return host.OpenStreamForWrite (streamName, templateStreamName, ref writeContext);
+		}
+		
+		public virtual bool PrefetchAll (string configPath, string streamName)
+		{
+			return host.PrefetchAll (configPath, streamName);
+		}
+		
+		public virtual bool PrefetchSection (string sectionGroupName, string sectionName)
+		{
+			return host.PrefetchSection (sectionGroupName, sectionName);
+		}
+		
+		public virtual object StartMonitoringStreamForChanges (string streamName, StreamChangeCallback callback)
+		{
+			return host.StartMonitoringStreamForChanges (streamName, callback);
+		}
+		
+		public virtual void StopMonitoringStreamForChanges (string streamName, StreamChangeCallback callback)
+		{
+			host.StopMonitoringStreamForChanges (streamName, callback);
+		}
+		
+		public virtual void VerifyDefinitionAllowed (string configPath, ConfigurationAllowDefinition allowDefinition, ConfigurationAllowExeDefinition allowExeDefinition, IConfigErrorInfo errorInfo)
+		{
+			host.VerifyDefinitionAllowed (configPath, allowDefinition, allowExeDefinition, errorInfo);
+		}
+		
+		public virtual void WriteCompleted (string streamName, bool success, object writeContext)
+		{
+			host.WriteCompleted (streamName, success, writeContext);
+		}
+		
+		
+		public virtual bool SupportsChangeNotifications {
+			get { return host.SupportsChangeNotifications; }
+		}
+		
+		public virtual bool SupportsLocation {
+			get { return host.SupportsLocation; }
+		}
+		
+		public virtual bool SupportsPath {
+			get { return host.SupportsPath; }
+		}
+		
+		public virtual bool SupportsRefresh	{
+			get { return host.SupportsRefresh; }
+		}
+	}
+}
+
+#endif

+ 42 - 0
mcs/class/System.Configuration/System.Configuration.Internal/IConfigErrorInfo.cs

@@ -0,0 +1,42 @@
+//
+// System.Configuration.Internal.IConfigErrorInfo.cs
+//
+// Authors:
+//  Lluis Sanchez Gual ([email protected])
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//
+
+#if NET_2_0
+
+using System;
+
+namespace System.Configuration.Internal
+{
+	public interface IConfigErrorInfo
+	{
+		string Filename { get; }
+		int LineNumber { get; }
+	}
+}
+
+#endif

+ 43 - 0
mcs/class/System.Configuration/System.Configuration.Internal/IConfigSystem.cs

@@ -0,0 +1,43 @@
+//
+// System.Configuration.Internal.IConfigSystem.cs
+//
+// Authors:
+//  Lluis Sanchez Gual ([email protected])
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//
+
+#if NET_2_0
+
+using System;
+
+namespace System.Configuration.Internal
+{
+	public interface IConfigSystem
+	{
+		IInternalConfigHost Host { get; }
+		IInternalConfigRoot Root { get; }
+		void Init (Type typeConfigHost, params object[] hostInitParams);
+	}
+}
+
+#endif

+ 42 - 0
mcs/class/System.Configuration/System.Configuration.Internal/IConfigurationManagerHelper.cs

@@ -0,0 +1,42 @@
+//
+// System.Configuration.Internal.IConfigurationManagerHelper.cs
+//
+// Authors:
+//  Lluis Sanchez Gual ([email protected])
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//
+
+#if NET_2_0
+
+using System;
+
+namespace System.Configuration.Internal
+{
+	[System.Runtime.InteropServices.ComVisible (false)]
+	public interface IConfigurationManagerHelper
+	{
+		void EnsureNetConfigLoaded ();
+	}
+}
+
+#endif

+ 48 - 0
mcs/class/System.Configuration/System.Configuration.Internal/IConfigurationManagerInternal.cs

@@ -0,0 +1,48 @@
+//
+// System.Configuration.Internal.IConfigurationManagerInternal.cs
+//
+// Authors:
+//  Lluis Sanchez Gual ([email protected])
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//
+
+#if NET_2_0
+
+using System;
+
+namespace System.Configuration.Internal
+{
+	[System.Runtime.InteropServices.ComVisible (false)]
+	public interface IConfigurationManagerInternal
+	{
+		string ExeLocalConfigDirectory { get; }
+		string ExeProductName { get; }
+		string ExeProductVersion { get; }
+		string ExeRoamingConfigDirectory { get; }
+		bool SetConfigurationSystemInProgress { get; }
+		bool SupportsUserConfig { get; }
+		string UserConfigFilename { get; }
+	}
+}
+
+#endif

+ 43 - 0
mcs/class/System.Configuration/System.Configuration.Internal/IInternalConfigClientHost.cs

@@ -0,0 +1,43 @@
+//
+// System.Configuration.Internal.IInternalConfigClientHost.cs
+//
+// Authors:
+//  Lluis Sanchez Gual ([email protected])
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//
+
+#if NET_2_0
+
+using System;
+
+namespace System.Configuration.Internal
+{
+	[System.Runtime.InteropServices.ComVisible (false)]
+	public interface IInternalConfigClientHost
+	{
+		string GetExeConfigPath ();
+		bool IsExeConfig (string configPath);
+	}
+}
+
+#endif

+ 43 - 0
mcs/class/System.Configuration/System.Configuration.Internal/IInternalConfigConfigurationFactory.cs

@@ -0,0 +1,43 @@
+//
+// System.Configuration.Internal.IInternalConfigConfigurationFactory.cs
+//
+// Authors:
+//  Lluis Sanchez Gual ([email protected])
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//
+
+#if NET_2_0
+
+using System;
+
+namespace System.Configuration.Internal
+{
+	[System.Runtime.InteropServices.ComVisible (false)]
+	public interface IInternalConfigConfigurationFactory
+	{
+		Configuration Create (Type typeConfigHost, params object[] hostInitConfigurationParams);
+		string NormalizeLocationSubPath (string subPath, IConfigErrorInfo errorInfo);
+	}
+}
+
+#endif

+ 76 - 0
mcs/class/System.Configuration/System.Configuration.Internal/IInternalConfigHost.cs

@@ -0,0 +1,76 @@
+//
+// System.Configuration.Internal.IInternalConfigHost.cs
+//
+// Authors:
+//  Lluis Sanchez Gual ([email protected])
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//
+
+#if NET_2_0
+
+using System;
+using System.IO;
+using System.Security;
+
+namespace System.Configuration.Internal
+{
+	[System.Runtime.InteropServices.ComVisible (false)]
+	public interface IInternalConfigHost
+	{
+		object CreateConfigurationContext (string configPath, string locationSubPath);
+		object CreateDeprecatedConfigContext (string configPath);
+		string DecryptSection (string encryptedXml, ProtectedConfigurationProvider protectionProvider, ProtectedConfigurationSection protectedSection);
+		void DeleteStream (string streamName);
+		string EncryptSection (string encryptedXml, ProtectedConfigurationProvider protectionProvider, ProtectedConfigurationSection protectedSection);
+		string GetConfigPathFromLocationSubPath (string configPath, string locatinSubPath);
+		Type GetConfigType (string typeName, bool throwOnError);
+		string GetConfigTypeName (Type t);
+		void GetRestrictedPermissions (IInternalConfigRecord configRecord, out PermissionSet permissionSet, out bool isHostReady);
+		string GetStreamName (string configPath);
+		string GetStreamNameForConfigSource (string streamName, string configSource);
+		object GetStreamVersion (string streamName);
+		IDisposable Impersonate ();
+		void Init (IInternalConfigRoot root, params object[] hostInitParams);
+		void InitForConfiguration (ref string locationSubPath, out string configPath, out string locationConfigPath, IInternalConfigRoot root, params object[] hostInitConfigurationParams);
+		bool IsAboveApplication (string configPath);
+		bool IsConfigRecordRequired (string configPath);
+		bool IsDefinitionAllowed (string configPath, ConfigurationAllowDefinition allowDefinition, ConfigurationAllowExeDefinition allowExeDefinition);
+		bool IsFile (string streamName);
+		bool IsLocationApplicable (string configPath);
+		Stream OpenStreamForRead (string streamName);
+		Stream OpenStreamForWrite (string streamName, string templateStreamName, ref object writeContext);
+		bool PrefetchAll (string configPath, string streamName);
+		bool PrefetchSection (string sectionGroupName, string sectionName);
+		object StartMonitoringStreamForChanges (string streamName, StreamChangeCallback callback);
+		void StopMonitoringStreamForChanges (string streamName, StreamChangeCallback callback);
+		void VerifyDefinitionAllowed (string configPath, ConfigurationAllowDefinition allowDefinition, ConfigurationAllowExeDefinition allowExeDefinition, IConfigErrorInfo errorInfo);
+		void WriteCompleted (string streamName, bool success, object writeContext);
+		
+		bool SupportsChangeNotifications { get; }
+		bool SupportsLocation { get; }
+		bool SupportsPath { get; }
+		bool SupportsRefresh { get; }
+	}
+}
+
+#endif

+ 50 - 0
mcs/class/System.Configuration/System.Configuration.Internal/IInternalConfigRecord.cs

@@ -0,0 +1,50 @@
+//
+// System.Configuration.Internal.IInternalConfigRecord.cs
+//
+// Authors:
+//  Lluis Sanchez Gual ([email protected])
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//
+
+#if NET_2_0
+
+using System;
+
+namespace System.Configuration.Internal
+{
+	[System.Runtime.InteropServices.ComVisible (false)]
+	public interface IInternalConfigRecord
+	{
+		object GetLkgSection (string configKey);
+		object GetSection (string configKey);
+		void RefreshSection (string configKey);
+		void Remove ();
+		void ThrowIfInitErrors ();
+		
+		string ConfigPath { get; }
+		bool HasInitErrors { get; }
+		string StreamName { get; }
+	}
+}
+
+#endif

+ 50 - 0
mcs/class/System.Configuration/System.Configuration.Internal/IInternalConfigRoot.cs

@@ -0,0 +1,50 @@
+//
+// System.Configuration.Internal.IInternalConfigRoot.cs
+//
+// Authors:
+//  Lluis Sanchez Gual ([email protected])
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//
+
+#if NET_2_0
+
+using System;
+
+namespace System.Configuration.Internal
+{
+	[System.Runtime.InteropServices.ComVisible (false)]
+	public interface IInternalConfigRoot
+	{
+		IInternalConfigRecord GetConfigRecord (string configPath);
+		object GetSection (string section, string configPath);
+		string GetUniqueConfigPath (string configPath);
+		IInternalConfigRecord GetUniqueConfigRecord (string configPath);
+		void Init (IInternalConfigHost host, bool isDesignTime);
+		void RemoveConfig (string configPath);
+		
+		event InternalConfigEventHandler ConfigChanged;
+		event InternalConfigEventHandler ConfigRemoved;
+	}
+}
+
+#endif

+ 43 - 0
mcs/class/System.Configuration/System.Configuration.Internal/IInternalConfigSettingsFactory.cs

@@ -0,0 +1,43 @@
+//
+// System.Configuration.Internal.IInternalConfigSettingsFactory.cs
+//
+// Authors:
+//  Lluis Sanchez Gual ([email protected])
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//
+
+#if NET_2_0
+
+using System;
+
+namespace System.Configuration.Internal
+{
+	[System.Runtime.InteropServices.ComVisible (false)]
+	public interface IInternalConfigSettingsFactory
+	{
+		void CompleteInit ();
+		void SetConfigurationSystem (IInternalConfigSystem internalConfigSystem, bool initComplete);
+	}
+}
+
+#endif

+ 45 - 0
mcs/class/System.Configuration/System.Configuration.Internal/IInternalConfigSystem.cs

@@ -0,0 +1,45 @@
+//
+// System.Configuration.Internal.IInternalConfigSystem.cs
+//
+// Authors:
+//  Lluis Sanchez Gual ([email protected])
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//
+
+#if NET_2_0
+
+using System;
+
+namespace System.Configuration.Internal
+{
+	[System.Runtime.InteropServices.ComVisible (false)]
+	public interface IInternalConfigSystem
+	{
+		object GetSection (string configKey);
+		void RefreshConfig (string sectionName);
+		
+		bool SupportsUserConfig { get; }
+	}
+}
+
+#endif

+ 51 - 0
mcs/class/System.Configuration/System.Configuration.Internal/InternalConfigEventArgs.cs

@@ -0,0 +1,51 @@
+//
+// System.Configuration.Internal.InternalConfigEventArgs.cs
+//
+// Authors:
+//  Lluis Sanchez Gual ([email protected])
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//
+
+#if NET_2_0
+
+using System;
+
+namespace System.Configuration.Internal
+{
+	public sealed class InternalConfigEventArgs: EventArgs
+	{
+		string configPath;
+		
+		public InternalConfigEventArgs (string configPath)
+		{
+			this.configPath = configPath;
+		}
+		
+		public string ConfigPath {
+			get { return configPath; }
+			set { configPath = value; }
+		}
+	}
+}
+
+#endif

+ 38 - 0
mcs/class/System.Configuration/System.Configuration.Internal/InternalConfigEventHandler.cs

@@ -0,0 +1,38 @@
+//
+// System.Configuration.Internal.InternalConfigEventHandler.cs
+//
+// Authors:
+//  Lluis Sanchez Gual ([email protected])
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//
+
+#if NET_2_0
+
+using System;
+
+namespace System.Configuration.Internal
+{
+	public delegate void InternalConfigEventHandler (object sender, InternalConfigEventArgs e);
+}
+
+#endif

+ 38 - 0
mcs/class/System.Configuration/System.Configuration.Internal/StreamChangeCallback.cs

@@ -0,0 +1,38 @@
+//
+// System.Configuration.Internal.StreamChangeCallback.cs
+//
+// Authors:
+//  Lluis Sanchez Gual ([email protected])
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//
+
+#if NET_2_0
+
+using System;
+
+namespace System.Configuration.Internal
+{
+	public delegate void StreamChangeCallback (string streamName);
+}
+
+#endif