Skip to content

Commit c250aa7

Browse files
committed
multichannel works - close to finish this one - make a snapshot
1 parent 59bcf44 commit c250aa7

6 files changed

Lines changed: 35 additions & 5 deletions

File tree

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
package net.sharksystem.hub.hubside;
1+
package net.sharksystem.hub;
22

33
import net.sharksystem.streams.StreamPair;
44

55
public interface ConnectionPreparer {
6+
byte readyByte = 42; // what else would it be
67
void prepare(StreamPair streamPair);
78
}

src/net/sharksystem/hub/hubside/HubGenericImpl.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import net.sharksystem.asap.ASAPPeer;
44
import net.sharksystem.hub.ASAPHubException;
5+
import net.sharksystem.hub.ConnectionPreparer;
56
import net.sharksystem.streams.StreamPair;
67
import net.sharksystem.streams.StreamPairLink;
78
import net.sharksystem.utils.Log;
@@ -77,8 +78,11 @@ protected abstract void sendDisconnectRequest(CharSequence sourcePeerID, CharSeq
7778
public void startDataSession(CharSequence sourcePeerID, CharSequence targetPeerID,
7879
StreamPair connection, int timeout) throws ASAPHubException, IOException {
7980

81+
ConnectionPreparer preparer = null; // should be in parameter list TODO
8082
// remember this request
81-
this.dataSessionRequestList.add(new DataSessionRequest(sourcePeerID, targetPeerID, connection, timeout));
83+
this.dataSessionRequestList.add(
84+
new DataSessionRequest(sourcePeerID, targetPeerID, connection, timeout, preparer));
85+
8286
Log.writeLog(this, "start data session " + sourcePeerID + " -> " + targetPeerID);
8387
this.createDataConnection(sourcePeerID, targetPeerID, timeout);
8488
}

src/net/sharksystem/hub/hubside/HubSingleEntitySharedChannel.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package net.sharksystem.hub.hubside;
22

33
import net.sharksystem.hub.ASAPHubException;
4+
import net.sharksystem.hub.ConnectionPreparer;
45
import net.sharksystem.streams.IdleStreamPairCloser;
56
import net.sharksystem.streams.StreamPair;
67
import net.sharksystem.utils.Log;
@@ -88,6 +89,9 @@ public void newConnectionCreated(CharSequence sourcePeerID, CharSequence targetP
8889
+ e.getLocalizedMessage());
8990
}
9091

91-
this.connectionCreated(targetPeerID, sourcePeerID, streamPair);
92+
// ConnectionPreparer preparer = new TCPSocketConnectionPreparer();
93+
ConnectionPreparer preparer = null;
94+
95+
this.connectionCreated(targetPeerID, sourcePeerID, streamPair, preparer);
9296
}
9397
}

src/net/sharksystem/hub/hubside/MultipleTCPChannelsConnectorHubSideImpl.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,8 @@ public void newConnectionCreated(CharSequence sourcePeerID, CharSequence targetP
9797
Log.writeLog(this, this.toString(),"newConnectionCreated: " + sourcePeerID + "-->" + targetPeerID);
9898
try {
9999
IdleStreamPairCloser.getIdleStreamsCloser(streamPair, timeOutDataConnection).start();
100+
// a preparer would fit
101+
TCPSocketConnectionPreparer preparer = new TCPSocketConnectionPreparer();
100102
this.getHub().startDataSession(sourcePeerID, targetPeerID, streamPair, this.getTimeOutDataConnection());
101103
} catch (ASAPHubException | IOException e) {
102104
Log.writeLog(this, this.toString(),"could not create data connection: " + e.getLocalizedMessage());
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package net.sharksystem.hub.hubside;
2+
3+
import net.sharksystem.hub.ConnectionPreparer;
4+
import net.sharksystem.streams.StreamPair;
5+
import net.sharksystem.utils.Log;
6+
7+
import java.io.IOException;
8+
9+
class TCPSocketConnectionPreparer implements ConnectionPreparer {
10+
@Override
11+
public void prepare(StreamPair streamPair) {
12+
try {
13+
streamPair.getOutputStream().write(ConnectionPreparer.readyByte);
14+
} catch (IOException e) {
15+
Log.writeLog(this, "socket already gone before first usage");
16+
}
17+
}
18+
}

tests/net/sharksystem/hub/HubConnectorTester.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,10 +73,11 @@ public void notifyPeerConnected(CharSequence targetPeerID, StreamPair streamPair
7373
System.out.println(peerID + " writes pure bytes: " + this.messageA);
7474
streamPair.getOutputStream().write(testBytes);
7575
byte[] receivedBytes = new byte[10];
76-
//Thread.sleep(1000); // give other process a moment
7776
System.out.println(peerID + " available: " + streamPair.getInputStream().available());
77+
Thread.sleep(100); // give other process a moment
78+
System.out.println(peerID + " available #2: " + streamPair.getInputStream().available());
7879
streamPair.getInputStream().read(receivedBytes);
79-
System.out.println(peerID + " available: " + streamPair.getInputStream().available());
80+
System.out.println(peerID + " available #3: " + streamPair.getInputStream().available());
8081
if(!Helper.sameByteArray(testBytes, receivedBytes)) this.onError(testBytes, receivedBytes);
8182
return;
8283
}

0 commit comments

Comments
 (0)