Skip to content

Commit c3c664e

Browse files
committed
Move few more message classes to factory
1 parent 09deb53 commit c3c664e

12 files changed

Lines changed: 70 additions & 32 deletions

File tree

java/v2styx-lib/src/main/java/com/v2soft/styxlib/handlers/TMessagesProcessor.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,14 @@
88
import com.v2soft.styxlib.l5.enums.MessageType;
99
import com.v2soft.styxlib.l5.messages.StyxRReadMessage;
1010
import com.v2soft.styxlib.l5.messages.StyxRWalkMessage;
11-
import com.v2soft.styxlib.l5.messages.StyxRWriteMessage;
1211
import com.v2soft.styxlib.l5.messages.StyxTCreateMessage;
13-
import com.v2soft.styxlib.l5.messages.v9p2000.StyxTOpenMessage;
14-
import com.v2soft.styxlib.l5.messages.StyxTReadMessage;
12+
import com.v2soft.styxlib.l5.messages.v9p2000.StyxTReadMessage;
1513
import com.v2soft.styxlib.l5.messages.base.StyxMessage;
1614
import com.v2soft.styxlib.l5.messages.base.StyxTMessageFID;
1715
import com.v2soft.styxlib.l5.messages.v9p2000.BaseMessage;
1816
import com.v2soft.styxlib.l5.messages.v9p2000.StyxTAttachMessage;
1917
import com.v2soft.styxlib.l5.messages.v9p2000.StyxTAuthMessage;
18+
import com.v2soft.styxlib.l5.messages.v9p2000.StyxTOpenMessage;
2019
import com.v2soft.styxlib.l5.messages.v9p2000.StyxTWStatMessage;
2120
import com.v2soft.styxlib.l5.messages.v9p2000.StyxTWalkMessage;
2221
import com.v2soft.styxlib.l5.messages.v9p2000.StyxTWriteMessage;
@@ -206,7 +205,7 @@ private StyxMessage processWStat(StyxTWStatMessage msg) {
206205

207206
private StyxMessage processWrite(int clientId, StyxTWriteMessage msg) throws StyxException {
208207
long fid = msg.getFID();
209-
return new StyxRWriteMessage(msg.getTag(),
208+
return mDi.getMessageFactory().constructRWriteMessage(msg.getTag(),
210209
mDi.getClientsRepo().getAssignedFile(clientId, fid).write(clientId, msg.data, msg.offset));
211210
}
212211

java/v2styx-lib/src/main/java/com/v2soft/styxlib/l5/messages/base/Factory.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,6 @@ public interface Factory {
2121
StyxMessage constructRStatMessage(int tag, StyxStat stat);
2222
StyxMessage constructTFlushMessage(int tag);
2323
StyxMessage constructTOpenMessage(long fid, int mode);
24+
StyxMessage constructRWriteMessage(int tag, long count);
25+
StyxMessage constructTReadMessage(long fid, long offset, int count);
2426
}

java/v2styx-lib/src/main/java/com/v2soft/styxlib/l5/messages/v9p2000/FactoryImpl.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,4 +82,14 @@ public StyxMessage constructTFlushMessage(int tag) {
8282
public StyxMessage constructTOpenMessage(long fid, int mode) {
8383
return new StyxTOpenMessage(fid, mode);
8484
}
85+
86+
@Override
87+
public StyxMessage constructRWriteMessage(int tag, long count) {
88+
return new StyxRWriteMessage(tag, count);
89+
}
90+
91+
@Override
92+
public StyxMessage constructTReadMessage(long fid, long offset, int count) {
93+
return new StyxTReadMessage(fid, offset, count);
94+
}
8595
}

java/v2styx-lib/src/main/java/com/v2soft/styxlib/l5/messages/StyxRWriteMessage.java renamed to java/v2styx-lib/src/main/java/com/v2soft/styxlib/l5/messages/v9p2000/StyxRWriteMessage.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
package com.v2soft.styxlib.l5.messages;
1+
package com.v2soft.styxlib.l5.messages.v9p2000;
22

33
import com.v2soft.styxlib.l5.enums.MessageType;
4-
import com.v2soft.styxlib.l5.messages.v9p2000.BaseMessage;
54

65
public class StyxRWriteMessage extends BaseMessage {
76
public final long count;
87

9-
public StyxRWriteMessage(int tag, long count) {
8+
protected StyxRWriteMessage(int tag, long count) {
109
super(MessageType.Rwrite, tag, null);
1110
this.count = count;
1211
}

java/v2styx-lib/src/main/java/com/v2soft/styxlib/l5/messages/StyxTReadMessage.java renamed to java/v2styx-lib/src/main/java/com/v2soft/styxlib/l5/messages/v9p2000/StyxTReadMessage.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.v2soft.styxlib.l5.messages;
1+
package com.v2soft.styxlib.l5.messages.v9p2000;
22

33
import com.v2soft.styxlib.l5.enums.MessageType;
44
import com.v2soft.styxlib.l5.messages.base.StyxTMessageFID;
@@ -7,7 +7,7 @@ public class StyxTReadMessage extends StyxTMessageFID {
77
public final long offset;
88
public final int count;
99

10-
public StyxTReadMessage(long fid, long offset, int count) {
10+
protected StyxTReadMessage(long fid, long offset, int count) {
1111
super(MessageType.Tread, fid);
1212
this.offset = offset;
1313
this.count = count;

java/v2styx-lib/src/main/java/com/v2soft/styxlib/l5/v9p2000/StyxDeserializerImpl.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@
55
import com.v2soft.styxlib.l5.enums.MessageType;
66
import com.v2soft.styxlib.l5.messages.StyxRReadMessage;
77
import com.v2soft.styxlib.l5.messages.StyxRWalkMessage;
8-
import com.v2soft.styxlib.l5.messages.StyxRWriteMessage;
98
import com.v2soft.styxlib.l5.messages.StyxTCreateMessage;
10-
import com.v2soft.styxlib.l5.messages.StyxTReadMessage;
119
import com.v2soft.styxlib.l5.messages.base.Factory;
1210
import com.v2soft.styxlib.l5.messages.base.StyxMessage;
1311
import com.v2soft.styxlib.l5.messages.base.StyxTMessageFID;
@@ -87,7 +85,7 @@ public StyxMessage deserializeMessage(IBufferReader buffer, int io_unit) throws
8785
tag,
8886
deserializeQid(buffer),
8987
buffer.readUInt32());
90-
case MessageType.Tread -> result = new StyxTReadMessage(
88+
case MessageType.Tread -> result = messageFactory.constructTReadMessage(
9189
buffer.readUInt32(),
9290
buffer.readUInt64(),
9391
(int) buffer.readUInt32());
@@ -113,7 +111,7 @@ public StyxMessage deserializeMessage(IBufferReader buffer, int io_unit) throws
113111
0,
114112
0);
115113
}
116-
case MessageType.Rwrite -> result = new StyxRWriteMessage(tag, buffer.readUInt32());
114+
case MessageType.Rwrite -> result = messageFactory.constructRWriteMessage(tag, buffer.readUInt32());
117115
case MessageType.Tclunk -> result = new StyxTMessageFID(
118116
MessageType.Tclunk,
119117
buffer.readUInt32());

java/v2styx-lib/src/main/java/com/v2soft/styxlib/l6/StyxFile.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,8 @@ public List<StyxStat> listStat()
9696
var iounit = open(ModeType.OREAD, tempFID);
9797
var stats = new ArrayList<StyxStat>();
9898
try {
99-
var is = new StyxFileBufferedInputStream(mTransmitter, tempFID, iounit, mClientId);
99+
var is = new StyxFileBufferedInputStream(mTransmitter, tempFID, iounit, mClientId,
100+
mDI.getGetMessagesFactoryUseCase());
100101
var sis = new StyxDataInputStream(is);
101102
while (true) {
102103
stats.add(mDI.getDataDeserializer().deserializeStat(sis));
@@ -125,7 +126,8 @@ public StyxFileBufferedInputStream openForRead()
125126
throws StyxException {
126127
long tempFID = getCloneFID();
127128
int iounit = open(ModeType.OREAD, tempFID);
128-
return new StyxFileBufferedInputStream(mTransmitter, tempFID, iounit, mClientId);
129+
return new StyxFileBufferedInputStream(mTransmitter, tempFID, iounit, mClientId,
130+
mDI.getGetMessagesFactoryUseCase());
129131
}
130132

131133
/**
@@ -136,7 +138,8 @@ public StyxFileBufferedInputStream openForRead()
136138
public StyxUnbufferedInputStream openForReadUnbuffered() throws StyxException {
137139
long tempFID = getCloneFID();
138140
int iounit = open(ModeType.OREAD, tempFID);
139-
return new StyxUnbufferedInputStream(tempFID, mTransmitter, iounit, mClientId);
141+
return new StyxUnbufferedInputStream(tempFID, mTransmitter, iounit, mClientId,
142+
mDI.getGetMessagesFactoryUseCase());
140143
}
141144

142145
public OutputStream openForWrite()

java/v2styx-lib/src/main/java/com/v2soft/styxlib/l6/io/StyxFileBufferedInputStream.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.v2soft.styxlib.l6.io;
22

3-
import com.v2soft.styxlib.server.ClientDetails;
43
import com.v2soft.styxlib.handlers.IMessageTransmitter;
4+
import com.v2soft.styxlib.utils.GetMessagesFactoryUseCase;
55

66
import java.io.BufferedInputStream;
77
import java.io.IOException;
@@ -21,10 +21,12 @@ public class StyxFileBufferedInputStream extends InputStream {
2121
* @param iounit maximal block size.
2222
*/
2323
public StyxFileBufferedInputStream(IMessageTransmitter messenger,
24-
long fid,
25-
int iounit,
26-
int clientId) {
27-
mUnbufferedInput = new StyxUnbufferedInputStream(fid, messenger, iounit, clientId);
24+
long fid,
25+
int iounit,
26+
int clientId,
27+
GetMessagesFactoryUseCase getMessagesFactoryUseCase) {
28+
mUnbufferedInput = new StyxUnbufferedInputStream(fid, messenger, iounit, clientId,
29+
getMessagesFactoryUseCase);
2830
mBufferedInput = new CBufferedInputStream(mUnbufferedInput, iounit);
2931
}
3032

java/v2styx-lib/src/main/java/com/v2soft/styxlib/l6/io/StyxUnbufferedInputStream.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
package com.v2soft.styxlib.l6.io;
22

3+
import com.v2soft.styxlib.handlers.IMessageTransmitter;
34
import com.v2soft.styxlib.l5.Connection;
5+
import com.v2soft.styxlib.l5.dev.MetricsAndStats;
6+
import com.v2soft.styxlib.l5.enums.MessageType;
47
import com.v2soft.styxlib.l5.messages.StyxRReadMessage;
5-
import com.v2soft.styxlib.l5.messages.StyxTReadMessage;
8+
import com.v2soft.styxlib.l5.messages.base.StyxMessage;
69
import com.v2soft.styxlib.l5.messages.base.StyxTMessageFID;
7-
import com.v2soft.styxlib.l5.enums.MessageType;
8-
import com.v2soft.styxlib.handlers.IMessageTransmitter;
9-
import com.v2soft.styxlib.l5.dev.MetricsAndStats;
10+
import com.v2soft.styxlib.utils.GetMessagesFactoryUseCase;
1011

1112
import java.io.IOException;
1213
import java.io.InputStream;
@@ -24,17 +25,20 @@ public class StyxUnbufferedInputStream extends InputStream {
2425
private long mFileOffset = 0;
2526
private int mIOUnitSize;
2627
protected int mRecepient;
28+
private GetMessagesFactoryUseCase getMessagesFactoryUseCase;
2729

2830
public StyxUnbufferedInputStream(long file,
2931
IMessageTransmitter messenger,
3032
int iounit,
31-
int clientId) {
33+
int clientId,
34+
GetMessagesFactoryUseCase getMessagesFactoryUseCase) {
3235
if ( clientId < 0 ) {
3336
throw new NullPointerException("clientId is negative");
3437
}
3538
if ( messenger == null ) {
3639
throw new NullPointerException("messenger is null");
3740
}
41+
this.getMessagesFactoryUseCase = getMessagesFactoryUseCase;
3842
MetricsAndStats.byteArrayAllocationIo++;
3943
mRecepient = clientId;
4044
mIOUnitSize = iounit;
@@ -58,7 +62,8 @@ public int read(byte[] b, int off, int len) throws IOException {
5862
int read = 0;
5963
try {
6064
// send Tread
61-
final StyxTReadMessage tRead = new StyxTReadMessage(mFID, mFileOffset, len);
65+
final StyxMessage tRead = getMessagesFactoryUseCase.get()
66+
.constructTReadMessage(mFID, mFileOffset, len);
6267
final var rRead = mMessenger.<StyxRReadMessage>sendMessage(tRead, mRecepient)
6368
.getResult(mTimeout);
6469
read = rRead.dataLength;

java/v2styx-lib/src/main/java/com/v2soft/styxlib/l6/io/StyxUnbufferedOutputStream.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import com.v2soft.styxlib.l5.Connection;
55
import com.v2soft.styxlib.l5.dev.MetricsAndStats;
66
import com.v2soft.styxlib.l5.enums.MessageType;
7-
import com.v2soft.styxlib.l5.messages.StyxRWriteMessage;
7+
import com.v2soft.styxlib.l5.messages.v9p2000.StyxRWriteMessage;
88
import com.v2soft.styxlib.l5.messages.base.StyxMessage;
99
import com.v2soft.styxlib.l5.messages.base.StyxTMessageFID;
1010
import com.v2soft.styxlib.utils.GetMessagesFactoryUseCase;

0 commit comments

Comments
 (0)