Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitd37c8cc

Browse files
committed
updated JConnection<-JCloseEventConsumer
1 parentda61264 commitd37c8cc

File tree

14 files changed

+75
-28
lines changed

14 files changed

+75
-28
lines changed

‎.gitignore‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
.mtj.tmp/
1212

1313
# Package Files #
14-
*.jar
1514
*.war
1615
*.nar
1716
*.ear

‎.gitignore.save‎

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Compiled class file
2+
*.class
3+
4+
# Log file
5+
*.log
6+
7+
# BlueJ files
8+
*.ctxt
9+
10+
# Mobile Tools for Java (J2ME)
11+
.mtj.tmp/
12+
13+
# Package Files #
14+
*.jar
15+
*.w
16+
*.nar
17+
*.ear
18+
*.zip
19+
*.tar.gz
20+
*.rar
21+
22+
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
23+
hs_err_pid*
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
packagejsc.jConnection;
2+
3+
@FunctionalInterface
4+
publicinterfaceJCloseEventConsumer {
5+
voidonClose();
6+
}

‎JSC/JConnection/src/main/java/jsc/jConnection/JConnection.java‎

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,14 @@
1111
/**
1212
* @author Joshi Prashant
1313
*/
14-
publicclassJConnectionimplementsJMessageConsumer {
14+
publicclassJConnectionimplementsJMessageConsumer,JCloseEventConsumer {
1515

1616
privateStringconnectionID;
1717
privateSocketsocket;
1818
privateDataOutputStreamdataOutputStream;
1919
privateDataInputStreamdataInputStream;
2020
privatebooleanisConnected =false;
21+
privateJCloseEventConsumerjCloseEventConsumer;
2122

2223
privatefinalObjectinterruptReadLock =newObject();
2324
privatebooleanisReadInterrupted =false;
@@ -41,6 +42,7 @@ public JConnection(String connectionIP, int connectionPort, JMessageConsumer msg
4142
this(newSocket(connectionIP,connectionPort),msgDecoder);
4243
}
4344

45+
4446
publicJConnection(StringconnectionIP,intconnectionPort)throwsIOException {
4547
this(connectionIP,connectionPort,newJEventManager());
4648
}
@@ -75,7 +77,7 @@ public void run(JMessageConsumer msgDecoder){
7577
}
7678
}catch(IOExceptione){
7779
isConnected =false;
78-
close();
80+
onClose();
7981
System.err.println(getConnectionID()+" disconnected!");
8082
}
8183
}).start();
@@ -193,11 +195,20 @@ public void accept(String msg) {
193195
}
194196
}
195197

196-
publicvoidclose(){
198+
@Override
199+
publicvoidonClose(){
197200
try{
201+
if(jCloseEventConsumer!=null){
202+
jCloseEventConsumer.onClose();
203+
}
198204
socket.close();
199205
}catch (IOExceptione){
200206
System.err.println(e);
201207
}
202208
}
209+
210+
publicvoidsetOnClose(JCloseEventConsumerjCloseEventConsumer){
211+
this.jCloseEventConsumer =jCloseEventConsumer;
212+
}
213+
203214
}

