Removed callback.. not needed
This commit is contained in:
parent
89cf73f20f
commit
8be0e09db8
@ -23,14 +23,10 @@ public class Ack {
|
||||
// The channel to re-send the message on
|
||||
private DatagramChannel channel;
|
||||
|
||||
OnAckReceive callback;
|
||||
|
||||
public Ack(int id, SocketAddress address, DatagramChannel channel,
|
||||
OnAckReceive onReceive) {
|
||||
public Ack(int id, SocketAddress address, DatagramChannel channel) {
|
||||
this.id = id;
|
||||
this.address = address;
|
||||
this.channel = channel;
|
||||
this.callback = onReceive;
|
||||
startThread();
|
||||
}
|
||||
|
||||
@ -58,10 +54,6 @@ public class Ack {
|
||||
}
|
||||
|
||||
public void setReceived() {
|
||||
if (callback != null) {
|
||||
callback.onReceive();
|
||||
}
|
||||
|
||||
// Stop thread
|
||||
try {
|
||||
if (thread != null) {
|
||||
|
||||
@ -40,8 +40,6 @@ public class Node {
|
||||
|
||||
private Random generator;
|
||||
|
||||
protected boolean receivedAckForLastInvite;
|
||||
|
||||
public Node() {
|
||||
System.setProperty("java.net.preferIPv4Stack", "true");
|
||||
generator = new Random(System.currentTimeMillis());
|
||||
@ -75,7 +73,6 @@ public class Node {
|
||||
LOGGER.log(Level.FINE, "Name: " + getName() + ", Spawning new node.");
|
||||
Node newNode = new Node();
|
||||
addNeighbor(newNode.getAddress());
|
||||
receivedAckForLastInvite = false;
|
||||
sendInvite(newNode);
|
||||
|
||||
return newNode;
|
||||
@ -84,12 +81,7 @@ public class Node {
|
||||
private boolean sendInvite(final Node newNode) {
|
||||
ByteBuffer buffer = ByteBuffer.allocate(BUF_SIZE);
|
||||
|
||||
Ack ack = generateAck(newNode.getAddress(), new OnAckReceive() {
|
||||
@Override
|
||||
public void onReceive() {
|
||||
receivedAckForLastInvite = true;
|
||||
}
|
||||
});
|
||||
Ack ack = generateAck(newNode.getAddress());
|
||||
|
||||
buffer.put(MessageType.INVITE);
|
||||
buffer.putInt(ack.getId());
|
||||
@ -113,12 +105,12 @@ public class Node {
|
||||
* the SocketAddress the ack should be received from
|
||||
* @return the identifier for this ack
|
||||
*/
|
||||
private Ack generateAck(final SocketAddress addr, OnAckReceive callback) {
|
||||
private Ack generateAck(final SocketAddress addr) {
|
||||
int ack_id = generator.nextInt();
|
||||
while (acks.containsKey(ack_id)) {
|
||||
ack_id = generator.nextInt();
|
||||
}
|
||||
Ack newAck = new Ack(ack_id, addr, channel, callback);
|
||||
Ack newAck = new Ack(ack_id, addr, channel);
|
||||
|
||||
acks.put(ack_id, newAck);
|
||||
return newAck;
|
||||
@ -223,6 +215,11 @@ public class Node {
|
||||
public void gatherInformationOfNetwork() {
|
||||
network = new HashMap<String, List<String>>();
|
||||
|
||||
network.put(getName(), new ArrayList<String>());
|
||||
for (SocketAddress n : neighbors) {
|
||||
network.get(getName()).add(n.toString());
|
||||
}
|
||||
|
||||
try {
|
||||
byte[] myAddr = BufferUtil.addrToBytes(((InetSocketAddress) channel
|
||||
.getLocalAddress()));
|
||||
@ -268,7 +265,7 @@ public class Node {
|
||||
int idToRemove = getNeighborId(node);
|
||||
if (idToRemove != -1) {
|
||||
removed = neighbors.remove(idToRemove);
|
||||
network.get(getName()).remove(node.toString());
|
||||
network.get(getName()).remove(node.toString());
|
||||
}
|
||||
|
||||
return removed != null;
|
||||
@ -279,7 +276,8 @@ public class Node {
|
||||
* from the network.
|
||||
*/
|
||||
public void leave() {
|
||||
if (!receivedAckForLastInvite || neighbors.isEmpty()) {
|
||||
// if (!receivedAckForLastInvite || neighbors.isEmpty()) {
|
||||
if (!acks.isEmpty() || neighbors.isEmpty()) {
|
||||
// This means the bootstrapping has not been finished. Either I have
|
||||
// not been invited by a node, or the Node I invited didn't ack by
|
||||
// now
|
||||
@ -289,7 +287,7 @@ public class Node {
|
||||
|
||||
for (int i = 0; i < neighbors.size(); i++) {
|
||||
ByteBuffer buffer = ByteBuffer.allocate(BUF_SIZE);
|
||||
Ack ack = generateAck(neighbors.get(i), null);
|
||||
Ack ack = generateAck(neighbors.get(i));
|
||||
buffer.put(MessageType.LEAVE);
|
||||
buffer.putInt(ack.getId());
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user