1
1
package net .sharksystem .asap .apps .mock ;
2
2
3
3
import net .sharksystem .asap .*;
4
- import net .sharksystem .asap .apps .ASAPPeerServices ;
4
+ import net .sharksystem .asap .apps .ASAPMessageReceivedListener ;
5
+ import net .sharksystem .asap .apps .ASAPSimplePeer ;
6
+ import net .sharksystem .asap .listenermanager .ASAPMessageReceivedListenerManager ;
5
7
import net .sharksystem .asap .util .Helper ;
6
8
7
9
import java .io .File ;
8
10
import java .io .IOException ;
9
11
import java .net .ServerSocket ;
10
12
import java .net .Socket ;
13
+ import java .util .Set ;
11
14
12
- public class ASAPSimplePeer extends ASAPBasicAbstractPeer implements ASAPPeerServices , ASAPChunkReceivedListener {
15
+ public class ASAPSimplePeerFS extends ASAPBasicAbstractPeer implements ASAPSimplePeer ,
16
+ ASAPChunkReceivedListener , ASAPOnlinePeersChangedListener {
13
17
private final ASAPPeer peer ;
14
18
private final String folderName ;
15
19
private ServerSocket serverSocket = null ;
16
20
private Socket socket = null ;
17
21
18
- public ASAPSimplePeer (CharSequence peerName ) throws IOException , ASAPException {
22
+ public ASAPSimplePeerFS (CharSequence peerName ) throws IOException , ASAPException {
19
23
super (peerName );
20
24
this .folderName = "./peers/" + peerName ;
21
- File asapFolder = new File (folderName );
22
- if (!asapFolder .exists ()) {
23
- asapFolder .mkdirs ();
24
- }
25
25
this .peer = ASAPPeerFS .createASAPPeer (peerName , folderName , this );
26
+ this .peer .addOnlinePeersChangedListener (this );
26
27
}
27
28
28
29
@ Override
@@ -37,21 +38,20 @@ public void sendASAPMessage(CharSequence appName, CharSequence uri, byte[] messa
37
38
}
38
39
}
39
40
40
-
41
- public void startEncounter (int port , ASAPSimplePeer otherPeer ) throws IOException {
41
+ public void startEncounter (int port , ASAPSimplePeerFS otherPeer ) throws IOException {
42
42
this .serverSocket = new ServerSocket (port );
43
43
44
44
new Thread (new Runnable () {
45
45
@ Override
46
46
public void run () {
47
47
try {
48
- ASAPSimplePeer .this .socket = ASAPSimplePeer .this .serverSocket .accept ();
48
+ ASAPSimplePeerFS .this .socket = ASAPSimplePeerFS .this .serverSocket .accept ();
49
49
} catch (IOException e ) {
50
- ASAPSimplePeer .this .log ("fatal while waiting for client to connect: "
50
+ ASAPSimplePeerFS .this .log ("fatal while waiting for client to connect: "
51
51
+ e .getLocalizedMessage ());
52
52
}
53
53
54
- ASAPSimplePeer .this .startSession ();
54
+ ASAPSimplePeerFS .this .startSession ();
55
55
}
56
56
}).start ();
57
57
@@ -69,7 +69,7 @@ private void connect(int port) throws IOException {
69
69
this .startSession ();
70
70
}
71
71
72
- public void stopEncounter (ASAPSimplePeer otherPeer ) throws IOException {
72
+ public void stopEncounter (ASAPSimplePeerFS otherPeer ) throws IOException {
73
73
this .socket .close ();
74
74
}
75
75
@@ -78,16 +78,21 @@ private void startSession() {
78
78
@ Override
79
79
public void run () {
80
80
try {
81
- ASAPSimplePeer .this .peer .handleConnection (
82
- ASAPSimplePeer .this .socket .getInputStream (),
83
- ASAPSimplePeer .this .socket .getOutputStream ());
81
+ ASAPSimplePeerFS .this .peer .handleConnection (
82
+ ASAPSimplePeerFS .this .socket .getInputStream (),
83
+ ASAPSimplePeerFS .this .socket .getOutputStream ());
84
84
} catch (IOException | ASAPException e ) {
85
- ASAPSimplePeer .this .log ("fatal while connecting: " + e .getLocalizedMessage ());
85
+ ASAPSimplePeerFS .this .log ("fatal while connecting: " + e .getLocalizedMessage ());
86
86
}
87
87
}
88
88
}).start ();
89
89
}
90
90
91
+ @ Override
92
+ public CharSequence getPeerName () {
93
+ return this .peer .getOwner ();
94
+ }
95
+
91
96
@ Override
92
97
public void chunkReceived (String format , String sender , String uri , int era ) throws IOException {
93
98
StringBuilder sb = new StringBuilder ();
@@ -101,4 +106,9 @@ public void chunkReceived(String format, String sender, String uri, int era) thr
101
106
102
107
this .asapMessageReceivedListenerManager .notifyReceived (format , receivedMessages , true );
103
108
}
109
+
110
+ @ Override
111
+ public void onlinePeersChanged (ASAPPeer engine ) {
112
+ this .environmentChangesListenerManager .notifyListeners (engine .getOnlinePeers ());
113
+ }
104
114
}
0 commit comments