2121import java .net .Socket ;
2222import java .util .*;
2323
24+ import static net .sharksystem .cmdline .sharkmessengerUI .ProductionUI .SYNC_WITH_OTHERS_IN_SECONDS_KEY ;
25+
2426/**
2527 * Proposed and suggested pattern for Shark app. Implement a central entity (could even be a singleton)
2628 * that provides access to any component that is part of this application
@@ -45,6 +47,7 @@ public SharkMessengerApp(String peerName, ExtraData settings) throws SharkExcept
4547 this .settings = settings ;
4648 this .sharkPeerFS = new SharkPeerFS (peerName , this .peerDataFolderName );
4749 this .peerName = peerName ;
50+ int syncWithOthersInSeconds = settings .getExtraInteger (SYNC_WITH_OTHERS_IN_SECONDS_KEY );
4851
4952 // set up shark components
5053
@@ -79,16 +82,19 @@ public SharkMessengerApp(String peerName, ExtraData settings) throws SharkExcept
7982 //////////////////////// setup hub connection management
8083 // TODO: that's still a design flaw. We need something that extracts a connection handler from a peer. Do we?
8184 ASAPPeer asapPeer = this .sharkPeerFS .getASAPPeer ();
85+ ASAPConnectionHandler asapHandler = (ASAPConnectionHandler ) asapPeer ;
8286 // this code runs on service side - this peer should be a connection handler
8387 if (asapPeer instanceof ASAPConnectionHandler ) { // TODO: aaaaargs
8488 // yes it is
8589 ASAPEncounterManagerImpl asapEncounterManager =
86- new ASAPEncounterManagerImpl ((ASAPConnectionHandler ) asapPeer , asapPeer .getPeerID ());
90+ new ASAPEncounterManagerImpl (asapHandler , asapPeer .getPeerID (),
91+ syncWithOthersInSeconds *1000 );
8792 // same object - different roles
8893 this .encounterManager = asapEncounterManager ;
8994 this .encounterManagerAdmin = asapEncounterManager ;
9095
91- this .hubConnectionManager = new HubConnectionManagerImpl (this .encounterManager , asapPeer );
96+ this .hubConnectionManager =
97+ new HubConnectionManagerImpl (this .encounterManager , asapPeer , syncWithOthersInSeconds );
9298 } else {
9399 Log .writeLogErr (this ,
94100 "ASAP peer set but is not a connection handler - cannot set up connection management" );
@@ -191,7 +197,10 @@ public Set<Integer> getOpenHubPorts() {
191197 public void startHub (int portNumber ) throws IOException {
192198 if (this .portAlreadyInUse (portNumber )) return ;
193199
194- ASAPTCPHub asapHub = new ASAPTCPHub (portNumber );
200+ // create a new hub that spawns new TCP connections.
201+ // ASAPTCPHub asapHub = new ASAPTCPHub(portNumber, true);
202+
203+ ASAPTCPHub asapHub = new ASAPTCPHub (portNumber , false );
195204 this .asapHubs .put (portNumber , asapHub );
196205 new Thread (asapHub ).start ();
197206 }
0 commit comments