Skip to content

Commit 18549d9

Browse files
committed
just before using transient asap message exchange in sn2
1 parent 1ae99fc commit 18549d9

10 files changed

Lines changed: 69 additions & 44 deletions
Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,6 @@
11
package net.sharksystem.asap;
22

3-
import net.sharksystem.asap.protocol.*;
4-
import net.sharksystem.asap.util.Log;
5-
6-
import java.io.ByteArrayOutputStream;
73
import java.io.IOException;
8-
import java.io.OutputStream;
94
import java.util.*;
105

116
public abstract class ASAPAbstractOnlineMessageSender implements ASAPOnlineMessageSender {
@@ -21,14 +16,14 @@ public void detachFromStorage() {
2116
}
2217
}
2318

24-
public void sendASAPAssimilate(CharSequence format, CharSequence uri, CharSequence recipient,
25-
byte[] messageAsBytes, int era) throws IOException, ASAPException {
19+
public void sendASAPAssimilateMessage(CharSequence format, CharSequence uri, CharSequence recipient,
20+
byte[] messageAsBytes, int era) throws IOException, ASAPException {
2621
if(recipient == null) {
27-
this.sendASAPAssimilate(format, uri, messageAsBytes, era);
22+
this.sendASAPAssimilateMessage(format, uri, messageAsBytes, era);
2823
} else {
2924
Set<CharSequence> recipients = new HashSet<>();
3025
recipients.add(recipient);
31-
this.sendASAPAssimilate(format, uri, recipients, messageAsBytes, era);
26+
this.sendASAPAssimilateMessage(format, uri, recipients, messageAsBytes, era);
3227
}
3328
}
3429
}

