Skip to content

Commit c5b6773

Browse files
authored
Merge pull request #35 from vshcryabets/fix/dev-string-serialization
Add StringSerializer
2 parents 14e9181 + 61892df commit c5b6773

21 files changed

Lines changed: 177 additions & 31 deletions

java/v2styx-console-client/src/main/java/com/v2soft/styxlib/StyxConsoleClient.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import com.v2soft.styxlib.l5.serialization.IDataDeserializer;
99
import com.v2soft.styxlib.l5.serialization.IDataSerializer;
1010
import com.v2soft.styxlib.l5.serialization.impl.StyxDeserializerImpl;
11-
import com.v2soft.styxlib.l5.serialization.impl.StyxSerializerImpl;
11+
import com.v2soft.styxlib.l5.v9p2000.StyxSerializerImpl;
1212
import com.v2soft.styxlib.l5.structs.StyxStat;
1313
import com.v2soft.styxlib.library.types.impl.CredentialsImpl;
1414
import com.v2soft.styxlib.server.StyxServerManager;

java/v2styx-lib/src/main/java/com/v2soft/styxlib/Logger.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,22 @@
44

55
public class Logger {
66
public static final PrintStream DEBUG = System.out;
7+
8+
private static void message(String tag, String id, String message) {
9+
String currentTime = java.time.LocalTime.now().toString();
10+
long tid = Thread.currentThread().getId();
11+
DEBUG.println(currentTime + "\t" + tid + "\t" + id + "\t" + tag + ":\t" + message);
12+
}
13+
14+
public static void d(String tag, String message) {
15+
message(tag, "D", message);
16+
}
17+
18+
public static void info(String tag, String message) {
19+
message(tag, "I", message);
20+
}
21+
22+
public static void e(String tag, String message) {
23+
message(tag, "E", message);
24+
}
725
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
package com.v2soft.styxlib.exceptions;
22

33
public class StyxUnknownClientIdException extends StyxException {
4+
public StyxUnknownClientIdException(String message) {
5+
super(message);
6+
}
47
}

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,16 @@
1111
* @author V.Shcryabets <a>vshcryabets@gmail.com</a>
1212
*/
1313
public abstract class QueueMessagesProcessor implements IMessageProcessor {
14-
protected LinkedBlockingQueue<Pair> mQueue;
15-
protected Thread mThread;
16-
17-
private static class Pair {
14+
public static class Pair {
1815
public StyxMessage mMessage;
1916
public int mClientId;
2017
}
2118

19+
protected LinkedBlockingQueue<Pair> mQueue;
20+
protected Thread mThread;
21+
2222
public QueueMessagesProcessor() {
23-
mQueue = new LinkedBlockingQueue<Pair>();
23+
mQueue = new LinkedBlockingQueue<>();
2424
mThread = new Thread(mRunnable, toString());
2525
mThread.start();
2626
}

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.v2soft.styxlib.l5.dev;
22

3+
import com.v2soft.styxlib.Logger;
34
import com.v2soft.styxlib.l5.enums.MessageType;
45
import com.v2soft.styxlib.l5.messages.StyxTWStatMessage;
56
import com.v2soft.styxlib.l5.messages.base.StyxMessage;
@@ -44,4 +45,12 @@ public static String toString(StyxMessage message) {
4445
}
4546
return result.toString();
4647
}
48+
49+
public static void printStacktrace(String tag) {
50+
var stackTrace = Thread.currentThread().getStackTrace();
51+
Logger.d(tag, "Stack trace:");
52+
for (StackTraceElement element : stackTrace) {
53+
Logger.d(tag, element.toString());
54+
}
55+
}
4756
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.v2soft.styxlib.l5.dev;
2+
3+
import com.v2soft.styxlib.exceptions.StyxException;
4+
import com.v2soft.styxlib.l5.messages.base.StyxMessage;
5+
import com.v2soft.styxlib.l5.structs.StyxQID;
6+
import com.v2soft.styxlib.l5.structs.StyxStat;
7+
8+
// String serialization for debug purposes
9+
public interface StringSerializer {
10+
String serializeQid(StyxQID qid) throws StyxException;
11+
String serializeStat(StyxStat stat) throws StyxException;
12+
String serializeMessage(StyxMessage message);
13+
}

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

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

3-
import com.v2soft.styxlib.l5.enums.MessageType;
4-
import com.v2soft.styxlib.l5.serialization.IBufferReader;
53
import com.v2soft.styxlib.l5.structs.StyxQID;
64

7-
import java.io.IOException;
8-
95
public class StyxRSingleQIDMessage extends StyxMessage {
106
protected final StyxQID mQID;
117

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package com.v2soft.styxlib.l5.v9p2000;
2+
3+
import com.v2soft.styxlib.exceptions.StyxException;
4+
import com.v2soft.styxlib.l5.dev.StringSerializer;
5+
import com.v2soft.styxlib.l5.messages.base.StyxMessage;
6+
import com.v2soft.styxlib.l5.structs.StyxQID;
7+
import com.v2soft.styxlib.l5.structs.StyxStat;
8+
9+
public class StringSerializerImpl implements StringSerializer {
10+
@Override
11+
public String serializeQid(StyxQID qid) throws StyxException {
12+
return String.format("QID {type: %d, version: %d, path: %d}",
13+
qid.type(), qid.version(), qid.path());
14+
}
15+
16+
@Override
17+
public String serializeStat(StyxStat stat) throws StyxException {
18+
StringBuilder result = new StringBuilder();
19+
result.append("Stat ")
20+
.append(String.format("0x%x,0x%x,", stat.type(), stat.dev()))
21+
.append("Qid=").append(serializeQid(stat.QID()))
22+
.append(",mode=0x").append(Long.toHexString(stat.mode()))
23+
.append(",atime=").append(stat.accessTime().toInstant())
24+
.append(",mtime=").append(stat.modificationTime().toInstant())
25+
.append(",length=").append(stat.length())
26+
.append(",name=").append(stat.name())
27+
.append(",user=").append(stat.userName())
28+
.append(",group=").append(stat.groupName())
29+
.append(",modUser=").append(stat.modificationUser());
30+
return result.toString();
31+
}
32+
33+
@Override
34+
public String serializeMessage(StyxMessage message) {
35+
return "";
36+
}
37+
}

java/v2styx-lib/src/main/java/com/v2soft/styxlib/l5/serialization/impl/StyxSerializerImpl.java renamed to java/v2styx-lib/src/main/java/com/v2soft/styxlib/l5/v9p2000/StyxSerializerImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.v2soft.styxlib.l5.serialization.impl;
1+
package com.v2soft.styxlib.l5.v9p2000;
22

33
import com.v2soft.styxlib.exceptions.StyxException;
44
import com.v2soft.styxlib.l5.enums.Checks;

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import com.v2soft.styxlib.l5.messages.*;
1313
import com.v2soft.styxlib.l5.messages.base.StyxMessage;
1414
import com.v2soft.styxlib.l5.messages.base.StyxTMessageFID;
15-
import com.v2soft.styxlib.l5.serialization.impl.StyxSerializerImpl;
15+
import com.v2soft.styxlib.l5.v9p2000.StyxSerializerImpl;
1616
import com.v2soft.styxlib.l5.structs.StyxStat;
1717
import com.v2soft.styxlib.l6.io.StyxFileBufferedInputStream;
1818
import com.v2soft.styxlib.l6.io.StyxUnbufferedInputStream;

0 commit comments

Comments
 (0)