88import java .util .Collection ;
99import java .util .List ;
1010
11- public class ASAPPeerFS extends ASAPInternalPeerWrapper implements ASAPPeerService , ASAPChunkReceivedListener {
11+ public class ASAPPeerFS extends ASAPInternalPeerWrapper implements ASAPPeerService , ASAPChunkAssimilatedListener {
1212 public static final CharSequence DEFAULT_ROOT_FOLDER_NAME = ASAPEngineFS .DEFAULT_ROOT_FOLDER_NAME ;
1313
1414 private final String rootFolder ;
15- private ASAPChunkReceivedListener chunkReceivedListener ;
15+ private ASAPChunkAssimilatedListener chunkReceivedListener ;
1616
1717 public ASAPPeerFS (CharSequence owner , CharSequence rootFolder ,
1818 Collection <CharSequence > supportFormats ) throws IOException , ASAPException {
1919 super .setInternalPeer (ASAPInternalPeerFS .createASAPPeer (owner , rootFolder , supportFormats , this ));
2020 this .rootFolder = rootFolder .toString ();
2121 }
2222
23- public void overwriteChuckReceivedListener (ASAPChunkReceivedListener listener ) {
23+ public void overwriteChuckReceivedListener (ASAPChunkAssimilatedListener listener ) {
24+ Log .writeLogErr (this , "do not use chunk received listener - message received listener is better" );
2425 this .chunkReceivedListener = listener ;
2526 }
2627
2728 private ASAPEncounterManager ASAPEncounterManager = null ;
2829
29- @ Override
30- public void chunkReceived (String format , String senderE2E , String uri , int era ,
31- List <ASAPHop > asapHopList ) throws IOException {
3230
31+ private void chunkAssimilated (ASAPMessages receivedMessages , CharSequence format ,
32+ CharSequence senderE2E , CharSequence uri , int era ,
33+ List <ASAPHop > asapHopList , boolean callListener ) {
3334 StringBuilder sb = new StringBuilder ();
3435 String hopListString = "hoplist == null" ;
3536 if (asapHopList != null ) {
@@ -45,7 +46,7 @@ public void chunkReceived(String format, String senderE2E, String uri, int era,
4546 }
4647
4748 sb = new StringBuilder ();
48- sb .append ("\n ++++++++++++++++++++++++++++++++++++++++++ chunkReceived ++ +++++++++++++++++++++++++++++++++++++++++\n " );
49+ sb .append ("\n +++++++++++++++++++++++++++++++++++++++ chunkAssimilated +++++++++++++++++++++++++++++++++++++++++\n " );
4950 sb .append ("E2E|P2P: " + senderE2E + " | " + asapHopList .get (asapHopList .size ()-1 ).sender () + " | uri: " + uri );
5051 sb .append (" | era: " );
5152 if (era == ASAP .TRANSIENT_ERA ) sb .append ("transient" );
@@ -56,28 +57,45 @@ public void chunkReceived(String format, String senderE2E, String uri, int era,
5657 sb .append ("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" );
5758 this .log (sb .toString ());
5859
59- if (this .chunkReceivedListener != null ) {
60- this .log ("chunk received listener set - call this one" );
61- this .chunkReceivedListener .chunkReceived (format , senderE2E , uri , era , asapHopList );
62- } else {
60+ if (callListener ) {
61+ // call listener
6362 this .log ("notify listener" );
64- if (this .asapMessageReceivedListenerManager .getNumberListener () > 0 ) {
65- this .log ("extract messages from chunk and notify listener" );
66- ASAPMessages receivedMessages =
67- Helper .getMessagesByChunkReceivedInfos (format , senderE2E , uri , this .rootFolder , era );
68-
63+ if (this .asapMessageReceivedListenerManager .getNumberListener () > 0 ) {
6964 this .asapMessageReceivedListenerManager .notifyReceived (
7065 format , receivedMessages , true ,
71- senderE2E , asapHopList );
66+ senderE2E . toString () , asapHopList );
7267 }
7368
74- if (this .asapChannelContentChangedListenerManager .getNumberListener () > 0 ) {
69+ if (this .asapChannelContentChangedListenerManager .getNumberListener () > 0 ) {
7570 this .log ("notify channel content changed listener" );
7671 this .asapChannelContentChangedListenerManager .notifyChanged (format , uri , era , true );
7772 }
7873 }
7974 }
8075
76+ @ Override
77+ public void transientChunkReceived (ASAPMessages transientMessages , CharSequence sender , List <ASAPHop > asapHop ) throws IOException {
78+ this .chunkAssimilated (transientMessages ,
79+ transientMessages .getFormat (), sender , transientMessages .getURI (),
80+ ASAP .TRANSIENT_ERA , asapHop , true );
81+ }
82+
83+ @ Override
84+ public void chunkStored (String format , String senderE2E , String uri , int era ,
85+ List <ASAPHop > asapHopList ) throws IOException {
86+ if (this .chunkReceivedListener != null ) {
87+ this .log ("chunk received listener set - call this one" );
88+ this .chunkReceivedListener .chunkStored (format , senderE2E , uri , era , asapHopList );
89+ this .chunkAssimilated (null , format , senderE2E , uri , era , asapHopList , false );
90+ } else {
91+ this .log ("extract messages from chunk and notify listener" );
92+ ASAPMessages receivedMessages =
93+ Helper .getMessagesByChunkReceivedInfos (format , senderE2E , uri , this .rootFolder , era );
94+
95+ this .chunkAssimilated (receivedMessages , format , senderE2E , uri , era , asapHopList , true );
96+ }
97+ }
98+
8199 /// TODO this method makes absolutely no sense in that class.
82100 @ Override
83101 public int getNumberListener () {
0 commit comments