|
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 | } |