Added command to add a peer to the peerlist.

This commit is contained in:
WickedJack99
2024-04-07 11:54:15 +02:00
parent 7dbfbaec6d
commit af69ffd0e7

View File

@@ -83,22 +83,27 @@ public class InputThread extends Thread implements Terminatable {
case "ShowNodes": {
List<Peer> peers = FileReaderWriter.getPeers();
peers.forEach((peer) -> {
sendingQueue.add(new OnlineStateRequest(FileReaderWriter.getThisPeer(EUpdateFlag.DoNotUpdate), peer));
// Start timeout which after 3 seconds sets status of specific peer to offline.
jobList.add(new TimeoutJob(System.currentTimeMillis(), peer));
if (peer.onlineState() != EOnlineState.Online) {
sendingQueue.add(new OnlineStateRequest(FileReaderWriter.getThisPeer(EUpdateFlag.DoNotUpdate), peer));
// Start timeout which after 3 seconds sets status of specific peer to offline.
jobList.add(new TimeoutJob(System.currentTimeMillis(), peer));
} else {
System.out.println("Peer @ " + peer.ipAddress() + ":" + peer.port() + " online");
}
});
}break;
case "ShowFiles": {
Peer thisPeer = FileReaderWriter.getThisPeer(EUpdateFlag.Update);
System.out.println("Files on system: " + thisPeer.ipAddress() + ":" + thisPeer.port());
thisPeer.filesMap().forEach((fileName, filePath) -> {
System.out.println(fileName + " @ path:" + filePath);
System.out.println("-> " + fileName + " @ path:" + filePath);
});
List<Peer> peers = FileReaderWriter.getPeers();
peers.forEach((peer) -> {
System.out.println("Files on system: " + peer.ipAddress() + ":" + peer.port());
peer.filesMap().forEach((fileName, filePath) -> {
System.out.println(fileName + " @ path:" + filePath);
System.out.println("-> " + fileName + " @ path:" + filePath);
});
});
}break;
@@ -127,9 +132,7 @@ public class InputThread extends Thread implements Terminatable {
List<Peer> peers = FileReaderWriter.getPeers();
peers.forEach((peer) -> {
Peer peerObject = (Peer)peer;
if (peerObject.onlineState() == EOnlineState.Online) {
sendingQueue.add(new PublishFileNameNotification(FileReaderWriter.getThisPeer(EUpdateFlag.DoNotUpdate), peerObject, fileName));
}
sendingQueue.add(new PublishFileNameNotification(FileReaderWriter.getThisPeer(EUpdateFlag.DoNotUpdate), peerObject, fileName));
});
} else {
System.err.println("Error, file already exists.");
@@ -159,8 +162,21 @@ public class InputThread extends Thread implements Terminatable {
}
}
}break;
case "AddPeer": {
if (inputArgs.length < 3) {
System.err.println("Too few arguments.");
} else if (inputArgs.length > 3) {
System.err.println("Too many arguments.");
} else {
String ipAddress = inputArgs[1];
int port = Integer.valueOf(inputArgs[2]);
FileReaderWriter.updatePeer(new Peer(ipAddress, port, null, EOnlineState.Unknown));
FileReaderWriter.getThisPeer(EUpdateFlag.Update);
}
}break;
default: {
System.out.println("Unknown command.");
System.err.println("Unknown command.");
}break;
}
}