Coverage Summary for Class: HeartBeatTimeoutTask (it.polimi.ingsw.Network)
| Class | Class, % | Method, % | Line, % |
|---|---|---|---|
| HeartBeatTimeoutTask | 0% (0/1) | 0% (0/3) | 0% (0/9) |
1 package it.polimi.ingsw.Network; 2 3 import java.io.IOException; 4 import java.util.Timer; 5 import java.util.TimerTask; 6 7 /** 8 * Timeout timer task waiting to close the socket in case it is not cancelled in time. 9 */ 10 public class HeartBeatTimeoutTask extends TimerTask { 11 private final SocketWrapper sock; 12 13 /** 14 * Private constructor setting up the attributes for the timeout task 15 * 16 * @param sock the socket to close in case of timeout 17 */ 18 private HeartBeatTimeoutTask(SocketWrapper sock) { 19 this.sock = sock; 20 } 21 22 /** 23 * Sets up a single, non repeating timer counting down to the timeout. 24 * 25 * @param socketWrapper the socket to close if the timer runs out 26 * @param timeoutDuration the timeout duration in milliseconds 27 * @return the timer that is counting down the timeout, calling {@link Timer#cancel()} on it will prevent the 28 * timeout task from running, effectively resetting the timeout. 29 */ 30 public static Timer startAndGetTimer(SocketWrapper socketWrapper, long timeoutDuration) { 31 Timer timeoutTimer = new Timer(); 32 timeoutTimer.schedule(new HeartBeatTimeoutTask(socketWrapper), timeoutDuration); 33 return timeoutTimer; 34 } 35 36 public void run() { 37 try { 38 sock.close(); 39 } catch (IOException e) { 40 throw new RuntimeException(e); 41 } 42 } 43 }