protected virtual IObjectServer OpenServerWith(IMessageRecipient recipient) { var config = MemoryIoConfiguration(); SetMessageRecipient(config, recipient); return(OpenServer(config)); }
internal void Unregister(IMessageRecipient recipient, Type messageType) { if (messageType != typeof(MessageBase) && !messageType.IsSubclassOf(typeof(MessageBase))) { throw new ArgumentException("Parameter must be a MessageBase", "messageType"); } OldUnregisterFromLists(recipient, messageType, _recipientsStrict); OldUnregisterFromLists(recipient, messageType, _recipientsOfSubclasses); }
internal void Register(IMessageRecipient recipient, Type messageType, bool receiveDerivedMessagesToo) { if (messageType != typeof(MessageBase) && !messageType.IsSubclassOf(typeof(MessageBase))) { throw new ArgumentException("Parameter must be a MessageBase", "messageType"); } Dictionary <Type, List <WeakReference> > recipients; if (receiveDerivedMessagesToo) { if (_recipientsOfSubclasses == null) { _recipientsOfSubclasses = new Dictionary <Type, List <WeakReference> >(); } recipients = _recipientsOfSubclasses; } else { if (_recipientsStrict == null) { _recipientsStrict = new Dictionary <Type, List <WeakReference> >(); } recipients = _recipientsStrict; } List <WeakReference> list; if (!recipients.ContainsKey(messageType)) { list = new List <WeakReference>(); recipients.Add(messageType, list); } else { list = recipients[messageType]; } var reference = new WeakReference(recipient); list.Add(reference); Cleanup(); }
internal void Register(IMessageRecipient recipient, Type messageType, bool receiveDerivedMessagesToo) { if (messageType != typeof(MessageBase) && !messageType.IsSubclassOf(typeof(MessageBase))) { throw new ArgumentException("Parameter must be a MessageBase", "messageType"); } Dictionary<Type, List<WeakReference>> recipients; if (receiveDerivedMessagesToo) { if (_recipientsOfSubclasses == null) { _recipientsOfSubclasses = new Dictionary<Type, List<WeakReference>>(); } recipients = _recipientsOfSubclasses; } else { if (_recipientsStrict == null) { _recipientsStrict = new Dictionary<Type, List<WeakReference>>(); } recipients = _recipientsStrict; } List<WeakReference> list; if (!recipients.ContainsKey(messageType)) { list = new List<WeakReference>(); recipients.Add(messageType, list); } else { list = recipients[messageType]; } var reference = new WeakReference(recipient); list.Add(reference); Cleanup(); }
private static void OldUnregisterFromLists( IMessageRecipient recipient, Dictionary <Type, List <WeakReference> > lists) { if (lists == null) { return; } var types = new Type[lists.Keys.Count]; lists.Keys.CopyTo(types, 0); foreach (var type in types) { OldUnregisterFromLists(recipient, type, lists); } }
private bool ProcessUserMessage() { IMessageRecipient recipient = MessageRecipient(); if (recipient == null) { return(true); } try { recipient.ProcessMessage(new MUserMessage.MessageContextImpl(this), ReadUserMessage ()); } catch (Exception x) { // TODO: use MessageContext.sender() to send // error back to client Sharpen.Runtime.PrintStackTrace(x); } return(true); }
private static void OldUnregisterFromLists( IMessageRecipient recipient, Type messageType, IDictionary <Type, List <WeakReference> > lists) { if (recipient == null || messageType == null || lists == null || lists.Count == 0 || !lists.ContainsKey(messageType)) { return; } var list = lists[messageType]; WeakReference referenceToRemove = null; foreach (var reference in list) { if (reference.Target == recipient) { referenceToRemove = reference; break; } } if (referenceToRemove != null) { list.Remove(referenceToRemove); } if (list.Count == 0) { lists.Remove(messageType); } }
protected virtual IObjectServer OpenServerWith(IMessageRecipient recipient) { IConfiguration config = MemoryIoConfiguration(); SetMessageRecipient(config, recipient); return OpenServer(config); }
private static void OldUnregisterFromLists( IMessageRecipient recipient, Type messageType, IDictionary<Type, List<WeakReference>> lists) { if (recipient == null || messageType == null || lists == null || lists.Count == 0 || !lists.ContainsKey(messageType)) { return; } var list = lists[messageType]; WeakReference referenceToRemove = null; foreach (var reference in list) { if (reference.Target == recipient) { referenceToRemove = reference; break; } } if (referenceToRemove != null) { list.Remove(referenceToRemove); } if (list.Count == 0) { lists.Remove(messageType); } }
private void SetMessageRecipient(IConfiguration config, IMessageRecipient recipient ) { config.ClientServer().SetMessageRecipient(recipient); }
public void SetMessageRecipient(IMessageRecipient messageRecipient) { _config.Put(MessageRecipientKey, messageRecipient); }
public void Unregister(IMessageRecipient recipient, Type messageType) { _oldMessenger.Unregister(recipient, messageType); }
public void Unregister(IMessageRecipient recipient) { _oldMessenger.Unregister(recipient); }
public void Register(IMessageRecipient recipient, Type messageType, bool receiveDerivedMessagesToo) { _oldMessenger.Register(recipient, messageType, receiveDerivedMessagesToo); }
public void RegisterRecipient(IMessageRecipient recipient) { _recipients.Add(recipient); }
protected virtual void SetMessageRecipient(IObjectContainer container, IMessageRecipient recipient) { SetMessageRecipient(container.Ext().Configure(), recipient); }
private void SetMessageRecipient(IConfiguration config, IMessageRecipient recipient ) { config.ClientServer().SetMessageRecipient(recipient); }
public void Register(IMessageRecipient recipient, Type messageType) { Register(recipient, messageType, false); }
public void SetMessageRecipient(IMessageRecipient messageRecipient) { _config.Put(MessageRecipientKey, messageRecipient); }
internal void Unregister(IMessageRecipient recipient) { OldUnregisterFromLists(recipient, _recipientsStrict); OldUnregisterFromLists(recipient, _recipientsOfSubclasses); }
protected virtual void SetMessageRecipient(IObjectContainer container, IMessageRecipient recipient) { SetMessageRecipient(container.Ext().Configure(), recipient); }
internal void Unregister(IMessageRecipient recipient, Type messageType) { if (messageType != typeof(MessageBase) && !messageType.IsSubclassOf(typeof(MessageBase))) { throw new ArgumentException("Parameter must be a MessageBase", "messageType"); } OldUnregisterFromLists(recipient, messageType, _recipientsStrict); OldUnregisterFromLists(recipient, messageType, _recipientsOfSubclasses); }
private static void OldUnregisterFromLists( IMessageRecipient recipient, Dictionary<Type, List<WeakReference>> lists) { if (lists == null) { return; } var types = new Type[lists.Keys.Count]; lists.Keys.CopyTo(types, 0); foreach (var type in types) { OldUnregisterFromLists(recipient, type, lists); } }
internal void Unregister(IMessageRecipient recipient) { OldUnregisterFromLists(recipient, _recipientsStrict); OldUnregisterFromLists(recipient, _recipientsOfSubclasses); }