FindOrCreateSink() static private method

static private FindOrCreateSink ( CrossAppDomainData xadData ) : CrossAppDomainSink
xadData CrossAppDomainData
return CrossAppDomainSink
        [System.Security.SecurityCritical]  // auto-generated
        public virtual IMessageSink CreateMessageSink(String url, Object data,
                                                      out String objectURI)
        {
            // Set the out parameters
            objectURI = null;
            IMessageSink sink = null;

            // <


            if ((null != url) && (data == null))
            {
                if (url.StartsWith(_channelName, StringComparison.Ordinal))
                {
                    throw new RemotingException(
                              Environment.GetResourceString(
                                  "Remoting_AppDomains_NYI"));
                }
            }
            else
            {
                Message.DebugOut("XAPPDOMAIN::Creating sink for data \n");
                CrossAppDomainData xadData = data as CrossAppDomainData;
                if (null != xadData)
                {
                    if (xadData.ProcessGuid.Equals(Identity.ProcessGuid))
                    {
                        sink = CrossAppDomainSink.FindOrCreateSink(xadData);
                    }
                }
            }
            return(sink);
        }
Example #2
0
        public virtual IMessageSink CreateMessageSink(string url, object data, out string objectURI)
        {
            objectURI = null;
            IMessageSink sink = null;

            if ((url != null) && (data == null))
            {
                if (url.StartsWith("XAPPDMN", StringComparison.Ordinal))
                {
                    throw new RemotingException(Environment.GetResourceString("Remoting_AppDomains_NYI"));
                }
                return(sink);
            }
            CrossAppDomainData xadData = data as CrossAppDomainData;

            if ((xadData != null) && xadData.ProcessGuid.Equals(Identity.ProcessGuid))
            {
                sink = CrossAppDomainSink.FindOrCreateSink(xadData);
            }
            return(sink);
        }
        public virtual IMessageSink CreateMessageSink(String url, Object data,
                                                      out String objectURI)
        {
            // Set the out parameters
            objectURI = null;
            IMessageSink sink = null;

            // FUTURE: this url parsing part will be useful only when
            // we have wellknown x-appdomain objects (that use the appdomain
            // channel)
            if ((null != url) && (data == null))
            {
                if (url.StartsWith(_channelName))
                {
                    throw new RemotingException(
                              Environment.GetResourceString(
                                  "Remoting_AppDomains_NYI"));
                }
            }
            else
            {
                Message.DebugOut("XAPPDOMAIN::Creating sink for data \n");
                CrossAppDomainData xadData = data as CrossAppDomainData;
                if (null != xadData)
                {
                    if (xadData.ProcessGuid.Equals(Identity.ProcessGuid))
                    {
                        int srvContextID = xadData.ContextID;
                        int srvDomainID  = xadData.DomainID;
                        sink = CrossAppDomainSink.FindOrCreateSink(
                            srvContextID,
                            srvDomainID
                            );
                    }
                }
            }
            return(sink);
        }