99import java .io .*;
1010import java .util .*;
1111
12- public class ASAPEncounterManagerImpl implements ASAPEncounterManager , ASAPConnectionListener {
12+ public class ASAPEncounterManagerImpl implements ASAPEncounterManager ,
13+ EncounterManagerAdmin ,
14+ ASAPConnectionListener {
1315 public static final long DEFAULT_WAIT_BEFORE_RECONNECT_TIME = 1000 ; // a second - debugging
1416 public static final long DEFAULT_WAIT_TO_AVOID_RACE_CONDITION = 500 ; // milliseconds - worked fine with BT.
1517
@@ -47,6 +49,7 @@ public ASAPEncounterManagerImpl(ASAPConnectionHandler asapConnectionHandler, lon
4749 this .asapConnectionHandler = asapConnectionHandler ;
4850 this .randomValue = new Random (System .currentTimeMillis ()).nextInt ();
4951 this .waitBeforeReconnect = waitingPeriod ;
52+ this .restoreDenyList ();
5053 }
5154
5255 private boolean coolDownOver (CharSequence id , EncounterConnectionType connectionType ) {
@@ -293,6 +296,54 @@ public synchronized void asapConnectionTerminated(Exception terminatingException
293296 }
294297 }
295298
299+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
300+ // EncounterManagerAdmin //
301+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
302+
303+ private Set <CharSequence > denyList ;
304+
305+ //// housekeeping
306+ private void restoreDenyList () {
307+ // TODO
308+ this .denyList = new HashSet <>();
309+ Log .writeLog (this , "need to implement restoreDenyList" );
310+ }
311+
312+ private void saveDenyList () {
313+ // TODO
314+ Log .writeLog (this , "need to implement saveDenyList" );
315+ }
316+
317+ ///// manage deny list
318+ @ Override
319+ public void addToDenyList (CharSequence peerID ) {
320+ this .denyList .add (peerID );
321+ this .saveDenyList ();
322+ }
323+
324+ @ Override
325+ public void removeFromDenyList (CharSequence peerID ) {
326+ this .denyList .remove (peerID );
327+ this .saveDenyList ();
328+ }
329+
330+ @ Override
331+ public Set <CharSequence > getDenyList () {
332+ return this .denyList ;
333+ }
334+
335+ @ Override
336+ public Set <CharSequence > getConnectedPeerIDs () {
337+ return this .openStreamPairs .keySet ();
338+ }
339+ @ Override
340+ public void cancelConnection (CharSequence peerID ) {
341+ StreamPair stream2Close = this .openStreamPairs .get (peerID );
342+ if (stream2Close != null ) {
343+ stream2Close .close ();
344+ }
345+ }
346+
296347 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
297348 // utils //
298349 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -301,5 +352,4 @@ public String toString() {
301352 return this .asapConnectionHandler .toString ();
302353 }
303354
304-
305355}
0 commit comments