public void Send(Message message) { Action <HandlerInfo, Message> Msg_PtToPt = (HandlerInfo handler, Message msg) => { (handler.EventType.Equals(msg.EventType)).IfTrue(() => { _PendingDelivery.Add(new MessageDelivery(handler, msg)); }); }; Action <HandlerInfo, Message> Msg_Observer = (HandlerInfo handler, Message msg) => { _PendingDelivery.Add(new MessageDelivery(handler, msg)); }; Action <HandlerInfo, Message> Msg_RoleEvent = (HandlerInfo handler, Message msg) => { _PendingDelivery.Add(new MessageDelivery(handler, msg)); }; Action UponNoRecipients = () => { message.HasInstance.IfTrue(() => { _Logger.LogAt(LogLevel.LL_DebugFramework, "Unhandled message:"); message.SenderInstance.ReceiveUnhandled(message); }).IfFalse(() => { //(msg.ActualSender != null).IfTrue(() =>{ message.ActualSender.ReceiveUnhandled(message); //}); _Logger.LogAt(LogLevel.LL_DebugFramework, "Could not match handlers for message [" + message + "]"); }); }; MatchHandlers(message, Msg_PtToPt, Msg_Observer, Msg_RoleEvent, UponNoRecipients); }
public void SetObservedObject(IMessageSubscriber ObservedObject) { _ObservedSet.Add(ObservedObject); }