Skip to content

Commit c36ff93

Browse files
authored
Merge pull request #38 from vshcryabets/feature/update-messages
Hide StyxRVersionMessage
2 parents 258b428 + 49ab097 commit c36ff93

29 files changed

Lines changed: 357 additions & 110 deletions

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

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,16 @@
66
import com.v2soft.styxlib.exceptions.StyxUnknownClientIdException;
77
import com.v2soft.styxlib.l5.dev.MetricsAndStats;
88
import com.v2soft.styxlib.l5.enums.MessageType;
9-
import com.v2soft.styxlib.l5.messages.*;
9+
import com.v2soft.styxlib.l5.messages.StyxRReadMessage;
10+
import com.v2soft.styxlib.l5.messages.StyxRStatMessage;
11+
import com.v2soft.styxlib.l5.messages.StyxRWalkMessage;
12+
import com.v2soft.styxlib.l5.messages.StyxRWriteMessage;
13+
import com.v2soft.styxlib.l5.messages.StyxTCreateMessage;
14+
import com.v2soft.styxlib.l5.messages.StyxTOpenMessage;
15+
import com.v2soft.styxlib.l5.messages.StyxTReadMessage;
16+
import com.v2soft.styxlib.l5.messages.StyxTWStatMessage;
17+
import com.v2soft.styxlib.l5.messages.StyxTWalkMessage;
18+
import com.v2soft.styxlib.l5.messages.v9p2000.StyxTWriteMessage;
1019
import com.v2soft.styxlib.l5.messages.base.StyxMessage;
1120
import com.v2soft.styxlib.l5.messages.base.StyxTMessageFID;
1221
import com.v2soft.styxlib.l5.messages.v9p2000.BaseMessage;
@@ -62,7 +71,7 @@ public void processPacket(StyxMessage message, int clientId) throws StyxExceptio
6271
try {
6372
switch (message.getType()) {
6473
case MessageType.Tversion:
65-
answer = new StyxRVersionMessage(mConnectionDetails.ioUnit(), mConnectionDetails.protocol());
74+
answer = mDi.getMessageFactory().constructRVersion(mConnectionDetails.ioUnit(), mConnectionDetails.protocol());
6675
break;
6776
case MessageType.Tattach:
6877
answer = processAttach(clientId, (StyxTAttachMessage)message);
@@ -124,21 +133,21 @@ public void processPacket(StyxMessage message, int clientId) throws StyxExceptio
124133
}
125134
}
126135

