diff --git a/ws2012/P2P/uebungen/11/src/node/FileIdentifier.java b/ws2012/P2P/uebungen/11/src/node/FileIdentifier.java new file mode 100644 index 00000000..fdcb8be7 --- /dev/null +++ b/ws2012/P2P/uebungen/11/src/node/FileIdentifier.java @@ -0,0 +1,16 @@ +package node; + +public class FileIdentifier extends Identifier { + + private String key; + + public FileIdentifier(int size, byte[] bytes, String key) { + super(size, bytes); + this.key = key; + // TODO: key muss noch gehasht werden + } + + public String getKey() { + return this.key; + } +} diff --git a/ws2012/P2P/uebungen/11/src/node/Node.java b/ws2012/P2P/uebungen/11/src/node/Node.java index 569fc260..d9b26e44 100644 --- a/ws2012/P2P/uebungen/11/src/node/Node.java +++ b/ws2012/P2P/uebungen/11/src/node/Node.java @@ -45,6 +45,7 @@ public class Node { private DatagramChannel channel; private Map> rpcs = new HashMap>(); + private Map values = new HashMap(); private Thread thread; private UDPHandler udpListen; @@ -302,6 +303,14 @@ public class Node { public Set getNeighbors() { return routingTable.getEntries(); } + + public void StorePair(FileIdentifier key, NodeIdentifier id) { + values.put(key, id); + } + + public boolean hasKey(FileIdentifier key) { + return values.containsKey(key); + } public boolean receivedRPC(NodeIdentifier fromID, Identifier rpcID) { List rpcsFromID = rpcs.get(rpcID);