static public void SendContentFiltering(Event evt, String name) { string lastSender = evt.LastSenderName; evt.LastSenderName = Broker.groupName; var subs = topicSubscribers.FindAllSubscribers(evt.Topic); foreach (NamedSubscriber sub in subs) { try { sub.subcriber.ReceiveContent(evt); } catch (Exception e) { Console.WriteLine("Exception to susbcriber: " + e.Message); } } // No replication /*var bros = topicBrokers.FindAllBrokers( evt.Topic ); * foreach ( NamedBroker bro in bros ) { * //bro.broker.SendContent( evt ); * new Task( () => { bro.broker.SendContent( evt, Broker.name ); } ).Start(); * }*/ // Replication var bros = subscriptionCircles.FindAllBrokers(evt.Topic); foreach (BrokerCircle bro in bros) { if (bro.name != lastSender) { new Task(() => { bro.SendContent(evt, Broker.groupName); }).Start(); } } }