127-
private StyxRAttachMessage processAttach(int clientId, StyxTAttachMessage msg) throws StyxUnknownClientIdException {
136+
private StyxMessage processAttach(int clientId, StyxTAttachMessage msg) throws StyxUnknownClientIdException {
128137
var clientDetails = mDi.getClientsRepo().getClient(clientId);
129138
clientDetails.setUsername(msg.userName);
130139
String mountPoint = msg.mountPoint;
131140
mRoot.onConnectionOpened(clientId);
132141
IVirtualStyxFile root = mRoot; // TODO .getDirectory(mountPoint); there should be some logic with mountPoint?
133-
StyxRAttachMessage answer = new StyxRAttachMessage(msg.getTag(), root.getQID());
142+
StyxMessage answer = mDi.getMessageFactory().constructRAttachMessage(msg.getTag(), root.getQID());
134143
clientDetails.registerOpenedFile(msg.getFID(), root);
135144
return answer;
136145
}
137146

138147
private StyxMessage processAuth(int clientId, StyxTAuthMessage msg) throws StyxUnknownClientIdException {
139148
mDi.getClientsRepo().getClient(clientId).setUsername(msg.mUserName);
140149
// TODO handle auth packet
141-
return new StyxRAuthMessage(msg.getTag(), StyxQID.EMPTY);
150+
return mDi.getMessageFactory().constructRAuthMessage(msg.getTag(), StyxQID.EMPTY);
142151
}
143152

144153
private StyxMessage processClunk(int clientId, StyxTMessageFID msg)
@@ -168,8 +177,8 @@ private StyxMessage processOpen(int clientId, StyxTOpenMessage msg)
168177
long fid = msg.getFID();
169178
IVirtualStyxFile file = mDi.getClientsRepo().getAssignedFile(clientId, fid);
170179
if (file.open(clientId, msg.mode)) {
171-
return new StyxROpenMessage(msg.getTag(), file.getQID(),
172-
mConnectionDetails.ioUnit() - DEFAULT_PACKET_HEADER_SIZE, false);
180+
return mDi.getMessageFactory().constructROpenMessage(msg.getTag(), file.getQID(),
181+
mConnectionDetails.ioUnit() - DEFAULT_PACKET_HEADER_SIZE);
173182
} else {
174183
throw StyxErrorMessageException.newInstance("Not supported mode for specified file");
175184
}
@@ -188,7 +197,7 @@ private StyxMessage processCreate(int clientId, StyxTCreateMessage msg)
188197
throws StyxException {
189198
final IVirtualStyxFile file = mDi.getClientsRepo().getAssignedFile(clientId, msg.getFID());
190199
StyxQID qid = file.create(clientId, msg.name, msg.permissions, msg.mode);
191-
return new StyxROpenMessage(msg.getTag(), qid, mConnectionDetails.ioUnit(), true);
200+
return mDi.getMessageFactory().constructRCreateMessage(msg.getTag(), qid, mConnectionDetails.ioUnit());
192201
}
193202

194203
private StyxMessage processWStat(StyxTWStatMessage msg) {

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@
77
import com.v2soft.styxlib.handlers.TMessageTransmitter;
88
import com.v2soft.styxlib.l5.enums.Constants;
99
import com.v2soft.styxlib.l5.enums.MessageType;
10-
import com.v2soft.styxlib.l5.messages.*;
1110
import com.v2soft.styxlib.l5.messages.base.StyxMessage;
1211
import com.v2soft.styxlib.l5.messages.base.StyxTMessageFID;
12+
import com.v2soft.styxlib.l5.messages.v9p2000.StyxRAttachMessage;
13+
import com.v2soft.styxlib.l5.messages.v9p2000.StyxRAuthMessage;
14+
import com.v2soft.styxlib.l5.messages.v9p2000.StyxRVersionMessage;
1315
import com.v2soft.styxlib.l5.structs.StyxQID;
1416
import com.v2soft.styxlib.l6.StyxFile;
1517
import com.v2soft.styxlib.library.types.ConnectionDetails;

java/v2styx-lib/src/main/java/com/v2soft/styxlib/l5/dev/Operations.java

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,12 @@
22

33
import com.v2soft.styxlib.Logger;
44
import com.v2soft.styxlib.l5.enums.MessageType;
5-
import com.v2soft.styxlib.l5.messages.v9p2000.StyxRErrorMessage;
6-
import com.v2soft.styxlib.l5.messages.v9p2000.StyxTAuthMessage;
7-
import com.v2soft.styxlib.l5.messages.v9p2000.StyxTAttachMessage;
8-
import com.v2soft.styxlib.l5.messages.v9p2000.StyxTVersionMessage;
95
import com.v2soft.styxlib.l5.messages.StyxTWStatMessage;
106
import com.v2soft.styxlib.l5.messages.base.StyxMessage;
117
import com.v2soft.styxlib.l5.messages.base.StyxTMessageFID;
8+
import com.v2soft.styxlib.l5.messages.v9p2000.StyxRErrorMessage;
9+
import com.v2soft.styxlib.l5.messages.v9p2000.StyxTAttachMessage;
10+
import com.v2soft.styxlib.l5.messages.v9p2000.StyxTAuthMessage;
1211

1312
public class Operations {
1413
public static String toString(byte[] bytes) {
@@ -50,12 +49,6 @@ public static String toString(StyxMessage message) {
5049
result.append(((StyxTWStatMessage) message).stat.toString());
5150
}
5251
break;
53-
case MessageType.Tversion:
54-
result.append("MaxPocketSize:");
55-
result.append(((StyxTVersionMessage) message).maxPacketSize);
56-
result.append(" ProtocolVersion:");
57-
result.append(((StyxTVersionMessage) message).protocolVersion);
58-
break;
5952
case MessageType.Tattach:
6053
result.append("AuthFID: ");
6154
result.append(((StyxTAttachMessage) message).authFID);

java/v2styx-lib/src/main/java/com/v2soft/styxlib/l5/dev/StringSerializer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
// String serialization for debug purposes
99
public interface StringSerializer {
10-
String serializeQid(StyxQID qid) throws StyxException;
10+
String serializeQid(StyxQID qid);
1111
String serializeStat(StyxStat stat) throws StyxException;
1212
String serializeMessage(StyxMessage message);
1313
}

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

Lines changed: 0 additions & 23 deletions
This file was deleted.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,16 @@
11
package com.v2soft.styxlib.l5.messages.base;
22

3+
import com.v2soft.styxlib.l5.structs.StyxQID;
4+
35
public interface Factory {
46
StyxMessage constructTVersion(long iounit, String version);
57
StyxMessage constructTAuth(long fid, String userName, String mountPoint);
68
StyxMessage constructTAttach(long fid, long afid, String userName, String mountPoint);
79
StyxMessage constructRerror(int tag, String error);
10+
StyxMessage constructRVersion(long maxPacketSize, String protocolVersion);
11+
StyxMessage constructRAttachMessage(int tag, StyxQID qid);
12+
StyxMessage constructRAuthMessage(int tag, StyxQID qid);
13+
StyxMessage constructROpenMessage(int tag, StyxQID qid, long iounit);
14+
StyxMessage constructRCreateMessage(int tag, StyxQID qid, long iounit);
15+
StyxMessage constructTWriteMessage(long fid, long fileOffset, byte[] data, int dataOffset, int dataLength);
816
}

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

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.v2soft.styxlib.l5.messages.base.Factory;
44
import com.v2soft.styxlib.l5.messages.base.StyxMessage;
5+
import com.v2soft.styxlib.l5.structs.StyxQID;
56

67
public class FactoryImpl implements Factory {
78
@Override
@@ -23,4 +24,34 @@ public StyxMessage constructTAttach(long fid, long afid, String userName, String
2324
public StyxMessage constructRerror(int tag, String error) {
2425
return new StyxRErrorMessage(tag, error);
2526
}
27+
28+
@Override
29+
public StyxMessage constructRVersion(long maxPacketSize, String protocolVersion) {
30+
return new StyxRVersionMessage(maxPacketSize, protocolVersion);
31+
}
32+
33+
@Override
34+
public StyxMessage constructRAttachMessage(int tag, StyxQID qid) {
35+
return new StyxRAttachMessage(tag, qid);
36+
}
37+
38+
@Override
39+
public StyxMessage constructRAuthMessage(int tag, StyxQID qid) {
40+
return new StyxRAuthMessage(tag, qid);
41+
}
42+
43+
@Override
44+
public StyxMessage constructROpenMessage(int tag, StyxQID qid, long iounit) {
45+
return new StyxROpenMessage(tag, qid, iounit, false);
46+
}
47+
48+
@Override
49+
public StyxMessage constructRCreateMessage(int tag, StyxQID qid, long iounit) {
50+
return new StyxROpenMessage(tag, qid, iounit, true);
51+
}
52+
53+
@Override
54+
public StyxMessage constructTWriteMessage(long fid, long fileOffset, byte[] data, int dataOffset, int dataLength) {
55+
return new StyxTWriteMessage(fid, fileOffset, data, dataOffset, dataLength);
56+
}
2657
}

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
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
import com.v2soft.styxlib.l5.structs.StyxQID;
65

76
public class StyxRAttachMessage extends BaseMessage {
8-
public StyxRAttachMessage(int tag, StyxQID qid) {
7+
protected StyxRAttachMessage(int tag, StyxQID qid) {
98
super(MessageType.Rattach, tag, qid);
109
}
1110
}

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
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
import com.v2soft.styxlib.l5.structs.StyxQID;
65

76
public class StyxRAuthMessage extends BaseMessage {
8-
public StyxRAuthMessage(int tag, StyxQID qid) {
7+
protected StyxRAuthMessage(int tag, StyxQID qid) {
98
super(MessageType.Rauth, tag, qid);
109
}
1110
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
public class StyxRErrorMessage extends BaseMessage {
66
public final String mError;
77

8-
public StyxRErrorMessage(int tag, String error) {
8+
protected StyxRErrorMessage(int tag, String error) {
99
super(MessageType.Rerror, tag, null);
1010
mError = error;
1111
}

0 commit comments

Comments
 (0)