String.Split(char[],int,StringSplitOptions) should remove empty entries while
[mono.git] / mcs / class / corlib / System / _AppDomain.cs
old mode 100755 (executable)
new mode 100644 (file)
index 07ead61..f141511
@@ -4,8 +4,30 @@
 // Author:
 //   Duco Fijma (duco@lorentz.xs4all.nl)
 //
+// Copyright (C) 2004-2005 Novell, Inc (http://www.novell.com)
+//
+// 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.
+//
 
 using System.Security;
+using System.Security.Permissions;
 using System.Security.Policy;
 using System.Security.Principal;
 using System.Reflection;
@@ -16,6 +38,9 @@ using System.Runtime.InteropServices;
 
 namespace System
 {
+#if NET_2_0
+       [ComVisible (true)]
+#endif
        [CLSCompliant (false)]
        [InterfaceType (ComInterfaceType.InterfaceIsIUnknown)]
        [Guid ("05F696DC-2B29-3663-AD8B-C4389CF2A713")]
@@ -28,8 +53,13 @@ namespace System
                string RelativeSearchPath {get; }
                bool ShadowCopyFiles {get; }
 
+               [SecurityPermission (SecurityAction.LinkDemand, ControlAppDomain = true)]
                void AppendPrivatePath (string path);
+
+               [SecurityPermission (SecurityAction.LinkDemand, ControlAppDomain = true)]
                void ClearPrivatePath ();
+
+               [SecurityPermission (SecurityAction.LinkDemand, ControlAppDomain = true)]
                void ClearShadowCopyPath ();
 
                ObjectHandle CreateInstance (string assemblyName, string typeName);
@@ -72,8 +102,13 @@ namespace System
                Assembly[] GetAssemblies ();
                object GetData (string name);
                int GetHashCode();
+
+               [SecurityPermission (SecurityAction.LinkDemand, Infrastructure = true)]
                object GetLifetimeService ();
+
                Type GetType ();
+
+               [SecurityPermission (SecurityAction.LinkDemand, Infrastructure = true)]
                object InitializeLifetimeService ();
 
                Assembly Load (AssemblyName assemblyRef);
@@ -84,14 +119,27 @@ namespace System
                Assembly Load (string assemblyString, Evidence assemblySecurity);
                Assembly Load (byte[] rawAssembly, byte[] rawSymbolStore, Evidence securityEvidence);
 
+               [SecurityPermission (SecurityAction.LinkDemand, ControlAppDomain = true)]
                void SetAppDomainPolicy (PolicyLevel domainPolicy);
+
+               [SecurityPermission (SecurityAction.LinkDemand, ControlAppDomain = true)]
                void SetCachePath (string s);
+
+               [SecurityPermission (SecurityAction.LinkDemand, ControlAppDomain = true)]
                void SetData (string name, object data);
+
                void SetPrincipalPolicy (PrincipalPolicy policy);
+
+               [SecurityPermission (SecurityAction.LinkDemand, ControlAppDomain = true)]
                void SetShadowCopyPath (string s);
+
                void SetThreadPrincipal (IPrincipal principal);
                string ToString ();
 
+#if BOOTSTRAP_WITH_OLDLIB
+               // older MCS/corlib returns:
+               // _AppDomain.cs(138) error CS0592: Attribute 'SecurityPermission' is not valid on this declaration type.
+               // It is valid on 'assembly' 'class' 'constructor' 'method' 'struct'  declarations only.
                event AssemblyLoadEventHandler AssemblyLoad;
                event ResolveEventHandler AssemblyResolve;
                event EventHandler DomainUnload;
@@ -99,5 +147,38 @@ namespace System
                event ResolveEventHandler ResourceResolve;
                event ResolveEventHandler TypeResolve;
                event UnhandledExceptionEventHandler UnhandledException;
+#else
+               [method: SecurityPermission (SecurityAction.LinkDemand, ControlAppDomain = true)]
+               event AssemblyLoadEventHandler AssemblyLoad;
+
+               [method: SecurityPermission (SecurityAction.LinkDemand, ControlAppDomain = true)]
+               event ResolveEventHandler AssemblyResolve;
+
+               [method: SecurityPermission (SecurityAction.LinkDemand, ControlAppDomain = true)]
+               event EventHandler DomainUnload;
+
+               [method: SecurityPermission (SecurityAction.LinkDemand, ControlAppDomain = true)]
+               event EventHandler ProcessExit;
+
+               [method: SecurityPermission (SecurityAction.LinkDemand, ControlAppDomain = true)]
+               event ResolveEventHandler ResourceResolve;
+
+               [method: SecurityPermission (SecurityAction.LinkDemand, ControlAppDomain = true)]
+               event ResolveEventHandler TypeResolve;
+
+               [method: SecurityPermission (SecurityAction.LinkDemand, ControlAppDomain = true)]
+               event UnhandledExceptionEventHandler UnhandledException;
+#endif
+
+#if NET_1_1
+               void GetIDsOfNames ([In] ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId);
+
+               void GetTypeInfo (uint iTInfo, uint lcid, IntPtr ppTInfo);
+
+               void GetTypeInfoCount (out uint pcTInfo);
+
+               void Invoke (uint dispIdMember, [In] ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams,
+                       IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr);
+#endif
        }
 }