putAddrInBuf() -> sendAddrTo()

This commit is contained in:
senft-lap 2012-11-27 16:29:16 +01:00
parent ccd2885c69
commit 0b9810aa62

View File

@ -12,6 +12,8 @@ import java.util.Map;
import java.util.Random;
import java.util.logging.Logger;
import com.sun.xml.internal.bind.v2.runtime.unmarshaller.Receiver;
import util.BufferUtil;
public class Node {
@ -94,7 +96,7 @@ public class Node {
return channel.socket().getLocalSocketAddress();
}
private void putAddrInBuf(ByteBuffer buf, SocketAddress addr) {
private void sendAddrTo(SocketAddress receiver, SocketAddress addr) {
buf.clear();
InetSocketAddress a = (InetSocketAddress) addr;
@ -110,6 +112,11 @@ public class Node {
// acks.get(ack_id).setBuf(BufferUtil.clone(buf));
buf.flip();
try {
channel.send(buf, receiver);
} catch (IOException e) {
// TODO
}
}
/**
@ -121,21 +128,15 @@ public class Node {
for (int i = 0; i < neighbors.size(); i++) {
try {
if (neighbors.size() > 2) {
int pred = ((i - 1) + neighbors.size()) % neighbors.size();
int succ = (i + 1) % neighbors.size();
if (neighbors.size() > 2) {
int pred = ((i - 1) + neighbors.size()) % neighbors.size();
int succ = (i + 1) % neighbors.size();
putAddrInBuf(buf, neighbors.get(succ));
channel.send(buf, neighbors.get(i));
putAddrInBuf(buf, neighbors.get(pred));
channel.send(buf, neighbors.get(i));
} else if (neighbors.size() == 2) {
putAddrInBuf(buf, neighbors.get(Math.abs(i - 1)));
channel.send(buf, neighbors.get(i));
}
} catch (IOException e) {
e.printStackTrace();
sendAddrTo(neighbors.get(i), neighbors.get(succ));
sendAddrTo(neighbors.get(i), neighbors.get(pred));
} else if (neighbors.size() == 2) {
sendAddrTo(neighbors.get(i), neighbors.get(Math.abs(i - 1)));
}
buf.clear();