using System; using System.Runtime.Remoting.Messaging; using System.Threading; namespace System.Runtime.Remoting.Channels { // Token: 0x0200039A RID: 922 [Serializable] internal class CrossAppDomainChannel : IChannel, IChannelReceiver, IChannelSender { // Token: 0x06002583 RID: 9603 RVA: 0x0007C8A0 File Offset: 0x0007AAA0 internal static void RegisterCrossAppDomainChannel() { object obj = CrossAppDomainChannel.s_lock; lock (obj) { CrossAppDomainChannel crossAppDomainChannel = new CrossAppDomainChannel(); ChannelServices.RegisterChannel(crossAppDomainChannel); } } // Token: 0x170006FA RID: 1786 // (get) Token: 0x06002584 RID: 9604 RVA: 0x0007C8F0 File Offset: 0x0007AAF0 public virtual string ChannelName { get { return "MONOCAD"; } } // Token: 0x170006FB RID: 1787 // (get) Token: 0x06002585 RID: 9605 RVA: 0x0007C8F8 File Offset: 0x0007AAF8 public virtual int ChannelPriority { get { return 100; } } // Token: 0x06002586 RID: 9606 RVA: 0x0007C8FC File Offset: 0x0007AAFC public string Parse(string url, out string objectURI) { objectURI = url; return null; } // Token: 0x170006FC RID: 1788 // (get) Token: 0x06002587 RID: 9607 RVA: 0x0007C904 File Offset: 0x0007AB04 public virtual object ChannelData { get { return new CrossAppDomainData(Thread.GetDomainID()); } } // Token: 0x06002588 RID: 9608 RVA: 0x0007C910 File Offset: 0x0007AB10 public virtual string[] GetUrlsForUri(string objectURI) { throw new NotSupportedException("CrossAppdomain channel dont support UrlsForUri"); } // Token: 0x06002589 RID: 9609 RVA: 0x0007C91C File Offset: 0x0007AB1C public virtual void StartListening(object data) { } // Token: 0x0600258A RID: 9610 RVA: 0x0007C920 File Offset: 0x0007AB20 public virtual void StopListening(object data) { } // Token: 0x0600258B RID: 9611 RVA: 0x0007C924 File Offset: 0x0007AB24 public virtual IMessageSink CreateMessageSink(string url, object data, out string uri) { uri = null; if (data != null) { CrossAppDomainData crossAppDomainData = data as CrossAppDomainData; if (crossAppDomainData != null && crossAppDomainData.ProcessID == RemotingConfiguration.ProcessId) { return CrossAppDomainSink.GetSink(crossAppDomainData.DomainID); } } if (url != null && url.StartsWith("MONOCAD")) { throw new NotSupportedException("Can't create a named channel via crossappdomain"); } return null; } // Token: 0x04000EB8 RID: 3768 private const string _strName = "MONOCAD"; // Token: 0x04000EB9 RID: 3769 private const string _strBaseURI = "MONOCADURI"; // Token: 0x04000EBA RID: 3770 private static object s_lock = new object(); } }