double timeout = Msg.getClock() + Common.GET_PEERS_TIMEOUT;
//Build the task to send to the tracker
TrackerTask taskSend = new TrackerTask(hostname, mailboxTracker, id);
double timeout = Msg.getClock() + Common.GET_PEERS_TIMEOUT;
//Build the task to send to the tracker
TrackerTask taskSend = new TrackerTask(hostname, mailboxTracker, id);
try {
Msg.debug("Sending a peer request to the tracker.");
taskSend.send(Common.TRACKER_MAILBOX,Common.GET_PEERS_TIMEOUT);
try {
Msg.debug("Sending a peer request to the tracker.");
taskSend.send(Common.TRACKER_MAILBOX,Common.GET_PEERS_TIMEOUT);
boolean finished = false;
while (Msg.getClock() < deadline && !finished) {
if (commReceived == null) {
boolean finished = false;
while (Msg.getClock() < deadline && !finished) {
if (commReceived == null) {
-// if (pieces < 3) {
- do {
- currentPiece = stream.randInt(0,Common.FILE_PIECES - 1);
- } while (!(bitfield[currentPiece] == '0' && !currentPieces.contains(currentPiece)));
-// }
-// else {
- //TODO trivial min algorithm.
-// }
+
+ //TODO: trivial min algorithm when pieces >= 3
+ do {
+ currentPiece = stream.randInt(0,Common.FILE_PIECES - 1);
+ } while (!(bitfield[currentPiece] == '0' && !currentPieces.contains(currentPiece)));
+
currentPieces.add(currentPiece);
Msg.debug("New interested piece: " + currentPiece);
assert currentPiece >= 0 && currentPiece < Common.FILE_PIECES;
currentPieces.add(currentPiece);
Msg.debug("New interested piece: " + currentPiece);
assert currentPiece >= 0 && currentPiece < Common.FILE_PIECES;