public void TokenMessage(Messages.TokenMessage msg) { lock ( m_tokenLock ) { var nodeDesc = m_configuration.FindNode(msg.senderId); if (m_token != null) { LogMessage(this, "Duplicate tokend received from node [" + nodeDesc.NodeID + "] " + nodeDesc.NodeIP + " Port: " + nodeDesc.Port); // @todo: Hmmm, consider merging tokens. return; } LogMessage(this, "Tokend received from node [" + nodeDesc.NodeID + "] " + nodeDesc.NodeIP + " Port: " + nodeDesc.Port); m_token = msg.value; ReleaseSemaphore(); } }
public void ElectionBroadcast(Messages.ElectionBroadcast election) { if (election.senderId < m_configuration.NodeID) { if (m_oks == null) { StartElection(); LogMessage(this, "Election broadcast from [" + election.senderId + "]. Broadcasting number."); } else { LogMessage(this, "Election broadcast from [" + election.senderId + "]. Broadcast already sent."); } } else if (election.senderId > m_configuration.NodeID) { if (!NoElectionResponse) { Messages.ElectionOk ok = new Messages.ElectionOk(m_configuration.NodeID); var senderDesc = m_configuration.FindNode(election.senderId); Send(ok, senderDesc.Port, senderDesc.NodeIP); LogMessage(this, "Election broadcast from [" + election.senderId + "]. Sending OK."); } else { LogMessage(this, "ElectionOk to: [" + election.senderId + "] intentionally not send. Check Menu -> Debug -> No election response"); } // Don't take part in election anymore. m_electionOkTimeout.Stop(); } else { LogMessage(this, "Duplicate node with the same id in network"); } }