Esempio n. 1
0
        internal static bool IsInitialized()
        {
            DomainSpecificRemotingData remotingData = Thread.GetDomain().RemotingData;
            LeaseManager leaseManager = remotingData.LeaseManager;

            return(leaseManager != null);
        }
Esempio n. 2
0
        private static void Startup()
        {
            DomainSpecificRemotingData remotingData = Thread.GetDomain().RemotingData;

            if (!remotingData.ActivationInitialized || remotingData.InitializingActivation)
            {
                object configLock = remotingData.ConfigLock;
                bool   lockTaken  = false;
                RuntimeHelpers.PrepareConstrainedRegions();
                try
                {
                    Monitor.Enter(configLock, ref lockTaken);
                    remotingData.InitializingActivation = true;
                    if (!remotingData.ActivationInitialized)
                    {
                        remotingData.LocalActivator        = new LocalActivator();
                        remotingData.ActivationListener    = new ActivationListener();
                        remotingData.ActivationInitialized = true;
                    }
                    remotingData.InitializingActivation = false;
                }
                finally
                {
                    if (lockTaken)
                    {
                        Monitor.Exit(configLock);
                    }
                }
            }
        }
Esempio n. 3
0
        internal static void StartListeningForRemoteRequests()
        {
            Startup();
            DomainSpecificRemotingData remotingData = Thread.GetDomain().RemotingData;

            if (!remotingData.ActivatorListening)
            {
                object configLock = remotingData.ConfigLock;
                bool   lockTaken  = false;
                RuntimeHelpers.PrepareConstrainedRegions();
                try
                {
                    Monitor.Enter(configLock, ref lockTaken);
                    if (!remotingData.ActivatorListening)
                    {
                        RemotingServices.MarshalInternal(Thread.GetDomain().RemotingData.ActivationListener, "RemoteActivationService.rem", typeof(IActivator));
                        ((ServerIdentity)IdentityHolder.ResolveIdentity("RemoteActivationService.rem")).SetSingletonObjectMode();
                        remotingData.ActivatorListening = true;
                    }
                }
                finally
                {
                    if (lockTaken)
                    {
                        Monitor.Exit(configLock);
                    }
                }
            }
        }
        private Context(int flags)
        {
            this._ctxFlags = flags;
            if ((this._ctxFlags & 1) != 0)
            {
                this._ctxID = 0;
            }
            else
            {
                this._ctxID = Interlocked.Increment(ref Context._ctxIDCounter);
            }
            DomainSpecificRemotingData remotingData = Thread.GetDomain().RemotingData;

            if (remotingData != null)
            {
                IContextProperty[] appDomainContextProperties = remotingData.AppDomainContextProperties;
                if (appDomainContextProperties != null)
                {
                    for (int i = 0; i < appDomainContextProperties.Length; i++)
                    {
                        this.SetProperty(appDomainContextProperties[i]);
                    }
                }
            }
            if ((this._ctxFlags & 1) != 0)
            {
                this.Freeze();
            }
            this.SetupInternalContext((this._ctxFlags & 1) == 1);
        }
Esempio n. 5
0
        internal static LeaseManager GetLeaseManager()
        {
            DomainSpecificRemotingData remotingData = Thread.GetDomain().RemotingData;
            LeaseManager leaseManager = remotingData.LeaseManager;

            BCLDebug.Assert(leaseManager != null, "[LeaseManager.GetLeaseManager()]leaseManager !=null");
            return(leaseManager);
        }
Esempio n. 6
0
        internal static ContextAttribute GetGlobalAttribute()
        {
            DomainSpecificRemotingData remotingData = Thread.GetDomain().RemotingData;

            if (remotingData.LocalActivator == null)
            {
                Startup();
            }
            return(remotingData.LocalActivator);
        }
Esempio n. 7
0
        internal static IActivator GetActivator()
        {
            DomainSpecificRemotingData remotingData = Thread.GetDomain().RemotingData;

            if (remotingData.LocalActivator == null)
            {
                Startup();
            }
            return(remotingData.LocalActivator);
        }
Esempio n. 8
0
        internal static LeaseManager GetLeaseManager(TimeSpan pollTime)
        {
            DomainSpecificRemotingData remotingData = Thread.GetDomain().RemotingData;
            LeaseManager leaseManager = remotingData.LeaseManager;

            if (leaseManager == null)
            {
                leaseManager = new LeaseManager(pollTime);
                remotingData.LeaseManager = leaseManager;
            }

            return(leaseManager);
        }
        private Context(int flags)
        {
            _ctxFlags = flags;
            if ((_ctxFlags & CTX_DEFAULT_CONTEXT) != 0)
            {
                _ctxID = 0;     // ID 0 == default context
            }
            else
            {
                _ctxID = Interlocked.Increment(ref _ctxIDCounter);
            }

            // Every context inherits the appdomain level properties
            // Get the properties for the appdomain and add it to
            // this context.
            DomainSpecificRemotingData data = Thread.GetDomain().RemotingData;

            if (null != data)
            {
                IContextProperty[] ctxProps = data.AppDomainContextProperties;
                if (null != ctxProps)
                {
                    for (int i = 0; i < ctxProps.Length; i++)
                    {
                        SetProperty(ctxProps[i]);
                    }
                }
            }

            // Freeze the default context now
            if ((_ctxFlags & CTX_DEFAULT_CONTEXT) != 0)
            {
                this.Freeze();
            }
            // This call will set up the cycles between the VM & managed context
            // It will also set the managed context's AppDomain property to
            // the current AppDomain.Will also publish ifthe default ctx, so should be
            // in the very end
            SetupInternalContext((_ctxFlags & CTX_DEFAULT_CONTEXT) == CTX_DEFAULT_CONTEXT);

            Message.DebugOut("Creating Context with ID " + _ctxID + " and flags " + flags + " " + Environment.NewLine);
        }
Esempio n. 10
0
        private Context(int flags)
        {
            this._ctxFlags = flags;
            this._ctxID    = (this._ctxFlags & 1) == 0 ? Interlocked.Increment(ref Context._ctxIDCounter) : 0;
            DomainSpecificRemotingData remotingData = Thread.GetDomain().RemotingData;

            if (remotingData != null)
            {
                IContextProperty[] contextProperties = remotingData.AppDomainContextProperties;
                if (contextProperties != null)
                {
                    for (int index = 0; index < contextProperties.Length; ++index)
                    {
                        this.SetProperty(contextProperties[index]);
                    }
                }
            }
            if ((this._ctxFlags & 1) != 0)
            {
                this.Freeze();
            }
            this.SetupInternalContext((this._ctxFlags & 1) == 1);
        }
        // Token: 0x0600582E RID: 22574 RVA: 0x00135D20 File Offset: 0x00133F20
        internal static LeaseManager GetLeaseManager()
        {
            DomainSpecificRemotingData remotingData = Thread.GetDomain().RemotingData;

            return(remotingData.LeaseManager);
        }