implemented sendStore, only one problem with casting Identifier to FileIdentifier, look at TODO in UDPHandler

This commit is contained in:
Denis 2013-02-09 17:41:47 +01:00
parent 8fca6bbec2
commit ab8030bd71
2 changed files with 21 additions and 1 deletions

View File

@ -125,7 +125,7 @@ public class Node {
}
}
void sendFindValue(NodeIdentifier receiver, Identifier idToFind) {
void sendFindValue(NodeIdentifier receiver, FileIdentifier idToFind) {
boolean successful = send(receiver, MessageType.FIND_VALUE,
idToFind.getBytes(), true, null);
@ -172,6 +172,15 @@ public class Node {
new Object[] { closeNodes.size(), receiver, idToFind, rpcID });
}
}
public void sendStore(NodeIdentifier receiver, FileIdentifier fileID) {
boolean successful = send(receiver, MessageType.STORE, fileID.getBytes(), true, null);
if (successful) {
LOGGER.log(Level.INFO, "Sending [STORE {0}] to node {1}",
new Object[] { fileID, receiver });
}
}
public void sendPing(NodeIdentifier receiver, MessageCallback cb) {
boolean successful = send(receiver, MessageType.PING, null, true, cb);
@ -305,6 +314,8 @@ public class Node {
}
public void StorePair(FileIdentifier key, NodeIdentifier id) {
System.out.println("Key: " + key.getKey());
System.out.println("Node: " + id.getAddress());
values.put(key, id);
}

View File

@ -130,6 +130,7 @@ public class UDPHandler implements Runnable {
break;
case MessageType.STORE:
//TODO implemnt
receiveStore(fromID, rpcID);
LOGGER.log(Level.INFO, "Received STORE from {0}",
new Object[] { from.toString() });
break;
@ -213,6 +214,14 @@ public class UDPHandler implements Runnable {
node.sendClosestNodesTo(fromID, idToFind, rpc_id);
}
private void receiveStore(NodeIdentifier fromID, Identifier rpc_id) {
//TODO Cast geht an dieser stelle nicht, getIDFromBuffer() müsste man für
// FileID implementieren.
FileIdentifier fileID = (FileIdentifier) getIDFromBuffer();
node.StorePair(fileID, fromID);
}
public void terminate() {
running = false;