@@ -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 );
0 commit comments