Exemplo n.º 1
0
        public void TestPeerAdvertisementMessage()
        {
            PeerAdvertisementInteractionMessage msg = new PeerAdvertisementInteractionMessage();

            msg.UserSuppliedTag = System.Text.UnicodeEncoding.Unicode.GetBytes("Sample user data 2");
            msg.PeerName        = "A name";
            msg.PeerDescription = "Some description";
            msg.PeerChannels    = new ConnectionList();
            msg.PeerChannels.Add("tcp://localhost:7777");
            msg.PeerChannels.Add("udp://localhost:1234");
            msg.PeerChannels.Add("multi://multi://224.0.0.1:8080");

            myListener.LastMessage = null;
            helper.SendInteraction(msg);

            if (!(myListener.LastMessage is PeerAdvertisementInteractionMessage))
            {
                throw new Exception("Error reading PeerAdvertisementInteractionMessage");
            }
            else
            {
                PeerAdvertisementInteractionMessage msgLast = myListener.LastMessage as PeerAdvertisementInteractionMessage;

                Assert.AreEqual(msgLast.FederationExecutionHandle, msg.FederationExecutionHandle);
                Assert.AreEqual(msgLast.InteractionClassHandle, msg.InteractionClassHandle);
                Assert.AreEqual(msgLast.UserSuppliedTag, msg.UserSuppliedTag);
                Assert.AreEqual(msgLast.PeerName, msg.PeerName);
                Assert.AreEqual(msgLast.PeerDescription, msg.PeerDescription);
                Assert.AreEqual(msgLast.PeerChannels.Count, msg.PeerChannels.Count);
                for (int i = 0; i < msgLast.PeerChannels.Count; i++)
                {
                    Assert.AreEqual(msgLast.PeerChannels[i], msg.PeerChannels[i]);
                }
            }
        }
Exemplo n.º 2
0
 public void OnReceivePeerAdvertisementInteraction(PeerAdvertisementInteractionMessage msg)
 {
     message = msg;
     if (log.IsDebugEnabled)
     {
         log.Debug("Received LastMessage =  " + msg.ToString());
     }
 }
Exemplo n.º 3
0
 public void OnReceivePeerAdvertisementInteraction(PeerAdvertisementInteractionMessage msg)
 {
     message = msg;
     if (log.IsDebugEnabled) log.Debug("Received LastMessage =  " + msg.ToString());
 }
Exemplo n.º 4
0
        public void TestPeerAdvertisementMessage()
        {
            PeerAdvertisementInteractionMessage msg = new PeerAdvertisementInteractionMessage();
            msg.UserSuppliedTag = System.Text.UnicodeEncoding.Unicode.GetBytes("Sample user data 2");
            msg.PeerName = "A name";
            msg.PeerDescription = "Some description";
            msg.PeerChannels = new ConnectionList();
            msg.PeerChannels.Add("tcp://localhost:7777");
            msg.PeerChannels.Add("udp://localhost:1234");
            msg.PeerChannels.Add("multi://multi://224.0.0.1:8080");

            myListener.LastMessage = null;
            helper.SendInteraction(msg);

            if (!(myListener.LastMessage is PeerAdvertisementInteractionMessage))
            {
                throw new Exception("Error reading PeerAdvertisementInteractionMessage");
            }
            else
            {
                PeerAdvertisementInteractionMessage msgLast = myListener.LastMessage as PeerAdvertisementInteractionMessage;

                Assert.AreEqual(msgLast.FederationExecutionHandle, msg.FederationExecutionHandle);
                Assert.AreEqual(msgLast.InteractionClassHandle, msg.InteractionClassHandle);
                Assert.AreEqual(msgLast.UserSuppliedTag, msg.UserSuppliedTag);
                Assert.AreEqual(msgLast.PeerName, msg.PeerName);
                Assert.AreEqual(msgLast.PeerDescription, msg.PeerDescription);
                Assert.AreEqual(msgLast.PeerChannels.Count, msg.PeerChannels.Count);
                for (int i = 0; i < msgLast.PeerChannels.Count; i++)
                    Assert.AreEqual(msgLast.PeerChannels[i], msg.PeerChannels[i]);
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// Notifies that there is a new channel available
        /// </summary>
        public void OnChannelAvailable(IMessageChannel ch)
        {
            PeerAdvertisementInteractionMessage msg = new PeerAdvertisementInteractionMessage();
            msg.InteractionClassHandle = SerializerManager.GetHandle(typeof(PeerAdvertisementInteractionMessage));
            msg.PeerName = PeerName;
            msg.PeerDescription = PeerDescription;
            msg.PeerChannels = new ConnectionList();
            foreach (MessageChannelAcceptor channel in channelManager.ChannelAcceptorsList)
            {
                msg.PeerChannels.Add(channel.Uri);
            }

            IList<IMessageChannel> list = channelManager.ChannelsList(ChannelType.MULTICAST);
            if (list != null)
                foreach (IMessageChannel channel in list)
                {
                    msg.PeerChannels.Add(channel.Uri);
                }

            if (ch is TCPMessageChannel)
            {
                if (log.IsDebugEnabled)
                    log.Debug("New Channel detected. Sending a PeerAdvertisement message");

                SendRealiableInteraction(ch as StreamMessageChannel, msg);
            }
            else if (ch is MulticastMessageChannel)
            {
                if (log.IsDebugEnabled)
                    log.Debug("New Channel detected. Sending a PeerAdvertisement message");

                SendBestEffortInteraction(ch as DGramMessageChannel, msg);
            }
        }