Merge pull request #2006 from steffen-kiess/posix-sockets-2
[mono.git] / mcs / class / corlib / System / AppDomainManager.cs
index 9cf025e75a2da6516c67abd568cdacc3dd0b16c0..301fd334c70ef1c2c3aaf5aeb8f4725eaae2e79e 100644 (file)
@@ -4,7 +4,7 @@
 // Author:
 //     Sebastien Pouliot  <sebastien@ximian.com>
 //
-// Copyright (C) 2004-2005 Novell, Inc (http://www.novell.com)
+// Copyright (C) 2004-2005,2009 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
@@ -26,8 +26,6 @@
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-#if NET_2_0
-
 using System.Reflection;
 using System.Runtime.Hosting;
 using System.Runtime.InteropServices;
@@ -38,11 +36,11 @@ using System.Threading;
 
 namespace System {
 
+#if MONO_FEATURE_MULTIPLE_APPDOMAINS
        [ComVisible (true)]
        [SecurityPermission (SecurityAction.LinkDemand, Infrastructure = true)]
        [SecurityPermission (SecurityAction.InheritanceDemand, Infrastructure = true)]
        public class AppDomainManager : MarshalByRefObject {
-
                private ApplicationActivator _activator;
                private AppDomainManagerInitializationOptions _flags;
 
@@ -59,9 +57,8 @@ namespace System {
                        }
                }
 
-               [MonoTODO]
                public virtual Assembly EntryAssembly {
-                       get { throw new NotImplementedException (); }
+                       get { return Assembly.GetEntryAssembly (); }
                }
 
                [MonoTODO]
@@ -101,6 +98,12 @@ namespace System {
                        // default does nothing (as documented)
                }
 
+               // available in FX2.0 with service pack 1, including the 2.0 shipped as part of FX3.5
+               public virtual bool CheckSecuritySettings (SecurityState state)
+               {
+                       return false;
+               }
+
                // static
 
                // FIXME: maybe AppDomain.CreateDomain should be calling this?
@@ -109,6 +112,55 @@ namespace System {
                        return AppDomain.CreateDomain (friendlyName, securityInfo, appDomainInfo);
                }
        }
-}
+#else
+       [Obsolete ("AppDomainManager is not supported on the current platform.", true)]
+       public class AppDomainManager : MarshalByRefObject {
+               public AppDomainManager ()
+               {
+                       throw new PlatformNotSupportedException ("AppDomainManager is not supported on the current platform.");
+               }
+
+               public virtual ApplicationActivator ApplicationActivator {
+                       get { throw new PlatformNotSupportedException ("AppDomainManager is not supported on the current platform."); }
+               }
+
+               public virtual Assembly EntryAssembly {
+                       get { throw new PlatformNotSupportedException ("AppDomainManager is not supported on the current platform."); }
+               }
+
+               public virtual HostExecutionContextManager HostExecutionContextManager {
+                       get { throw new PlatformNotSupportedException ("AppDomainManager is not supported on the current platform."); }
+               }
+
+               public virtual HostSecurityManager HostSecurityManager {
+                       get { throw new PlatformNotSupportedException ("AppDomainManager is not supported on the current platform."); }
+               }
+
+               public AppDomainManagerInitializationOptions InitializationFlags {
+                       get { throw new PlatformNotSupportedException ("AppDomainManager is not supported on the current platform."); }
+                       set { throw new PlatformNotSupportedException ("AppDomainManager is not supported on the current platform."); }
+               }
+
+               public virtual AppDomain CreateDomain (string friendlyName, Evidence securityInfo, AppDomainSetup appDomainInfo)
+               {
+                       throw new PlatformNotSupportedException ("AppDomainManager is not supported on the current platform.");
+               }
+
+               public virtual void InitializeNewDomain (AppDomainSetup appDomainInfo)
+               {
+                       throw new PlatformNotSupportedException ("AppDomainManager is not supported on the current platform.");
+               }
+
+               public virtual bool CheckSecuritySettings (SecurityState state)
+               {
+                       throw new PlatformNotSupportedException ("AppDomainManager is not supported on the current platform.");
+               }
 
-#endif
+               protected static AppDomain CreateDomainHelper (string friendlyName, Evidence securityInfo, AppDomainSetup appDomainInfo)
+               {
+                       throw new PlatformNotSupportedException ("AppDomainManager is not supported on the current platform.");
+               }
+       }
+
+#endif // MONO_FEATURE_MULTIPLE_APPDOMAINS
+}