1
- /*
2
- * This file is part of Arduino.
3
- *
4
- * Arduino is free software; you can redistribute it and/or modify
5
- * it under the terms of the GNU General Public License as published by
6
- * the Free Software Foundation; either version 2 of the License, or
7
- * (at your option) any later version.
8
- *
9
- * This program is distributed in the hope that it will be useful,
10
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- * GNU General Public License for more details.
13
- *
14
- * You should have received a copy of the GNU General Public License
15
- * along with this program; if not, write to the Free Software
16
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17
- *
18
- * As a special exception, you may use this file as part of a free software
19
- * library without restriction. Specifically, if other files instantiate
20
- * templates or use macros or inline functions from this file, or you compile
21
- * this file and link it with other files to produce an executable, this
22
- * file does not by itself cause the resulting executable to be covered by
23
- * the GNU General Public License. This exception does not however
24
- * invalidate any other reasons why the executable file might be covered by
25
- * the GNU General Public License.
26
- *
27
- * Copyright 2013 Arduino LLC (http://www.arduino.cc/)
28
- */
29
-
30
- package cc .arduino .packages .discoverers ;
31
-
32
- import java .net .InetAddress ;
33
- import java .util .Collections ;
34
- import java .util .HashSet ;
35
- import java .util .Set ;
36
- import java .util .Timer ;
37
- import java .util .TimerTask ;
38
-
39
- import javax .jmdns .NetworkTopologyDiscovery ;
40
-
41
- public class NetworkChecker extends TimerTask {
42
-
43
- private final NetworkTopologyDiscovery topology ;
44
-
45
- private Set <InetAddress > knownAddresses ;
46
-
47
- public NetworkChecker (NetworkTopologyDiscovery topology ) {
48
- super ();
49
- this .topology = topology ;
50
- this .knownAddresses = Collections .synchronizedSet (new HashSet <InetAddress >());
51
- }
52
-
53
- public void start (Timer timer ) {
54
- timer .schedule (this , 0 , 3000 );
55
- }
56
-
57
- @ Override
58
- public void run () {
59
- try {
60
- InetAddress [] curentAddresses = this .topology .getInetAddresses ();
61
- Set <InetAddress > current = new HashSet <>(curentAddresses .length );
62
- for (InetAddress address : curentAddresses ) {
63
- current .add (address );
64
- if (!this .knownAddresses .contains (address )) {
65
- NetworkDiscovery .inetAddressAdded (address );
66
- }
67
- }
68
- for (InetAddress address : this .knownAddresses ) {
69
- if (!current .contains (address )) {
70
- NetworkDiscovery .inetAddressRemoved (address );
71
- }
72
- }
73
- this .knownAddresses = current ;
74
- } catch (Exception e ) {
75
- e .printStackTrace ();
76
- }
77
- }
78
- }
1
+ /*
2
+ * This file is part of Arduino.
3
+ *
4
+ * Arduino is free software; you can redistribute it and/or modify
5
+ * it under the terms of the GNU General Public License as published by
6
+ * the Free Software Foundation; either version 2 of the License, or
7
+ * (at your option) any later version.
8
+ *
9
+ * This program is distributed in the hope that it will be useful,
10
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ * GNU General Public License for more details.
13
+ *
14
+ * You should have received a copy of the GNU General Public License
15
+ * along with this program; if not, write to the Free Software
16
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17
+ *
18
+ * As a special exception, you may use this file as part of a free software
19
+ * library without restriction. Specifically, if other files instantiate
20
+ * templates or use macros or inline functions from this file, or you compile
21
+ * this file and link it with other files to produce an executable, this
22
+ * file does not by itself cause the resulting executable to be covered by
23
+ * the GNU General Public License. This exception does not however
24
+ * invalidate any other reasons why the executable file might be covered by
25
+ * the GNU General Public License.
26
+ *
27
+ * Copyright 2013 Arduino LLC (http://www.arduino.cc/)
28
+ */
29
+
30
+ package cc .arduino .packages ;
31
+
32
+ import java .util .List ;
33
+
34
+ public interface Discovery {
35
+
36
+ /**
37
+ * Start discovery service
38
+ *
39
+ * @throws Exception
40
+ */
41
+ void start () throws Exception ;
42
+
43
+ /**
44
+ * Stop discovery service
45
+ */
46
+ void stop () throws Exception ;
47
+
48
+ /**
49
+ * Return the list of discovered ports.
50
+ *
51
+ * @return
52
+ */
53
+ List <BoardPort > listDiscoveredBoards ();
54
+ List <BoardPort > listDiscoveredBoards (boolean complete );
55
+
56
+ }
0 commit comments