Initial code merge

This commit is contained in:
Edward Capriolo
2015-01-09 11:33:54 -05:00
parent 712ec097bb
commit 4edc7738ec
29 changed files with 6479 additions and 0 deletions

View File

@ -0,0 +1,44 @@
package com.google.code.gossip.manager.random;
import java.util.ArrayList;
import java.util.Random;
import com.google.code.gossip.GossipService;
import com.google.code.gossip.LocalGossipMember;
import com.google.code.gossip.manager.GossipManager;
import com.google.code.gossip.manager.impl.SendMembersActiveGossipThread;
public class RandomActiveGossipThread extends SendMembersActiveGossipThread {
/** The Random used for choosing a member to gossip with. */
private Random _random;
public RandomActiveGossipThread(GossipManager gossipManager) {
super(gossipManager);
// Initialize the random used for deciding on which gossip member to gossip with.
_random = new Random();
}
/**
* [The selectToSend() function.]
* Find a random peer from the local membership list.
* In the case where this client is the only member in the list, this method will return null.
* @return Member random member if list is greater than 1, null otherwise
*/
protected LocalGossipMember selectPartner(ArrayList<LocalGossipMember> memberList) {
LocalGossipMember member = null;
// We can only send a message if there are actually other members.
if (memberList.size() > 0) {
// Get the index of the random member.
int randomNeighborIndex = _random.nextInt(memberList.size());
member = memberList.get(randomNeighborIndex);
} else {
GossipService.debug("I am alone in this world.");
}
return member;
}
}

View File

@ -0,0 +1,14 @@
package com.google.code.gossip.manager.random;
import java.util.ArrayList;
import com.google.code.gossip.GossipMember;
import com.google.code.gossip.GossipSettings;
import com.google.code.gossip.manager.GossipManager;
import com.google.code.gossip.manager.impl.OnlyProcessReceivedPassiveGossipThread;
public class RandomGossipManager extends GossipManager {
public RandomGossipManager(String address, int port, GossipSettings settings, ArrayList<GossipMember> gossipMembers) {
super(OnlyProcessReceivedPassiveGossipThread.class, RandomActiveGossipThread.class, address, port, settings, gossipMembers);
}
}