‎JSC/JConnection/src/main/java/jsc/jEventManager/JEventManager.java‎

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,21 +14,21 @@ public class JEventManager implements JMessageConsumer {
1414

1515
privateJMessageConsumermessageConsumer;
1616

17-
publicJEventManager(){}
17+
publicJEventManager(){
18+
setMessageConsumer((msg) ->{
19+
String[]eventData =JMessageFormatHandler.decode(JMessageDelimiter.EVENT_TYPE_DELIMITER,msg,2);
20+
inteventTypeCode =Integer.parseInt(eventData[0]);
21+
notifyAllConsumers(eventTypeCode,eventData[1]);
22+
});
23+
}
1824

1925
publicJEventManager(JMessageConsumerjMessageConsumer){
2026
this.messageConsumer =jMessageConsumer;
2127
}
2228

2329
@Override
2430
publicvoidaccept(Stringmsg){
25-
if(messageConsumer!=null){
26-
messageConsumer.accept(msg);
27-
}else{
28-
String[]eventData =JMessageFormatHandler.decode(JMessageDelimiter.EVENT_TYPE_DELIMITER,msg,2);
29-
inteventTypeCode =Integer.parseInt(eventData[0]);
30-
notifyAllConsumers(eventTypeCode,eventData[1]);
31-
}
31+
messageConsumer.accept(msg);
3232
}
3333

3434
publicvoidnotifyAllConsumers(inteventTypeCode,StringeventData){

‎JSC/JConnection/src/main/java/jsc/jMessageHandler/JMessageFormatHandler.java‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
packagejsc.jMessageHandler;
22

33

4+
importjsc.jEventManager.JEventCode;
45
importjsc.jEventManager.JEventType;
56
importjsc.jObjectParser.JObjectParser;
67

@@ -29,6 +30,10 @@ public static String encode(JMessageDelimiter sep, JMessageCode msgType, String.
2930
returnmsgType.getCode()+JMessageDelimiter.REQUEST_TYPE_DELIMITER.toString() +encode(sep,msgData);
3031
}
3132

33+
publicstaticStringencode(JEventCodejEventCode,String...eventData){
34+
returnjEventCode.getCode() +JMessageDelimiter.EVENT_TYPE_DELIMITER.toString() +encode(eventData);
35+
}
36+
3237
//encode format--> MESSAGE_TYPE{sep}EVENT_TYPE{sep}MSG_DATA
3338
publicstaticStringencode(JMessageDelimitersep,JMessageTyperesType,JEventTypeJEventType,String ...msgData){
3439
returnresType.getCode()+JMessageDelimiter.RESPONSE_TYPE_DELIMITER.toString() +JEventType.getCode()+ (JMessageDelimiter.EVENT_TYPE_DELIMITER) +encode(sep,msgData);

‎JSC/JConnection/src/main/java/jsc/jMessageHandler/JMessageType.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ public enum JMessageType implements JMessageCode {
88
INVALID_MSG(-1),
99
FAILED(0),
1010
SUCCESS(1),
11-
INTERRUPT_READ(2),
11+
READ_INTERRUPT(2),
1212
FILE_TRANSFER(3),
1313
GET(3),
1414
PUT(4),

‎JSC/JConnection/src/test/java/jsc/jConnection/JConnectionTest.java‎

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,22 @@
22

33
importjava.io.IOException;
44

5+
56
classJConnectionTest {
67

78
JConnectionjConnection;
89

910
@org.junit.jupiter.api.BeforeEach
1011
voidsetUp()throwsIOException {
11-
jConnection =newJConnection("127.0.0.1",5656,System.out::println);
12+
jConnection =newJConnection("127.0.0.1",5656, (msg)->{
13+
System.out.println("Using read thread:" +msg);
14+
});
1215
jConnection.run();
1316
}
1417

1518
@org.junit.jupiter.api.AfterEach
1619
voidtearDown() {
17-
jConnection.close();
20+
jConnection.onClose();
1821
}
1922

2023
@org.junit.jupiter.api.Test

‎JSC/JSERVER/src/main/java/jsc/jServer/ClientConnectionsHandler.java‎renamed to ‎JSC/JSERVER/src/main/java/jsc/jServer/JClientConnectionsHandler.java‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@
44

55
importjava.util.HashMap;
66

7-
publicclassClientConnectionsHandlerextendsHashMap<String,JConnection> {
7+
publicclassJClientConnectionsHandlerextendsHashMap<String,JConnection> {
88
publicvoidcloseAll(){
9-
applyToAll((JConnection::close));
9+
applyToAll((JConnection::onClose));
1010
}
1111

1212
publicvoidpublish(Stringmsg){
13-
for(JConnectionsocketConnection:values()){
14-
socketConnection.write(msg);
15-
}
13+
applyToAll((jConnection)->{
14+
jConnection.write(msg);
15+
});
1616
}
1717

1818
publicvoidapplyToAll(JConnectionHandlerjConnectionHandler){

‎JSC/JSERVER/src/main/java/jsc/jServer/JRequestManager.java‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ abstract public class JRequestManager extends JConnection implements JResponseSe
88
privateStringresponse;
99
privatebooleanhasResponse =false;
1010

11-
privateClientConnectionsHandlerclientConnectionsHandler =newClientConnectionsHandler();
11+
privateJClientConnectionsHandlerJClientConnectionsHandler =newJClientConnectionsHandler();
1212

1313
@Override
1414
abstractpublicvoidaccept(Stringreq);
@@ -32,11 +32,11 @@ public void send(String res){
3232
write(res);
3333
}
3434

35-
publicClientConnectionsHandlergetClientConnectionsHandler() {
36-
returnclientConnectionsHandler;
35+
publicJClientConnectionsHandlergetClientConnectionsHandler() {
36+
returnJClientConnectionsHandler;
3737
}
3838

39-
publicvoidsetClientConnectionsHandler(ClientConnectionsHandlerccHandler) {
40-
clientConnectionsHandler =ccHandler;
39+
publicvoidsetClientConnectionsHandler(JClientConnectionsHandlerccHandler) {
40+
JClientConnectionsHandler =ccHandler;
4141
}
4242
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp