예제 #1
0
 public void HandleNode(Node current, Node origin, Message message, Network network)
 {
     foreach (Node neighbor in current.neighbors)
     {
         network.Enqueue(message, current, neighbor);
     }
 }
예제 #2
0
        public void HandleNode(Node current, Node origin, Message message, Network network)
        {
            if (message.hops >= k && random.NextDouble() > p)
            {
                return;
            }

            foreach (Node neighbor in current.neighbors)
            {
                network.Enqueue(message, current, neighbor);
            }
        }
예제 #3
0
 public void OnTimeStep(Network network)
 {
     foreach (Node node in network.nodes)
     {
         if (node.broadcasted == false && node.messagesReceived <= m &&
             node.messagesReceived > 0 && node.rcvTime + timeout < network.time)
         {
             node.broadcasted = true;
             foreach (Node neighbor in node.neighbors)
             {
                 network.Enqueue(node.message, node, neighbor);
             }
         }
     }
 }