src/net/sharksystem/asap/ASAPChunk.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -86,14 +86,6 @@ public interface ASAPChunk {
8686
*/
8787
void removeRecipient(CharSequence recipients) throws IOException;
8888

89-
/**
90-
* adds a message
91-
* @param messageAsBytes
92-
* @throws IOException
93-
* @deprecated
94-
*/
95-
//void addMessage(CharSequence message) throws IOException;
96-
9789
void addMessage(byte[] messageAsBytes) throws IOException;
9890

9991
void addMessage(InputStream messageByteIS, long length) throws IOException;

src/net/sharksystem/asap/ASAPEngine.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ public void add(CharSequence urlTarget, byte[] messageAsBytes) throws IOExceptio
175175

176176
if(this.asapOnlineMessageSender != null) {
177177
try {
178-
this.asapOnlineMessageSender.sendASAPAssimilate(
178+
this.asapOnlineMessageSender.sendASAPAssimilateMessage(
179179
this.format, urlTarget, chunk.getRecipients(),
180180
messageAsBytes, this.era);
181181
} catch (IOException | ASAPException e) {

src/net/sharksystem/asap/ASAPOnlineMessageSender.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@
44
import java.util.Set;
55

66
public interface ASAPOnlineMessageSender {
7-
void sendASAPAssimilate(CharSequence format, CharSequence urlTarget, Set<CharSequence> recipients,
8-
byte[] messageAsBytes, int era) throws IOException, ASAPException;
7+
void sendASAPAssimilateMessage(CharSequence format, CharSequence urlTarget, Set<CharSequence> recipients,
8+
byte[] messageAsBytes, int era) throws IOException, ASAPException;
99

10-
void sendASAPAssimilate(CharSequence format, CharSequence urlTarget, CharSequence recipient,
11-
byte[] messageAsBytes, int era) throws IOException, ASAPException;
10+
void sendASAPAssimilateMessage(CharSequence format, CharSequence urlTarget, CharSequence recipient,
11+
byte[] messageAsBytes, int era) throws IOException, ASAPException;
1212

13-
void sendASAPAssimilate(CharSequence format, CharSequence urlTarget, byte[] messageAsBytes, int era)
13+
void sendASAPAssimilateMessage(CharSequence format, CharSequence urlTarget, byte[] messageAsBytes, int era)
1414
throws IOException, ASAPException;
1515
}

src/net/sharksystem/asap/ASAPOnlineMessageSenderEngineSide.java

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,22 @@ public ASAPOnlineMessageSenderEngineSide(MultiASAPEngineFS multiEngine) {
2727
this.multiEngine = multiEngine;
2828
}
2929

30-
public void sendASAPAssimilate(CharSequence format, CharSequence uri, byte[] messageAsBytes, int era)
30+
public void sendASAPAssimilateMessage(CharSequence format, CharSequence uri, byte[] messageAsBytes)
31+
throws IOException, ASAPException {
32+
33+
// can I determine an era?
34+
int era = ASAPEngineFS.DEFAULT_INIT_ERA;
35+
try {
36+
ASAPEngine asapEngine = this.multiEngine.getASAPEngine(format);
37+
era = asapEngine.getEra();
38+
} catch (ASAPException e) {
39+
Log.writeLog(this, "no engine for online message found with format: " + format);
40+
}
41+
42+
this.sendASAPAssimilateMessage(format, uri, messageAsBytes, era);
43+
}
44+
45+
public void sendASAPAssimilateMessage(CharSequence format, CharSequence uri, byte[] messageAsBytes, int era)
3146
throws IOException, ASAPException {
3247

3348
Set<CharSequence> onlinePeers = this.multiEngine.getOnlinePeers();
@@ -42,15 +57,15 @@ public void sendASAPAssimilate(CharSequence format, CharSequence uri, byte[] mes
4257
System.out.println(this.getLogStart() + peerName + "is online");
4358
}
4459

45-
this.sendASAPAssimilate(format, uri, onlinePeerList, messageAsBytes, era);
60+
this.sendASAPAssimilateMessage(format, uri, onlinePeerList, messageAsBytes, era);
4661
}
4762

48-
public void sendASAPAssimilate(CharSequence format, CharSequence uri, Set<CharSequence> recipients,
49-
byte[] messageAsBytes, int era) throws IOException, ASAPException {
63+
public void sendASAPAssimilateMessage(CharSequence format, CharSequence uri, Set<CharSequence> recipients,
64+
byte[] messageAsBytes, int era) throws IOException, ASAPException {
5065

5166
if(recipients == null || recipients.size() < 1) {
5267
// replace empty recipient list with list of online peers.
53-
this.sendASAPAssimilate(format, uri, messageAsBytes, era);
68+
this.sendASAPAssimilateMessage(format, uri, messageAsBytes, era);
5469
}
5570

5671
StringBuilder sb = Log.startLog(this);
@@ -82,10 +97,6 @@ public void sendASAPAssimilate(CharSequence format, CharSequence uri, Set<CharSe
8297
sb.append("got asap connection, subscribe / and store message");
8398
System.out.println(sb.toString());
8499

85-
// subscribe and remember it
86-
asapConnection.addOnlineMessageSource(this);
87-
this.connectionPeers.put(asapConnection, recipient);
88-
89100
// serialize message for this recipient
90101
ByteArrayOutputStream asapPDUBytes = new ByteArrayOutputStream();
91102
protocol.assimilate(this.multiEngine.getOwner(), recipient, format, uri, era, null, // no offsets
@@ -100,6 +111,10 @@ public void sendASAPAssimilate(CharSequence format, CharSequence uri, Set<CharSe
100111

101112
messageList.add(asapPDUBytes.toByteArray());
102113

114+
// subscribe and remember it
115+
asapConnection.addOnlineMessageSource(this);
116+
this.connectionPeers.put(asapConnection, recipient);
117+
103118
} else {
104119
sb = Log.startLog(this);
105120
sb.append("no connection found");
@@ -114,7 +129,7 @@ private String getLogStart() {
114129
}
115130

116131
@Override
117-
public void sendMessages(ASAPConnection asapConnection, OutputStream os) throws IOException {
132+
public void sendStoredMessages(ASAPConnection asapConnection, OutputStream os) throws IOException {
118133
CharSequence recipient = this.connectionPeers.get(asapConnection);
119134

120135
List<byte[]> messageList = this.messages.get(recipient);

src/net/sharksystem/asap/ASAPSingleProcessOnlineMessageSender.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,22 +18,22 @@ public ASAPSingleProcessOnlineMessageSender(MultiASAPEngineFS multiEngine, ASAPS
1818
}
1919

2020
@Override
21-
public void sendASAPAssimilate(CharSequence format, CharSequence uri, Set<CharSequence> recipients,
22-
byte[] messageAsBytes, int era) throws IOException, ASAPException {
21+
public void sendASAPAssimilateMessage(CharSequence format, CharSequence uri, Set<CharSequence> recipients,
22+
byte[] messageAsBytes, int era) throws IOException, ASAPException {
2323

24-
this.asapOnlineMessageSenderEngineSide.sendASAPAssimilate(
24+
this.asapOnlineMessageSenderEngineSide.sendASAPAssimilateMessage(
2525
format, uri, recipients, messageAsBytes, era);
2626
}
2727

2828
@Override
29-
public void sendASAPAssimilate(CharSequence format, CharSequence uri, byte[] messageAsBytes, int era)
29+
public void sendASAPAssimilateMessage(CharSequence format, CharSequence uri, byte[] messageAsBytes, int era)
3030
throws IOException, ASAPException {
3131

32-
this.asapOnlineMessageSenderEngineSide.sendASAPAssimilate(format, uri, messageAsBytes, era);
32+
this.asapOnlineMessageSenderEngineSide.sendASAPAssimilateMessage(format, uri, messageAsBytes, era);
3333
}
3434

3535
@Override
36-
public void sendMessages(ASAPConnection asapConnection, OutputStream os) throws IOException {
37-
this.asapOnlineMessageSenderEngineSide.sendMessages(asapConnection, os);
36+
public void sendStoredMessages(ASAPConnection asapConnection, OutputStream os) throws IOException {
37+
this.asapOnlineMessageSenderEngineSide.sendStoredMessages(asapConnection, os);
3838
}
3939
}

src/net/sharksystem/asap/MultiASAPEngineFS.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,4 +90,19 @@ public interface MultiASAPEngineFS {
9090

9191
void activateOnlineMessages();
9292
void deactivateOnlineMessages();
93+
94+
/**
95+
* This message is only transmitted with open connections. Message is not stored. Nothing happens if no open
96+
* connection is present.
97+
* @param format
98+
* @param urlTarget
99+
* @param recipients
100+
* @param messageAsBytes
101+
* @param era
102+
* @throws IOException
103+
* @throws ASAPException
104+
*/
105+
void sendOnlineASAPAssimilateMessage(CharSequence format, CharSequence urlTarget, Set<CharSequence> recipients,
106+
byte[] messageAsBytes, int era) throws IOException, ASAPException;
107+
93108
}

src/net/sharksystem/asap/MultiASAPEngineFS_Impl.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -486,8 +486,7 @@ public void pushInterests(OutputStream os) throws IOException, ASAPException {
486486

487487
@Override
488488
public void activateOnlineMessages() {
489-
ASAPOnlineMessageSender asapOnlineMessageSender =
490-
new ASAPOnlineMessageSenderEngineSide(this);
489+
ASAPOnlineMessageSender asapOnlineMessageSender = new ASAPOnlineMessageSenderEngineSide(this);
491490

492491
// iterate engines
493492
for(ASAPEngine engine : this.getEngines()) {
@@ -503,6 +502,15 @@ public void deactivateOnlineMessages() {
503502
}
504503
}
505504

505+
public void sendOnlineASAPAssimilateMessage(CharSequence format, CharSequence urlTarget,
506+
Set<CharSequence> recipients, byte[] messageAsBytes, int era) throws IOException, ASAPException {
507+
508+
// setup online message sender thread
509+
ASAPOnlineMessageSender asapOnlineMessageSender = new ASAPOnlineMessageSenderEngineSide(this);
510+
asapOnlineMessageSender.sendASAPAssimilateMessage(format, urlTarget, recipients, messageAsBytes, era);
511+
}
512+
513+
506514
private Collection<ASAPEngine> getEngines() {
507515
Collection<ASAPEngine> engineList = new ArrayList<>();
508516

src/net/sharksystem/asap/protocol/ASAPOnlineMessageSource.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@
44
import java.io.OutputStream;
55

66
public interface ASAPOnlineMessageSource {
7-
void sendMessages(ASAPConnection asapConnection, OutputStream os) throws IOException;
7+
void sendStoredMessages(ASAPConnection asapConnection, OutputStream os) throws IOException;
88
}

src/net/sharksystem/asap/protocol/ASAPPersistentConnection.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ private void sendOnlineMessages() throws IOException {
128128
sb.append(this.getLogStart());
129129
sb.append("going to send online message");
130130
System.out.println(sb.toString());
131-
asapOnline.sendMessages(this, this.os);
131+
asapOnline.sendStoredMessages(this, this.os);
132132
}
133133
}
134134

0 commit comments

Comments
 (0)