[ all classes ]
[ it.polimi.ingsw.utils ]
Coverage Summary for Class: Pinger (it.polimi.ingsw.utils)
Class | Class, % | Method, % | Line, % |
---|---|---|---|
Pinger | 100% (1/ 1) | 100% (4/ 4) | 100% (13/ 13) |
1 package it.polimi.ingsw.utils;
2
3 /**
4 * Pinger Class, used to notify a observer a ping every 10s
5 */
6 public class Pinger extends Observable<String> implements Runnable {
7 /**
8 * Status of the pinger
9 */
10 private boolean isActive = true;
11
12 /**
13 * Pinger Constructor
14 *
15 * @param c observer to ping
16 */
17 public Pinger(Observer<String> c) {
18 this.addObservers(c);
19 }
20
21 /**
22 * Get Pinger Status
23 *
24 * @return pinger status
25 */
26 public boolean getStatus() {
27 return isActive;
28 }
29
30 /**
31 * Run Pinger, ping the target observer each 10s
32 */
33 @Override
34 public void run() {
35 try {
36 while (isActive) {
37 Thread.sleep(10000);
38 notify("");
39 }
40 } catch (Exception e) {
41 // Fail sleep or notify
42 } isActive = false;
43 }
44
45 /**
46 * Stop the ping
47 */
48 public void stop() {
49 isActive = false;
50 }
51 }