This commit is contained in:
Denis 2013-02-10 13:10:07 +01:00
commit 108e1e181b
4 changed files with 72 additions and 5 deletions

View File

@ -0,0 +1,36 @@
package node;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class ChunkIdentifier extends Identifier {
private String chunkID;
private FileIdentifier fileID;
public ChunkIdentifier(int size, byte[] bytes, FileIdentifier fileID, String chunkID) {
super(size, bytes);
this.fileID = fileID;
//calculate SHA-256 Hash of chunckID
try {
MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update(chunkID.getBytes());
this.chunkID = md.digest().toString();
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public String getChunkID() {
return this.chunkID;
}
public FileIdentifier getFileID(){
return this.fileID;
}
}

View File

@ -1,16 +1,28 @@
package node;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class FileIdentifier extends Identifier {
private String key;
private String fileID;
public FileIdentifier(int size, byte[] bytes, String key) {
public FileIdentifier(int size, byte[] bytes, String fileID) {
super(size, bytes);
this.key = key;
// TODO: key muss noch gehasht werden
//calculate SHA-256 Hash of key
try {
MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update(fileID.getBytes());
this.fileID = md.digest().toString();
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public String getKey() {
return this.key;
return this.fileID;
}
}

View File

@ -181,6 +181,15 @@ public class Node {
new Object[] { fileID, receiver });
}
}
public void sendData(NodeIdentifier receiver, FileIdentifier fileID, ChunkIdentifier chunckID){
//TODO: implement
}
public void sendPing(NodeIdentifier receiver, MessageCallback cb) {
boolean successful = send(receiver, MessageType.PING, null, true, cb);

View File

@ -136,6 +136,10 @@ public class UDPHandler implements Runnable {
break;
case MessageType.DATA:
//TODO implemnt
//rpcID splitten ? -> [0] fileID, [1] partID ?!?!?!
receiveData(fromID, fileID, partID);
LOGGER.log(Level.INFO, "Received DATA from {0}",
new Object[] { from.toString() });
break;
@ -217,6 +221,12 @@ public class UDPHandler implements Runnable {
private void receiveStore(NodeIdentifier fromID, Identifier rpc_id) {
Identifier fileID = getIDFromBuffer();
//TODO Cast geht an dieser stelle nicht, getIDFromBuffer() müsste man für
// FileID implementieren.
// warum speichern wir nicht einfach die rpc_od ???
fileID = rpc_id;
System.out.println("Received store from " + fromID.toString());