Exemplo n.º 1
0
        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();
                }
            }
        }