Skip to content

Commit 4cf4726

Browse files
committed
prepared to integrate this version in ASAPAndroid. Will make testing much easier.
1 parent bee5f1f commit 4cf4726

File tree

5 files changed

+55
-11
lines changed

5 files changed

+55
-11
lines changed

src/net/sharksystem/asap/ASAPInternalPeerWrapper.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ public abstract class ASAPInternalPeerWrapper extends ASAPListenerManagingPeer
1616
protected void setInternalPeer(ASAPInternalPeer peer) {
1717
this.peer = peer;
1818
this.peer.addOnlinePeersChangedListener(this);
19+
20+
this.log("activate online messages on that peer");
21+
this.peer.activateOnlineMessages();
1922
}
2023

2124
protected ASAPInternalPeer getInternalPeer() {

src/net/sharksystem/asap/ASAPPeer.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,8 @@ public interface ASAPPeer extends
55
ASAPEnvironmentChangesListenerManagement,
66
ASAPMessageReceivedListenerManagement
77
{
8+
CharSequence UNKNOWN_USER = "anon";
9+
boolean ONLINE_EXCHANGE_DEFAULT = true;
10+
811
CharSequence getPeerName();
912
}

src/net/sharksystem/asap/ASAPPeerFS.java

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,21 @@
77
import java.util.Collection;
88

99
public class ASAPPeerFS extends ASAPInternalPeerWrapper implements ASAPPeerService, ASAPChunkReceivedListener {
10+
public static final CharSequence DEFAULT_ROOT_FOLDER_NAME = ASAPEngineFS.DEFAULT_ROOT_FOLDER_NAME;
11+
1012
private final String rootFolder;
11-
private final ASAPInternalPeer asapInternalPeer;
13+
private ASAPChunkReceivedListener chunkReceivedListener;
1214

1315
public ASAPPeerFS(CharSequence owner, CharSequence rootFolder,
1416
Collection<CharSequence> supportFormats) throws IOException, ASAPException {
15-
16-
this.asapInternalPeer = ASAPInternalPeerFS.createASAPPeer(owner, rootFolder, supportFormats,this);
17-
super.setInternalPeer(asapInternalPeer);
18-
17+
super.setInternalPeer(ASAPInternalPeerFS.createASAPPeer(owner, rootFolder, supportFormats, this));
1918
this.rootFolder = rootFolder.toString();
2019
}
2120

21+
public void overwriteChuckReceivedListener(ASAPChunkReceivedListener listener) {
22+
this.chunkReceivedListener = listener;
23+
}
24+
2225
@Override
2326
public void chunkReceived(String format, String sender, String uri, int era) throws IOException {
2427
StringBuilder sb = new StringBuilder();
@@ -27,18 +30,34 @@ public void chunkReceived(String format, String sender, String uri, int era) thr
2730
sb.append("\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
2831
this.log(sb.toString());
2932

30-
ASAPMessages receivedMessages =
31-
Helper.getMessagesByChunkReceivedInfos(format, sender, uri, this.rootFolder, era);
33+
if(this.chunkReceivedListener != null) {
34+
this.log("chunk received listener set - call this one");
35+
this.chunkReceivedListener.chunkReceived(format, sender, uri, era);
36+
} else {
37+
this.log("extract messages from chunk and notify listener");
38+
ASAPMessages receivedMessages =
39+
Helper.getMessagesByChunkReceivedInfos(format, sender, uri, this.rootFolder, era);
3240

33-
this.asapMessageReceivedListenerManager.notifyReceived(format, receivedMessages, true);
41+
this.asapMessageReceivedListenerManager.notifyReceived(format, receivedMessages, true);
42+
}
3443
}
3544

45+
// TODO move behaviour control into this package
46+
3647
@Override
3748
public void sendASAPMessage(CharSequence appName, CharSequence uri, byte[] message) throws ASAPException {
3849
try {
39-
ASAPEngine asapEngine = this.asapInternalPeer.createEngineByFormat(appName);
40-
asapEngine.activateOnlineMessages(this.getInternalPeer());
41-
asapEngine.add(uri, message);
50+
ASAPEngine engine = this.getInternalPeer().createEngineByFormat(appName);
51+
engine.activateOnlineMessages(this.getInternalPeer());
52+
engine.add(uri, message);
53+
// send online
54+
try {
55+
this.getInternalPeer().sendOnlineASAPAssimilateMessage(appName, uri, message);
56+
}
57+
catch(ASAPException e) {
58+
// no online peers - that's ok
59+
this.log("could not send message online - that's ok.");
60+
}
4261
} catch (IOException e) {
4362
this.log(e.getLocalizedMessage());
4463
throw new ASAPException("problems getting asap engine", e);
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,23 @@
11
package net.sharksystem.asap;
22

3+
import net.sharksystem.asap.internals.ASAPChunkReceivedListener;
34
import net.sharksystem.asap.internals.ASAPException;
5+
import net.sharksystem.asap.internals.ASAPInternalPeer;
46

57
import java.io.IOException;
68
import java.io.InputStream;
79
import java.io.OutputStream;
810

911
public interface ASAPPeerService extends ASAPPeer {
12+
long DEFAULT_MAX_PROCESSING_TIME = ASAPInternalPeer.DEFAULT_MAX_PROCESSING_TIME;
13+
1014
void handleConnection(InputStream is, OutputStream os) throws IOException, ASAPException;
15+
16+
/**
17+
* Overwrite internal listener. This method is used e.g. in Androiud on service side. The asap peer is informed
18+
* about newly received chunks. That news is broadcasted to application side which performs the actual processing.
19+
*
20+
* @param listener this listener is called instead - no further chunk processing is made by this object.
21+
*/
22+
void overwriteChuckReceivedListener(ASAPChunkReceivedListener listener);
1123
}

src/net/sharksystem/asap/apps/testsupport/ASAPPeerWrapperMock.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,10 @@
33
import net.sharksystem.asap.ASAPListenerManagingPeer;
44
import net.sharksystem.asap.ASAPPeerService;
55
import net.sharksystem.asap.internals.ASAP;
6+
import net.sharksystem.asap.internals.ASAPChunkReceivedListener;
67
import net.sharksystem.asap.internals.ASAPException;
78
import net.sharksystem.asap.internals.ASAPMessages;
9+
import sun.reflect.generics.reflectiveObjects.NotImplementedException;
810

911
import java.io.IOException;
1012
import java.io.InputStream;
@@ -128,6 +130,11 @@ public void handleConnection(InputStream is, OutputStream os) throws IOException
128130
throw new ASAPException("that's a mock, no real peer");
129131
}
130132

133+
@Override
134+
public void overwriteChuckReceivedListener(ASAPChunkReceivedListener listener) {
135+
throw new RuntimeException("that's a mock, no real peer");
136+
}
137+
131138
public void stopEncounter(ASAPPeerWrapperMock otherPeer) {
132139
this.stopEncounter(otherPeer, true);
133140
}

0 commit comments

Comments
 (0)