implemented more store-functionality

This commit is contained in:
Denis 2013-02-10 12:56:42 +01:00
parent 41c5c62dc6
commit 2aa02ccd53
3 changed files with 20 additions and 4 deletions

View File

@ -1,8 +1,10 @@
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.InetSocketAddress;
import java.util.logging.LogManager;
import node.Identifier;
import node.Node;
import node.NodeIdentifier;
@ -45,6 +47,12 @@ public class CLI {
case "leave":
node.leave();
break;
case "store":
// TODO not implemented
// Zum testen:
Identifier fileID = new Identifier(8, Identifier.getStaticIdentifier(8).getBytes());
node.store(fileID);
break;
default:
System.out.println("Unknown command.");
break;

View File

@ -313,13 +313,21 @@ public class Node {
return routingTable.getEntries();
}
public void StorePair(Identifier key, NodeIdentifier id) {
public void storePair(Identifier key, NodeIdentifier id) {
System.out.println(values.size());
System.out.println(key.toString());
values.put(key, id);
System.out.println(values.size());
}
public void store(Identifier key) {
Set<NodeIdentifier> nodes = routingTable.getClosestNodesTo(key);
for(NodeIdentifier node: nodes) {
sendStore(node, key);
}
}
public boolean hasKey(Identifier key) {
return values.containsKey(key);
}

View File

@ -216,11 +216,11 @@ public class UDPHandler implements Runnable {
}
private void receiveStore(NodeIdentifier fromID, Identifier rpc_id) {
//TODO Cast geht an dieser stelle nicht, getIDFromBuffer() müsste man für
// FileID implementieren.
Identifier fileID = getIDFromBuffer();
node.StorePair(fileID, fromID);
System.out.println("Received store from " + fromID.toString());
node.storePair(fileID, fromID);
}
public void terminate() {