From beebb398429d7a6bf1bb08055b6fb9cb90ee5f63 Mon Sep 17 00:00:00 2001 From: godotg Date: Wed, 24 Jul 2024 17:29:47 +0800 Subject: [PATCH] perf[protocol]: ruby code style --- .../generate/GenerateProtocolFile.java | 8 +- .../serializer/ruby/CodeGenerateRuby.java | 4 +- .../serializer/ruby/RubyArraySerializer.java | 28 +- .../serializer/ruby/RubyBoolSerializer.java | 4 +- .../serializer/ruby/RubyByteSerializer.java | 4 +- .../serializer/ruby/RubyDoubleSerializer.java | 4 +- .../serializer/ruby/RubyFloatSerializer.java | 4 +- .../serializer/ruby/RubyIntSerializer.java | 4 +- .../serializer/ruby/RubyListSerializer.java | 28 +- .../serializer/ruby/RubyLongSerializer.java | 4 +- .../serializer/ruby/RubyMapSerializer.java | 28 +- .../ruby/RubyObjectProtocolSerializer.java | 4 +- .../serializer/ruby/RubySetSerializer.java | 28 +- .../serializer/ruby/RubyShortSerializer.java | 4 +- .../serializer/ruby/RubyStringSerializer.java | 4 +- .../src/main/resources/ruby/ByteBuffer.rb | 2014 ++++++++--------- .../resources/ruby/ProtocolClassTemplate.rb | 8 +- .../resources/ruby/ProtocolManagerTemplate.rb | 40 +- .../ruby/ProtocolRegistrationTemplate.rb | 42 +- 19 files changed, 1134 insertions(+), 1130 deletions(-) diff --git a/protocol/src/main/java/com/zfoo/protocol/generate/GenerateProtocolFile.java b/protocol/src/main/java/com/zfoo/protocol/generate/GenerateProtocolFile.java index 46b42769..4ebbcfc5 100644 --- a/protocol/src/main/java/com/zfoo/protocol/generate/GenerateProtocolFile.java +++ b/protocol/src/main/java/com/zfoo/protocol/generate/GenerateProtocolFile.java @@ -27,8 +27,7 @@ import java.lang.reflect.Field; import java.util.*; import java.util.function.Predicate; -import static com.zfoo.protocol.util.StringUtils.TAB; -import static com.zfoo.protocol.util.StringUtils.TAB_ASCII; +import static com.zfoo.protocol.util.StringUtils.*; /** * @author godotg @@ -48,6 +47,11 @@ public abstract class GenerateProtocolFile { return builder; } + public static StringBuilder addTabWith2Space(StringBuilder builder, int deep) { + builder.append(SPACE.repeat(Math.max(0, deep * 2))); + return builder; + } + public static StringBuilder addTabAscii(StringBuilder builder, int deep) { builder.append(TAB_ASCII.repeat(Math.max(0, deep))); return builder; diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/CodeGenerateRuby.java b/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/CodeGenerateRuby.java index 66eaee99..c02e292a 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/CodeGenerateRuby.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/CodeGenerateRuby.java @@ -38,7 +38,6 @@ import java.util.List; import java.util.Map; import static com.zfoo.protocol.util.FileUtils.LS; -import static com.zfoo.protocol.util.StringUtils.TAB; /** * @author godotg @@ -303,7 +302,8 @@ public class CodeGenerateRuby implements ICodeGenerate { if (field.isAnnotationPresent(Compatible.class)) { rbBuilder.append("if buffer.compatibleRead(beforeReadIndex, length)").append(LS); var compatibleReadObject = rbSerializer(fieldRegistration.serializer()).readObject(rbBuilder, 1, field, fieldRegistration); - rbBuilder.append(TAB).append(StringUtils.format("packet.{} = {}", field.getName(), compatibleReadObject)).append(LS); + GenerateProtocolFile.addTabWith2Space(rbBuilder, 1); + rbBuilder.append(StringUtils.format("packet.{} = {}", field.getName(), compatibleReadObject)).append(LS); rbBuilder.append("end").append(LS); continue; } diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyArraySerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyArraySerializer.java index 1595c7ed..81444ba2 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyArraySerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyArraySerializer.java @@ -35,7 +35,7 @@ public class RubyArraySerializer implements IRubySerializer { @Override public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) { - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); if (CutDownArraySerializer.getInstance().writeObject(builder, objectStr, field, fieldRegistration, CodeLanguage.Ruby)) { return; } @@ -43,29 +43,29 @@ public class RubyArraySerializer implements IRubySerializer { ArrayField arrayField = (ArrayField) fieldRegistration; builder.append(StringUtils.format("if {}.nil? || {}.empty?", objectStr, objectStr)).append(LS); - GenerateProtocolFile.addTab(builder, deep + 1); + GenerateProtocolFile.addTabWith2Space(builder, deep + 1); builder.append("buffer.writeInt(0)").append(LS); - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); builder.append("else").append(LS); - GenerateProtocolFile.addTab(builder, deep + 1); + GenerateProtocolFile.addTabWith2Space(builder, deep + 1); builder.append(StringUtils.format("buffer.writeInt({}.length)", objectStr)).append(LS); String element = "element" + GenerateProtocolFile.localVariableId++; - GenerateProtocolFile.addTab(builder, deep + 1); + GenerateProtocolFile.addTabWith2Space(builder, deep + 1); builder.append(StringUtils.format("for {} in {}", element, objectStr)).append(LS); CodeGenerateRuby.rbSerializer(arrayField.getArrayElementRegistration().serializer()) .writeObject(builder, element, deep + 2, field, arrayField.getArrayElementRegistration()); - GenerateProtocolFile.addTab(builder, deep + 1); + GenerateProtocolFile.addTabWith2Space(builder, deep + 1); builder.append("end").append(LS); - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); builder.append("end").append(LS); } @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); var cutDown = CutDownArraySerializer.getInstance().readObject(builder, field, fieldRegistration, CodeLanguage.Ruby); if (cutDown != null) { return cutDown; @@ -79,21 +79,21 @@ public class RubyArraySerializer implements IRubySerializer { String i = "index" + GenerateProtocolFile.localVariableId++; String size = "size" + GenerateProtocolFile.localVariableId++; - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); builder.append(StringUtils.format("{} = buffer.readInt()", size)).append(LS); - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); builder.append(StringUtils.format("if {} > 0", size)).append(LS); - GenerateProtocolFile.addTab(builder, deep + 1); + GenerateProtocolFile.addTabWith2Space(builder, deep + 1); builder.append(StringUtils.format("for {} in 0..{} - 1", i, size)).append(LS); String readObject = CodeGenerateRuby.rbSerializer(arrayField.getArrayElementRegistration().serializer()) .readObject(builder, deep + 2, field, arrayField.getArrayElementRegistration()); - GenerateProtocolFile.addTab(builder, deep + 2); + GenerateProtocolFile.addTabWith2Space(builder, deep + 2); builder.append(StringUtils.format("{}.push({})", result, readObject)).append(LS); - GenerateProtocolFile.addTab(builder, deep + 1); + GenerateProtocolFile.addTabWith2Space(builder, deep + 1); builder.append("end").append(LS); - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); builder.append("end").append(LS); return result; } diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyBoolSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyBoolSerializer.java index d7dcde95..4ad459e5 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyBoolSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyBoolSerializer.java @@ -32,7 +32,7 @@ public class RubyBoolSerializer implements IRubySerializer { @Override public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) { - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); builder.append(StringUtils.format("buffer.writeBool({})", objectStr)).append(LS); } @@ -40,7 +40,7 @@ public class RubyBoolSerializer implements IRubySerializer { public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { String result = "result" + GenerateProtocolFile.localVariableId++; - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); builder.append(StringUtils.format("{} = buffer.readBool() ", result)).append(LS); return result; } diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyByteSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyByteSerializer.java index ddb0218d..bd85ee60 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyByteSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyByteSerializer.java @@ -32,7 +32,7 @@ public class RubyByteSerializer implements IRubySerializer { @Override public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) { - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); builder.append(StringUtils.format("buffer.writeByte({})", objectStr)).append(LS); } @@ -40,7 +40,7 @@ public class RubyByteSerializer implements IRubySerializer { public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { String result = "result" + GenerateProtocolFile.localVariableId++; - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); builder.append(StringUtils.format("{} = buffer.readByte()", result)).append(LS); return result; } diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyDoubleSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyDoubleSerializer.java index 3594e849..44cbe8cd 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyDoubleSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyDoubleSerializer.java @@ -32,7 +32,7 @@ public class RubyDoubleSerializer implements IRubySerializer { @Override public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) { - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); builder.append(StringUtils.format("buffer.writeDouble({})", objectStr)).append(LS); } @@ -40,7 +40,7 @@ public class RubyDoubleSerializer implements IRubySerializer { public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { String result = "result" + GenerateProtocolFile.localVariableId++; - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); builder.append(StringUtils.format("{} = buffer.readDouble()", result)).append(LS); return result; } diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyFloatSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyFloatSerializer.java index 98ac0a69..603c3264 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyFloatSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyFloatSerializer.java @@ -32,7 +32,7 @@ public class RubyFloatSerializer implements IRubySerializer { @Override public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) { - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); builder.append(StringUtils.format("buffer.writeFloat({})", objectStr)).append(LS); } @@ -40,7 +40,7 @@ public class RubyFloatSerializer implements IRubySerializer { public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { String result = "result" + GenerateProtocolFile.localVariableId++; - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); builder.append(StringUtils.format("{} = buffer.readFloat()", result)).append(LS); return result; } diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyIntSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyIntSerializer.java index 5ee64247..ddb14740 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyIntSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyIntSerializer.java @@ -32,7 +32,7 @@ public class RubyIntSerializer implements IRubySerializer { @Override public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) { - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); builder.append(StringUtils.format("buffer.writeInt({})", objectStr)).append(LS); } @@ -40,7 +40,7 @@ public class RubyIntSerializer implements IRubySerializer { public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { String result = "result" + GenerateProtocolFile.localVariableId++; - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); builder.append(StringUtils.format("{} = buffer.readInt()", result)).append(LS); return result; } diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyListSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyListSerializer.java index 6a613731..3a0574bb 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyListSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyListSerializer.java @@ -35,7 +35,7 @@ public class RubyListSerializer implements IRubySerializer { @Override public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) { - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); if (CutDownListSerializer.getInstance().writeObject(builder, objectStr, field, fieldRegistration, CodeLanguage.Ruby)) { return; } @@ -43,29 +43,29 @@ public class RubyListSerializer implements IRubySerializer { ListField listField = (ListField) fieldRegistration; builder.append(StringUtils.format("if {}.nil? || {}.empty?", objectStr, objectStr)).append(LS); - GenerateProtocolFile.addTab(builder, deep + 1); + GenerateProtocolFile.addTabWith2Space(builder, deep + 1); builder.append("buffer.writeInt(0)").append(LS); - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); builder.append("else").append(LS); - GenerateProtocolFile.addTab(builder, deep + 1); + GenerateProtocolFile.addTabWith2Space(builder, deep + 1); builder.append(StringUtils.format("buffer.writeInt({}.length)", objectStr)).append(LS); String element = "element" + GenerateProtocolFile.localVariableId++; - GenerateProtocolFile.addTab(builder, deep + 1); + GenerateProtocolFile.addTabWith2Space(builder, deep + 1); builder.append(StringUtils.format("for {} in {}", element, objectStr)).append(LS); CodeGenerateRuby.rbSerializer(listField.getListElementRegistration().serializer()) .writeObject(builder, element, deep + 2, field, listField.getListElementRegistration()); - GenerateProtocolFile.addTab(builder, deep + 1); + GenerateProtocolFile.addTabWith2Space(builder, deep + 1); builder.append("end").append(LS); - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); builder.append("end").append(LS); } @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); var cutDown = CutDownListSerializer.getInstance().readObject(builder, field, fieldRegistration, CodeLanguage.Ruby); if (cutDown != null) { return cutDown; @@ -79,21 +79,21 @@ public class RubyListSerializer implements IRubySerializer { String i = "index" + GenerateProtocolFile.localVariableId++; String size = "size" + GenerateProtocolFile.localVariableId++; - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); builder.append(StringUtils.format("{} = buffer.readInt()", size)).append(LS); - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); builder.append(StringUtils.format("if {} > 0", size)).append(LS); - GenerateProtocolFile.addTab(builder, deep + 1); + GenerateProtocolFile.addTabWith2Space(builder, deep + 1); builder.append(StringUtils.format("for {} in 0..{} - 1", i, size)).append(LS); String readObject = CodeGenerateRuby.rbSerializer(listField.getListElementRegistration().serializer()) .readObject(builder, deep + 2, field, listField.getListElementRegistration()); - GenerateProtocolFile.addTab(builder, deep + 2); + GenerateProtocolFile.addTabWith2Space(builder, deep + 2); builder.append(StringUtils.format("{}.push({})", result, readObject)).append(LS); - GenerateProtocolFile.addTab(builder, deep + 1); + GenerateProtocolFile.addTabWith2Space(builder, deep + 1); builder.append("end").append(LS); - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); builder.append("end").append(LS); return result; } diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyLongSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyLongSerializer.java index fd56ddfe..d9c7bb19 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyLongSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyLongSerializer.java @@ -32,7 +32,7 @@ public class RubyLongSerializer implements IRubySerializer { @Override public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) { - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); builder.append(StringUtils.format("buffer.writeLong({})", objectStr)).append(LS); } @@ -40,7 +40,7 @@ public class RubyLongSerializer implements IRubySerializer { public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { String result = "result" + GenerateProtocolFile.localVariableId++; - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); builder.append(StringUtils.format("{} = buffer.readLong()", result)).append(LS); return result; } diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyMapSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyMapSerializer.java index 9e331c37..d864e701 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyMapSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyMapSerializer.java @@ -35,41 +35,41 @@ public class RubyMapSerializer implements IRubySerializer { @Override public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) { - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); if (CutDownMapSerializer.getInstance().writeObject(builder, objectStr, field, fieldRegistration, CodeLanguage.Ruby)) { return; } MapField mapField = (MapField) fieldRegistration; builder.append(StringUtils.format("if {}.nil? || {}.empty?", objectStr, objectStr)).append(LS); - GenerateProtocolFile.addTab(builder, deep + 1); + GenerateProtocolFile.addTabWith2Space(builder, deep + 1); builder.append("buffer.writeInt(0)").append(LS); - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); builder.append("else").append(LS); - GenerateProtocolFile.addTab(builder, deep + 1); + GenerateProtocolFile.addTabWith2Space(builder, deep + 1); builder.append(StringUtils.format("buffer.writeInt({}.length)", objectStr)).append(LS); String key = "key" + GenerateProtocolFile.localVariableId++; String value = "value" + GenerateProtocolFile.localVariableId++; - GenerateProtocolFile.addTab(builder, deep + 1); + GenerateProtocolFile.addTabWith2Space(builder, deep + 1); builder.append(StringUtils.format("{}.each do |{}, {}|", objectStr, key, value)).append(LS); CodeGenerateRuby.rbSerializer(mapField.getMapKeyRegistration().serializer()) .writeObject(builder, key, deep + 2, field, mapField.getMapKeyRegistration()); CodeGenerateRuby.rbSerializer(mapField.getMapValueRegistration().serializer()) .writeObject(builder, value, deep + 2, field, mapField.getMapValueRegistration()); - GenerateProtocolFile.addTab(builder, deep + 1); + GenerateProtocolFile.addTabWith2Space(builder, deep + 1); builder.append("end").append(LS); - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); builder.append("end").append(LS); } @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); var cutDown = CutDownMapSerializer.getInstance().readObject(builder, field, fieldRegistration, CodeLanguage.Ruby); if (cutDown != null) { return cutDown; @@ -80,15 +80,15 @@ public class RubyMapSerializer implements IRubySerializer { builder.append(StringUtils.format("{} = Hash.new()", result)).append(LS); - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); String size = "size" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("{} = buffer.readInt()", size)).append(LS); - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); builder.append(StringUtils.format("if {} > 0", size)).append(LS); String i = "index" + GenerateProtocolFile.localVariableId++; - GenerateProtocolFile.addTab(builder, deep + 1); + GenerateProtocolFile.addTabWith2Space(builder, deep + 1); builder.append(StringUtils.format("for {} in 0..{} - 1", i, size)).append(LS); String keyObject = CodeGenerateRuby.rbSerializer(mapField.getMapKeyRegistration().serializer()) @@ -97,13 +97,13 @@ public class RubyMapSerializer implements IRubySerializer { String valueObject = CodeGenerateRuby.rbSerializer(mapField.getMapValueRegistration().serializer()) .readObject(builder, deep + 2, field, mapField.getMapValueRegistration()); - GenerateProtocolFile.addTab(builder, deep + 2); + GenerateProtocolFile.addTabWith2Space(builder, deep + 2); builder.append(StringUtils.format("{}[{}] = {}", result, keyObject, valueObject)).append(LS); - GenerateProtocolFile.addTab(builder, deep + 1); + GenerateProtocolFile.addTabWith2Space(builder, deep + 1); builder.append("end").append(LS); - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); builder.append("end").append(LS); return result; } diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyObjectProtocolSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyObjectProtocolSerializer.java index 63d4e65a..61660f1c 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyObjectProtocolSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyObjectProtocolSerializer.java @@ -34,7 +34,7 @@ public class RubyObjectProtocolSerializer implements IRubySerializer { @Override public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) { ObjectProtocolField objectProtocolField = (ObjectProtocolField) fieldRegistration; - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); builder.append(StringUtils.format("buffer.writePacket({}, {})", objectStr, objectProtocolField.getProtocolId())).append(LS); } @@ -42,7 +42,7 @@ public class RubyObjectProtocolSerializer implements IRubySerializer { public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { ObjectProtocolField objectProtocolField = (ObjectProtocolField) fieldRegistration; var result = "result" + GenerateProtocolFile.localVariableId++; - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); builder.append(StringUtils.format("{} = buffer.readPacket({})", result, objectProtocolField.getProtocolId())).append(LS); return result; } diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubySetSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubySetSerializer.java index 5cd041d2..c997f0e6 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubySetSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubySetSerializer.java @@ -35,7 +35,7 @@ public class RubySetSerializer implements IRubySerializer { @Override public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) { - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); if (CutDownSetSerializer.getInstance().writeObject(builder, objectStr, field, fieldRegistration, CodeLanguage.Ruby)) { return; } @@ -43,29 +43,29 @@ public class RubySetSerializer implements IRubySerializer { SetField setField = (SetField) fieldRegistration; builder.append(StringUtils.format("if {}.nil? || {}.empty?", objectStr, objectStr)).append(LS); - GenerateProtocolFile.addTab(builder, deep + 1); + GenerateProtocolFile.addTabWith2Space(builder, deep + 1); builder.append("buffer.writeInt(0)").append(LS); - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); builder.append("else").append(LS); - GenerateProtocolFile.addTab(builder, deep + 1); + GenerateProtocolFile.addTabWith2Space(builder, deep + 1); builder.append(StringUtils.format("buffer.writeInt({}.length)", objectStr)).append(LS); String element = "element" + GenerateProtocolFile.localVariableId++; - GenerateProtocolFile.addTab(builder, deep + 1); + GenerateProtocolFile.addTabWith2Space(builder, deep + 1); builder.append(StringUtils.format("for {} in {}", element, objectStr)).append(LS); CodeGenerateRuby.rbSerializer(setField.getSetElementRegistration().serializer()) .writeObject(builder, element, deep + 2, field, setField.getSetElementRegistration()); - GenerateProtocolFile.addTab(builder, deep + 1); + GenerateProtocolFile.addTabWith2Space(builder, deep + 1); builder.append("end").append(LS); - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); builder.append("end").append(LS); } @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); var cutDown = CutDownSetSerializer.getInstance().readObject(builder, field, fieldRegistration, CodeLanguage.Ruby); if (cutDown != null) { return cutDown; @@ -79,21 +79,21 @@ public class RubySetSerializer implements IRubySerializer { String i = "index" + GenerateProtocolFile.localVariableId++; String size = "size" + GenerateProtocolFile.localVariableId++; - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); builder.append(StringUtils.format("{} = buffer.readInt()", size)).append(LS); - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); builder.append(StringUtils.format("if {} > 0", size)).append(LS); - GenerateProtocolFile.addTab(builder, deep + 1); + GenerateProtocolFile.addTabWith2Space(builder, deep + 1); builder.append(StringUtils.format("for {} in 0..{} - 1", i, size)).append(LS); String readObject = CodeGenerateRuby.rbSerializer(setField.getSetElementRegistration().serializer()) .readObject(builder, deep + 2, field, setField.getSetElementRegistration()); - GenerateProtocolFile.addTab(builder, deep + 2); + GenerateProtocolFile.addTabWith2Space(builder, deep + 2); builder.append(StringUtils.format("{}.add({})", result, readObject)).append(LS); - GenerateProtocolFile.addTab(builder, deep + 1); + GenerateProtocolFile.addTabWith2Space(builder, deep + 1); builder.append("end").append(LS); - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); builder.append("end").append(LS); return result; } diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyShortSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyShortSerializer.java index 4bfb67ee..0203eaa6 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyShortSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyShortSerializer.java @@ -32,7 +32,7 @@ public class RubyShortSerializer implements IRubySerializer { @Override public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) { - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); builder.append(StringUtils.format("buffer.writeShort({})", objectStr)).append(LS); } @@ -40,7 +40,7 @@ public class RubyShortSerializer implements IRubySerializer { public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { String result = "result" + GenerateProtocolFile.localVariableId++; - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); builder.append(StringUtils.format("{} = buffer.readShort()", result)).append(LS); return result; } diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyStringSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyStringSerializer.java index 91561cf1..d0510944 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyStringSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/ruby/RubyStringSerializer.java @@ -32,14 +32,14 @@ public class RubyStringSerializer implements IRubySerializer { @Override public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) { - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); builder.append(StringUtils.format("buffer.writeString({})", objectStr)).append(LS); } @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { String result = "result" + GenerateProtocolFile.localVariableId++; - GenerateProtocolFile.addTab(builder, deep); + GenerateProtocolFile.addTabWith2Space(builder, deep); builder.append(StringUtils.format("{} = buffer.readString()", result)).append(LS); return result; } diff --git a/protocol/src/main/resources/ruby/ByteBuffer.rb b/protocol/src/main/resources/ruby/ByteBuffer.rb index d1b6a89c..f9589298 100644 --- a/protocol/src/main/resources/ruby/ByteBuffer.rb +++ b/protocol/src/main/resources/ruby/ByteBuffer.rb @@ -1,1050 +1,1050 @@ require_relative "ProtocolManager.rb" class ByteBuffer - def initialize() - @writeOffset = 0 - @readOffset = 0 - @buffer = "\u0000" * 2 - end + def initialize() + @writeOffset = 0 + @readOffset = 0 + @buffer = "\u0000" * 2 + end - def adjustPadding(predictionLength, beforeWriteIndex) - currentWriteIndex = getWriteOffset - predictionCount = writeIntCount(predictionLength) - length = currentWriteIndex - beforeWriteIndex - predictionCount - lengthCount = writeIntCount(length) - padding = lengthCount - predictionCount - if padding == 0 - setWriteOffset(beforeWriteIndex) - writeInt(length) - setWriteOffset(currentWriteIndex) - else - retainedByteBuf = "\u0000" * length - retainedByteBuf[0..(length - 1)] = @buffer[(currentWriteIndex - length)..(currentWriteIndex - 1)] - setWriteOffset(beforeWriteIndex) - writeInt(length) - writeBytesString(retainedByteBuf) - end + def adjustPadding(predictionLength, beforeWriteIndex) + currentWriteIndex = getWriteOffset + predictionCount = writeIntCount(predictionLength) + length = currentWriteIndex - beforeWriteIndex - predictionCount + lengthCount = writeIntCount(length) + padding = lengthCount - predictionCount + if padding == 0 + setWriteOffset(beforeWriteIndex) + writeInt(length) + setWriteOffset(currentWriteIndex) + else + retainedByteBuf = "\u0000" * length + retainedByteBuf[0..(length - 1)] = @buffer[(currentWriteIndex - length)..(currentWriteIndex - 1)] + setWriteOffset(beforeWriteIndex) + writeInt(length) + writeBytesString(retainedByteBuf) end + end - def compatibleRead(beforeReadIndex, length) - return length != -1 && getWriteOffset() < length + beforeReadIndex + def compatibleRead(beforeReadIndex, length) + return length != -1 && getWriteOffset() < length + beforeReadIndex + end + + def getCapacity() + return @buffer.length - @writeOffset + end + + def ensureCapacity(capacity) + while capacity > getCapacity() + @buffer += "\u0000" * @buffer.length end + end - def getCapacity() - return @buffer.length - @writeOffset + def getBuffer() + return @buffer + end + + def getWriteOffset() + return @writeOffset + end + + def setWriteOffset(writeIndex) + if writeIndex > @buffer.length + raise "writeIndex[#{writeIndex}] out of bounds exception: readOffset: #{@readOffset} , writeOffset: #{@writeOffset}(expected: 0 <= readOffset <= writeOffset <= capacity:#{@buffer.length})" end + @writeOffset = writeIndex + end - def ensureCapacity(capacity) - while capacity > getCapacity() - @buffer += "\u0000" * @buffer.length - end + def getReadOffset() + return @readOffset + end + + def setReadOffset(readIndex) + if readIndex > @writeOffset + raise "readIndex[#{readIndex}] out of bounds exception: readOffset: #{@readOffset} , writeOffset: #{@writeOffset}(expected: 0 <= readOffset <= writeOffset <= capacity:#{@buffer.length})" end + @readOffset = readIndex + end - def getBuffer() - return @buffer + def writeBytes(bytes) + ensureCapacity(bytes.length) + for i in 0..bytes.length + writeByte(bytes[i]) end + end - def getWriteOffset() - return @writeOffset + def writeBytesString(strBytes) + length = strBytes.bytes().length + ensureCapacity(length) + @buffer[@writeOffset..(@writeOffset + length - 1)] = strBytes[0..(length - 1)] + @writeOffset += length + end + + def writeBool(value) + ensureCapacity(1) + if value == true + @buffer[@writeOffset] = "\u0001" + else + @buffer[@writeOffset] = "\u0000" end + @writeOffset += 1 + end - def setWriteOffset(writeIndex) - if writeIndex > @buffer.length - raise "writeIndex[#{writeIndex}] out of bounds exception: readOffset: #{@readOffset} , writeOffset: #{@writeOffset}(expected: 0 <= readOffset <= writeOffset <= capacity:#{@buffer.length})" - end - @writeOffset = writeIndex + def readBool() + value = false + if @buffer[@readOffset] == "\u0001" + value = true end + @readOffset += 1 + return value + end - def getReadOffset() - return @readOffset + def writeByte(value) + ensureCapacity(1) + @buffer[@writeOffset] = [value].pack('c')[0] + @writeOffset += 1 + end + + def readByte() + value = @buffer[@readOffset].unpack('c').first + @readOffset += 1 + return value + end + + def readUByte() + value = @buffer.getbyte(@readOffset) + @readOffset += 1 + return value + end + + def writeShort(value) + ensureCapacity(2) + @buffer[@writeOffset..(@writeOffset + 1)] = [value].pack('s>')[0..1] + @writeOffset += 2 + end + + def readShort() + value = @buffer[@readOffset..(@readOffset + 1)].unpack('s>').first + @readOffset += 2 + return value + end + + def writeRawInt(value) + ensureCapacity(4) + @buffer[@writeOffset..(@writeOffset + 3)] = [value].pack('i>')[0..3] + @writeOffset += 4 + end + + def readRawInt() + value = @buffer[@readOffset..(@readOffset + 3)].unpack('i>').first + @readOffset += 4 + return value + end + + def writeIntCount(value) + value = (value << 1) ^ (value >> 31); + if value >> 7 == 0 + return 1 end - - def setReadOffset(readIndex) - if readIndex > @writeOffset - raise "readIndex[#{readIndex}] out of bounds exception: readOffset: #{@readOffset} , writeOffset: #{@writeOffset}(expected: 0 <= readOffset <= writeOffset <= capacity:#{@buffer.length})" - end - @readOffset = readIndex + if value >> 14 == 0 + return 2 end - - def writeBytes(bytes) - ensureCapacity(bytes.length) - for i in 0..bytes.length - writeByte(bytes[i]) - end + if value >> 21 == 0 + return 3 end - - def writeBytesString(strBytes) - length = strBytes.bytes().length - ensureCapacity(length) - @buffer[@writeOffset..(@writeOffset + length - 1)] = strBytes[0..(length - 1)] - @writeOffset += length + if value >> 28 == 0 + return 4 end + return 5 + end - def writeBool(value) - ensureCapacity(1) - if value == true - @buffer[@writeOffset] = "\u0001" - else - @buffer[@writeOffset] = "\u0000" - end - @writeOffset += 1 + def writeInt(value) + writeLong(value) + end + + def readInt() + return readLong() + end + + def writeLong(longValue) + value = (longValue << 1) ^ (longValue >> 63) + if value < 0 + writeByte(value & 0xFF | 0x80) + writeByte(value >> 7 & 0xFF | 0x80) + writeByte(value >> 14 & 0xFF | 0x80) + writeByte(value >> 21 & 0xFF | 0x80) + writeByte(value >> 28 & 0xFF | 0x80) + writeByte(value >> 35 & 0xFF | 0x80) + writeByte(value >> 42 & 0xFF | 0x80) + writeByte(value >> 49 & 0xFF | 0x80) + writeByte(value >> 56 & 0xFF) + return end - - def readBool() - value = false - if @buffer[@readOffset] == "\u0001" - value = true - end - @readOffset += 1 - return value + if value >> 7 == 0 + writeByte(value) + return end - - def writeByte(value) - ensureCapacity(1) - @buffer[@writeOffset] = [value].pack('c')[0] - @writeOffset += 1 + if value >> 14 == 0 + writeByte(value | 0x80) + writeByte(value >> 7) + return end - - def readByte() - value = @buffer[@readOffset].unpack('c').first - @readOffset += 1 - return value + if value >> 21 == 0 + writeByte(value | 0x80) + writeByte(value >> 7 | 0x80) + writeByte(value >> 14) + return end - - def readUByte() - value = @buffer.getbyte(@readOffset) - @readOffset += 1 - return value + if value >> 28 == 0 + writeByte(value | 0x80) + writeByte(value >> 7 | 0x80) + writeByte(value >> 14 | 0x80) + writeByte(value >> 21) + return end - - def writeShort(value) - ensureCapacity(2) - @buffer[@writeOffset..(@writeOffset + 1)] = [value].pack('s>')[0..1] - @writeOffset += 2 + if value >> 35 == 0 + writeByte(value | 0x80) + writeByte(value >> 7 | 0x80) + writeByte(value >> 14 | 0x80) + writeByte(value >> 21 | 0x80) + writeByte(value >> 28) + return end - - def readShort() - value = @buffer[@readOffset..(@readOffset + 1)].unpack('s>').first - @readOffset += 2 - return value + if value >> 42 == 0 + writeByte(value | 0x80) + writeByte(value >> 7 | 0x80) + writeByte(value >> 14 | 0x80) + writeByte(value >> 21 | 0x80) + writeByte(value >> 28 | 0x80) + writeByte(value >> 35) + return end - - def writeRawInt(value) - ensureCapacity(4) - @buffer[@writeOffset..(@writeOffset + 3)] = [value].pack('i>')[0..3] - @writeOffset += 4 + if value >> 49 == 0 + writeByte(value | 0x80) + writeByte(value >> 7 | 0x80) + writeByte(value >> 14 | 0x80) + writeByte(value >> 21 | 0x80) + writeByte(value >> 28 | 0x80) + writeByte(value >> 35 | 0x80) + writeByte(value >> 42) + return end - - def readRawInt() - value = @buffer[@readOffset..(@readOffset + 3)].unpack('i>').first - @readOffset += 4 - return value + if (value >> 56) == 0 + writeByte(value | 0x80) + writeByte(value >> 7 | 0x80) + writeByte(value >> 14 | 0x80) + writeByte(value >> 21 | 0x80) + writeByte(value >> 28 | 0x80) + writeByte(value >> 35 | 0x80) + writeByte(value >> 42 | 0x80) + writeByte(value >> 49) + return end + writeByte(value | 0x80) + writeByte(value >> 7 | 0x80) + writeByte(value >> 14 | 0x80) + writeByte(value >> 21 | 0x80) + writeByte(value >> 28 | 0x80) + writeByte(value >> 35 | 0x80) + writeByte(value >> 42 | 0x80) + writeByte(value >> 49 | 0x80) + writeByte(value >> 56) + return + end - def writeIntCount(value) - value = (value << 1) ^ (value >> 31); - if value >> 7 == 0 - return 1 - end - if value >> 14 == 0 - return 2 - end - if value >> 21 == 0 - return 3 - end - if value >> 28 == 0 - return 4 - end - return 5 - end - - def writeInt(value) - writeLong(value) - end - - def readInt() - return readLong() - end - - def writeLong(longValue) - value = (longValue << 1) ^ (longValue >> 63) - if value < 0 - writeByte(value & 0xFF | 0x80) - writeByte(value >> 7 & 0xFF | 0x80) - writeByte(value >> 14 & 0xFF | 0x80) - writeByte(value >> 21 & 0xFF | 0x80) - writeByte(value >> 28 & 0xFF | 0x80) - writeByte(value >> 35 & 0xFF | 0x80) - writeByte(value >> 42 & 0xFF | 0x80) - writeByte(value >> 49 & 0xFF | 0x80) - writeByte(value >> 56 & 0xFF) - return - end - if value >> 7 == 0 - writeByte(value) - return - end - if value >> 14 == 0 - writeByte(value | 0x80) - writeByte(value >> 7) - return - end - if value >> 21 == 0 - writeByte(value | 0x80) - writeByte(value >> 7 | 0x80) - writeByte(value >> 14) - return - end - if value >> 28 == 0 - writeByte(value | 0x80) - writeByte(value >> 7 | 0x80) - writeByte(value >> 14 | 0x80) - writeByte(value >> 21) - return - end - if value >> 35 == 0 - writeByte(value | 0x80) - writeByte(value >> 7 | 0x80) - writeByte(value >> 14 | 0x80) - writeByte(value >> 21 | 0x80) - writeByte(value >> 28) - return - end - if value >> 42 == 0 - writeByte(value | 0x80) - writeByte(value >> 7 | 0x80) - writeByte(value >> 14 | 0x80) - writeByte(value >> 21 | 0x80) - writeByte(value >> 28 | 0x80) - writeByte(value >> 35) - return - end - if value >> 49 == 0 - writeByte(value | 0x80) - writeByte(value >> 7 | 0x80) - writeByte(value >> 14 | 0x80) - writeByte(value >> 21 | 0x80) - writeByte(value >> 28 | 0x80) - writeByte(value >> 35 | 0x80) - writeByte(value >> 42) - return - end - if (value >> 56) == 0 - writeByte(value | 0x80) - writeByte(value >> 7 | 0x80) - writeByte(value >> 14 | 0x80) - writeByte(value >> 21 | 0x80) - writeByte(value >> 28 | 0x80) - writeByte(value >> 35 | 0x80) - writeByte(value >> 42 | 0x80) - writeByte(value >> 49) - return - end - writeByte(value | 0x80) - writeByte(value >> 7 | 0x80) - writeByte(value >> 14 | 0x80) - writeByte(value >> 21 | 0x80) - writeByte(value >> 28 | 0x80) - writeByte(value >> 35 | 0x80) - writeByte(value >> 42 | 0x80) - writeByte(value >> 49 | 0x80) - writeByte(value >> 56) - return - end - - def readLong() + def readLong() + b = readUByte() + value = b + if b > 127 + b = readUByte() + value = value & 0x00000000_0000007F | b << 7 + if b > 127 b = readUByte() - value = b + value = value & 0x00000000_00003FFF | b << 14 if b > 127 + b = readUByte() + value = value & 0x00000000_001FFFFF | b << 21 + if b > 127 b = readUByte() - value = value & 0x00000000_0000007F | b << 7 + value = value & 0x00000000_0FFFFFFF | b << 28 if b > 127 + b = readUByte() + value = value & 0x00000007_FFFFFFFF | b << 35 + if b > 127 b = readUByte() - value = value & 0x00000000_00003FFF | b << 14 + value = value & 0x000003FF_FFFFFFFF | b << 42 if b > 127 + b = readUByte() + value = value & 0x0001FFFF_FFFFFFFF | b << 49 + if b > 127 b = readUByte() - value = value & 0x00000000_001FFFFF | b << 21 - if b > 127 - b = readUByte() - value = value & 0x00000000_0FFFFFFF | b << 28 - if b > 127 - b = readUByte() - value = value & 0x00000007_FFFFFFFF | b << 35 - if b > 127 - b = readUByte() - value = value & 0x000003FF_FFFFFFFF | b << 42 - if b > 127 - b = readUByte() - value = value & 0x0001FFFF_FFFFFFFF | b << 49 - if b > 127 - b = readUByte() - value = value & 0x00FFFFFF_FFFFFFFF | b << 56 - end - end - end - end - end + value = value & 0x00FFFFFF_FFFFFFFF | b << 56 + end end + end end - end - return ((value >> 1 & 0x7FFFFFFF_FFFFFFFF) ^ -(value & 1)) - end - - def writeFloat(value) - ensureCapacity(4) - @buffer[@writeOffset..(@writeOffset + 3)] = [value].pack('f')[0..3] - @writeOffset += 4 - end - - def readFloat() - value = @buffer[@readOffset..(@readOffset + 3)].unpack('f').first - @readOffset += 4 - return value - end - - def writeDouble(value) - ensureCapacity(8) - @buffer[@writeOffset..(@writeOffset + 7)] = [value].pack('d')[0..7] - @writeOffset += 8 - end - - def readDouble() - value = @buffer[@readOffset..(@readOffset + 7)].unpack('d').first - @readOffset += 8 - return value - end - - def writeString(value) - if value.nil? || value.empty? - writeInt(0) - return - end - value = value.dup - value.force_encoding("UTF-8") - bytes = value.bytes() - length = bytes.length - writeInt(length) - ensureCapacity(length) - @buffer[@writeOffset..(@writeOffset + length - 1)] = bytes.pack('C*')[0..(length - 1)] - @writeOffset += length - end - - def readString() - length = readInt() - if length == 0 - return "" - end - value = "\u0000" * length - for i in 0..(length - 1) - value.setbyte(i, readUByte()) - end - value.force_encoding("UTF-8") - return value - end - - def writePacket(packet, protocolId) - protocolRegistration = ProtocolManager.getProtocol(protocolId) - protocolRegistration.write(self, packet) - end - - def readPacket(protocolId) - protocolRegistration = ProtocolManager.getProtocol(protocolId) - return protocolRegistration.read(self) - end - - def writeBoolArray(array) - if array.nil? || array.empty? - writeInt(0) - return - end - writeInt(array.length) - for element in array - writeBool(element) - end - end - - def readBoolArray() - array = Array.new() - size = readInt() - if size > 0 - for i in 0..(size - 1) - array.push(readBool()) - end - end - return array - end - - def writeByteArray(array) - if array.nil? || array.empty? - writeInt(0) - return - end - writeInt(array.length) - for element in array - writeByte(element) - end - end - - def readByteArray() - array = Array.new() - size = readInt() - if size > 0 - for i in 0..(size - 1) - array.push(readByte()) - end - end - return array - end - - def writeShortArray(array) - if array.nil? || array.empty? - writeInt(0) - return - end - writeInt(array.length) - for element in array - writeShort(element) - end - end - - def readShortArray() - array = Array.new() - size = readInt() - if size > 0 - for i in 0..(size - 1) - array.push(readShort()) - end - end - return array - end - - def writeIntArray(array) - if array.nil? || array.empty? - writeInt(0) - return - end - writeInt(array.length) - for element in array - writeInt(element) - end - end - - def readIntArray() - array = Array.new() - size = readInt() - if size > 0 - for i in 0..(size - 1) - array.push(readInt()) - end - end - return array - end - - def writeLongArray(array) - if array.nil? || array.empty? - writeInt(0) - return - end - writeInt(array.length) - for element in array - writeLong(element) - end - end - - def readLongArray() - array = Array.new() - size = readInt() - if size > 0 - for i in 0..(size - 1) - array.push(readLong()) - end - end - return array - end - - def writeFloatArray(array) - if array.nil? || array.empty? - writeInt(0) - return - end - writeInt(array.length) - for element in array - writeFloat(element) - end - end - - def readFloatArray() - array = Array.new() - size = readInt() - if size > 0 - for i in 0..(size - 1) - array.push(readFloat()) - end - end - return array - end - - def writeDoubleArray(array) - if array.nil? || array.empty? - writeInt(0) - return - end - writeInt(array.length) - for element in array - writeDouble(element) - end - end - - def readDoubleArray() - array = Array.new() - size = readInt() - if size > 0 - for i in 0..(size - 1) - array.push(readDouble()) - end - end - return array - end - - def writeStringArray(array) - if array.nil? || array.empty? - writeInt(0) - return - end - writeInt(array.length) - for element in array - writeString(element) - end - end - - def readStringArray() - array = Array.new() - size = readInt() - if size > 0 - for i in 0..(size - 1) - array.push(readString()) - end - end - return array - end - - def writePacketArray(array, protocolId) - if array.nil? || array.empty? - writeInt(0) - return - end - writeInt(array.length) - for element in array - writePacket(element, protocolId) - end - end - - def readPacketArray(protocolId) - array = Array.new() - size = readInt() - if size > 0 - for i in 0..(size - 1) - array.push(readPacket(protocolId)) - end - end - return array - end - - def writeBoolSet(set) - if set.nil? || set.empty? - writeInt(0) - return - end - writeInt(set.length) - for element in set - writeBool(element) - end - end - - def readBoolSet() - set = Set.new() - size = readInt() - if size > 0 - for i in 0..(size - 1) - set.add(readBool()) - end - end - return set - end - - def writeByteSet(set) - if set.nil? || set.empty? - writeInt(0) - return - end - writeInt(set.length) - for element in set - writeByte(element) - end - end - - def readByteSet() - set = Set.new() - size = readInt() - if size > 0 - for i in 0..(size - 1) - set.add(readByte()) - end - end - return set - end - - def writeShortSet(set) - if set.nil? || set.empty? - writeInt(0) - return - end - writeInt(set.length) - for element in set - writeShort(element) - end - end - - def readShortSet() - set = Set.new() - size = readInt() - if size > 0 - for i in 0..(size - 1) - set.add(readShort()) - end - end - return set - end - - def writeIntSet(set) - if set.nil? || set.empty? - writeInt(0) - return - end - writeInt(set.length) - for element in set - writeInt(element) - end - end - - def readIntSet() - set = Set.new() - size = readInt() - if size > 0 - for i in 0..(size - 1) - set.add(readInt()) - end - end - return set - end - - def writeLongSet(set) - if set.nil? || set.empty? - writeInt(0) - return - end - writeInt(set.length) - for element in set - writeLong(element) - end - end - - def readLongSet() - set = Set.new() - size = readInt() - if size > 0 - for i in 0..(size - 1) - set.add(readLong()) - end - end - return set - end - - def writeFloatSet(set) - if set.nil? || set.empty? - writeInt(0) - return - end - writeInt(set.length) - for element in set - writeFloat(element) - end - end - - def readFloatSet() - set = Set.new() - size = readInt() - if size > 0 - for i in 0..(size - 1) - set.add(readFloat()) - end - end - return set - end - - def writeDoubleSet(set) - if set.nil? || set.empty? - writeInt(0) - return - end - writeInt(set.length) - for element in set - writeDouble(element) - end - end - - def readDoubleSet() - set = Set.new() - size = readInt() - if size > 0 - for i in 0..(size - 1) - set.add(readDouble()) - end - end - return set - end - - def writeStringSet(set) - if set.nil? || set.empty? - writeInt(0) - return - end - writeInt(set.length) - for element in set - writeString(element) - end - end - - def readStringSet() - set = Set.new() - size = readInt() - if size > 0 - for i in 0..(size - 1) - set.add(readString()) - end - end - return set - end - - def writePacketSet(set, protocolId) - if set.nil? || set.empty? - writeInt(0) - return - end - writeInt(set.length) - for element in set - writePacket(element, protocolId) - end - end - - def readPacketSet(protocolId) - set = Set.new() - size = readInt() - if size > 0 - for i in 0..(size - 1) - set.add(readPacket(protocolId)) - end - end - return set - end - - def writeIntIntMap(map) - if map.nil? || map.empty? - writeInt(0) - return - end - writeInt(map.length) - map.each do |key, value| - writeInt(key) - writeInt(value) - end - end - - def readIntIntMap() - map = Hash.new() - size = readInt() - if size > 0 - for i in 0..(size - 1) - key = readInt() - value = readInt() - map[key] = value - end - end - return map - end - - def writeIntLongMap(map) - if map.nil? || map.empty? - writeInt(0) - return - end - writeInt(map.length) - map.each do |key, value| - writeInt(key) - writeLong(value) - end - end - - def readIntLongMap() - map = Hash.new() - size = readInt() - if size > 0 - for i in 0..(size - 1) - key = readInt() - value = readLong() - map[key] = value - end - end - return map - end - - def writeIntStringMap(map) - if map.nil? || map.empty? - writeInt(0) - return - end - writeInt(map.length) - map.each do |key, value| - writeInt(key) - writeString(value) - end - end - - def readIntStringMap() - map = Hash.new() - size = readInt() - if size > 0 - for i in 0..(size - 1) - key = readInt() - value = readString() - map[key] = value - end - end - return map - end - - def writeIntPacketMap(map, protocolId) - if map.nil? || map.empty? - writeInt(0) - return - end - writeInt(map.length) - map.each do |key, value| - writeInt(key) - writePacket(value, protocolId) - end - end - - def readIntPacketMap(protocolId) - map = Hash.new() - size = readInt() - if size > 0 - for i in 0..(size - 1) - key = readInt() - value = readPacket(protocolId) - map[key] = value - end - end - return map - end - - def writeLongIntMap(map) - if map.nil? || map.empty? - writeInt(0) - return - end - writeInt(map.length) - map.each do |key, value| - writeLong(key) - writeInt(value) - end - end - - def readLongIntMap() - map = Hash.new() - size = readInt() - if size > 0 - for i in 0..(size - 1) - key = readLong() - value = readInt() - map[key] = value - end - end - return map - end - - def writeLongLongMap(map) - if map.nil? || map.empty? - writeInt(0) - return - end - writeInt(map.length) - map.each do |key, value| - writeLong(key) - writeLong(value) - end - end - - def readLongLongMap() - map = Hash.new() - size = readInt() - if size > 0 - for i in 0..(size - 1) - key = readLong() - value = readLong() - map[key] = value - end - end - return map - end - - def writeLongStringMap(map) - if map.nil? || map.empty? - writeInt(0) - return - end - writeInt(map.length) - map.each do |key, value| - writeLong(key) - writeString(value) - end - end - - def readLongStringMap() - map = Hash.new() - size = readInt() - if size > 0 - for i in 0..(size - 1) - key = readLong() - value = readString() - map[key] = value - end - end - return map - end - - def writeLongPacketMap(map, protocolId) - if map.nil? || map.empty? - writeInt(0) - return - end - writeInt(map.length) - map.each do |key, value| - writeLong(key) - writePacket(value, protocolId) - end - end - - def readLongPacketMap(protocolId) - map = Hash.new() - size = readInt() - if size > 0 - for i in 0..(size - 1) - key = readLong() - value = readPacket(protocolId) - map[key] = value - end - end - return map - end - - def writeStringIntMap(map) - if map.nil? || map.empty? - writeInt(0) - return - end - writeInt(map.length) - map.each do |key, value| - writeString(key) - writeInt(value) - end - end - - def readStringIntMap() - map = Hash.new() - size = readInt() - if size > 0 - for i in 0..(size - 1) - key = readString() - value = readInt() - map[key] = value - end - end - return map - end - - def writeStringLongMap(map) - if map.nil? || map.empty? - writeInt(0) - return - end - writeInt(map.length) - map.each do |key, value| - writeString(key) - writeLong(value) - end - end - - def readLongLongMap() - map = Hash.new() - size = readInt() - if size > 0 - for i in 0..(size - 1) - key = readString() - value = readLong() - map[key] = value - end - end - return map - end - - def writeStringStringMap(map) - if map.nil? || map.empty? - writeInt(0) - return - end - writeInt(map.length) - map.each do |key, value| - writeString(key) - writeString(value) - end - end - - def readStringStringMap() - map = Hash.new() - size = readInt() - if size > 0 - for i in 0..(size - 1) - key = readString() - value = readString() - map[key] = value - end - end - return map - end - - def writeStringPacketMap(map, protocolId) - if map.nil? || map.empty? - writeInt(0) - return - end - writeInt(map.length) - map.each do |key, value| - writeString(key) - writePacket(value, protocolId) - end - end - - def readStringPacketMap(protocolId) - map = Hash.new() - size = readInt() - if size > 0 - for i in 0..(size - 1) - key = readString() - value = readPacket(protocolId) - map[key] = value - end - end - return map - end + end + end + end + end + return ((value >> 1 & 0x7FFFFFFF_FFFFFFFF) ^ -(value & 1)) + end + + def writeFloat(value) + ensureCapacity(4) + @buffer[@writeOffset..(@writeOffset + 3)] = [value].pack('f')[0..3] + @writeOffset += 4 + end + + def readFloat() + value = @buffer[@readOffset..(@readOffset + 3)].unpack('f').first + @readOffset += 4 + return value + end + + def writeDouble(value) + ensureCapacity(8) + @buffer[@writeOffset..(@writeOffset + 7)] = [value].pack('d')[0..7] + @writeOffset += 8 + end + + def readDouble() + value = @buffer[@readOffset..(@readOffset + 7)].unpack('d').first + @readOffset += 8 + return value + end + + def writeString(value) + if value.nil? || value.empty? + writeInt(0) + return + end + value = value.dup + value.force_encoding("UTF-8") + bytes = value.bytes() + length = bytes.length + writeInt(length) + ensureCapacity(length) + @buffer[@writeOffset..(@writeOffset + length - 1)] = bytes.pack('C*')[0..(length - 1)] + @writeOffset += length + end + + def readString() + length = readInt() + if length == 0 + return "" + end + value = "\u0000" * length + for i in 0..(length - 1) + value.setbyte(i, readUByte()) + end + value.force_encoding("UTF-8") + return value + end + + def writePacket(packet, protocolId) + protocolRegistration = ProtocolManager.getProtocol(protocolId) + protocolRegistration.write(self, packet) + end + + def readPacket(protocolId) + protocolRegistration = ProtocolManager.getProtocol(protocolId) + return protocolRegistration.read(self) + end + + def writeBoolArray(array) + if array.nil? || array.empty? + writeInt(0) + return + end + writeInt(array.length) + for element in array + writeBool(element) + end + end + + def readBoolArray() + array = Array.new() + size = readInt() + if size > 0 + for i in 0..(size - 1) + array.push(readBool()) + end + end + return array + end + + def writeByteArray(array) + if array.nil? || array.empty? + writeInt(0) + return + end + writeInt(array.length) + for element in array + writeByte(element) + end + end + + def readByteArray() + array = Array.new() + size = readInt() + if size > 0 + for i in 0..(size - 1) + array.push(readByte()) + end + end + return array + end + + def writeShortArray(array) + if array.nil? || array.empty? + writeInt(0) + return + end + writeInt(array.length) + for element in array + writeShort(element) + end + end + + def readShortArray() + array = Array.new() + size = readInt() + if size > 0 + for i in 0..(size - 1) + array.push(readShort()) + end + end + return array + end + + def writeIntArray(array) + if array.nil? || array.empty? + writeInt(0) + return + end + writeInt(array.length) + for element in array + writeInt(element) + end + end + + def readIntArray() + array = Array.new() + size = readInt() + if size > 0 + for i in 0..(size - 1) + array.push(readInt()) + end + end + return array + end + + def writeLongArray(array) + if array.nil? || array.empty? + writeInt(0) + return + end + writeInt(array.length) + for element in array + writeLong(element) + end + end + + def readLongArray() + array = Array.new() + size = readInt() + if size > 0 + for i in 0..(size - 1) + array.push(readLong()) + end + end + return array + end + + def writeFloatArray(array) + if array.nil? || array.empty? + writeInt(0) + return + end + writeInt(array.length) + for element in array + writeFloat(element) + end + end + + def readFloatArray() + array = Array.new() + size = readInt() + if size > 0 + for i in 0..(size - 1) + array.push(readFloat()) + end + end + return array + end + + def writeDoubleArray(array) + if array.nil? || array.empty? + writeInt(0) + return + end + writeInt(array.length) + for element in array + writeDouble(element) + end + end + + def readDoubleArray() + array = Array.new() + size = readInt() + if size > 0 + for i in 0..(size - 1) + array.push(readDouble()) + end + end + return array + end + + def writeStringArray(array) + if array.nil? || array.empty? + writeInt(0) + return + end + writeInt(array.length) + for element in array + writeString(element) + end + end + + def readStringArray() + array = Array.new() + size = readInt() + if size > 0 + for i in 0..(size - 1) + array.push(readString()) + end + end + return array + end + + def writePacketArray(array, protocolId) + if array.nil? || array.empty? + writeInt(0) + return + end + writeInt(array.length) + for element in array + writePacket(element, protocolId) + end + end + + def readPacketArray(protocolId) + array = Array.new() + size = readInt() + if size > 0 + for i in 0..(size - 1) + array.push(readPacket(protocolId)) + end + end + return array + end + + def writeBoolSet(set) + if set.nil? || set.empty? + writeInt(0) + return + end + writeInt(set.length) + for element in set + writeBool(element) + end + end + + def readBoolSet() + set = Set.new() + size = readInt() + if size > 0 + for i in 0..(size - 1) + set.add(readBool()) + end + end + return set + end + + def writeByteSet(set) + if set.nil? || set.empty? + writeInt(0) + return + end + writeInt(set.length) + for element in set + writeByte(element) + end + end + + def readByteSet() + set = Set.new() + size = readInt() + if size > 0 + for i in 0..(size - 1) + set.add(readByte()) + end + end + return set + end + + def writeShortSet(set) + if set.nil? || set.empty? + writeInt(0) + return + end + writeInt(set.length) + for element in set + writeShort(element) + end + end + + def readShortSet() + set = Set.new() + size = readInt() + if size > 0 + for i in 0..(size - 1) + set.add(readShort()) + end + end + return set + end + + def writeIntSet(set) + if set.nil? || set.empty? + writeInt(0) + return + end + writeInt(set.length) + for element in set + writeInt(element) + end + end + + def readIntSet() + set = Set.new() + size = readInt() + if size > 0 + for i in 0..(size - 1) + set.add(readInt()) + end + end + return set + end + + def writeLongSet(set) + if set.nil? || set.empty? + writeInt(0) + return + end + writeInt(set.length) + for element in set + writeLong(element) + end + end + + def readLongSet() + set = Set.new() + size = readInt() + if size > 0 + for i in 0..(size - 1) + set.add(readLong()) + end + end + return set + end + + def writeFloatSet(set) + if set.nil? || set.empty? + writeInt(0) + return + end + writeInt(set.length) + for element in set + writeFloat(element) + end + end + + def readFloatSet() + set = Set.new() + size = readInt() + if size > 0 + for i in 0..(size - 1) + set.add(readFloat()) + end + end + return set + end + + def writeDoubleSet(set) + if set.nil? || set.empty? + writeInt(0) + return + end + writeInt(set.length) + for element in set + writeDouble(element) + end + end + + def readDoubleSet() + set = Set.new() + size = readInt() + if size > 0 + for i in 0..(size - 1) + set.add(readDouble()) + end + end + return set + end + + def writeStringSet(set) + if set.nil? || set.empty? + writeInt(0) + return + end + writeInt(set.length) + for element in set + writeString(element) + end + end + + def readStringSet() + set = Set.new() + size = readInt() + if size > 0 + for i in 0..(size - 1) + set.add(readString()) + end + end + return set + end + + def writePacketSet(set, protocolId) + if set.nil? || set.empty? + writeInt(0) + return + end + writeInt(set.length) + for element in set + writePacket(element, protocolId) + end + end + + def readPacketSet(protocolId) + set = Set.new() + size = readInt() + if size > 0 + for i in 0..(size - 1) + set.add(readPacket(protocolId)) + end + end + return set + end + + def writeIntIntMap(map) + if map.nil? || map.empty? + writeInt(0) + return + end + writeInt(map.length) + map.each do |key, value| + writeInt(key) + writeInt(value) + end + end + + def readIntIntMap() + map = Hash.new() + size = readInt() + if size > 0 + for i in 0..(size - 1) + key = readInt() + value = readInt() + map[key] = value + end + end + return map + end + + def writeIntLongMap(map) + if map.nil? || map.empty? + writeInt(0) + return + end + writeInt(map.length) + map.each do |key, value| + writeInt(key) + writeLong(value) + end + end + + def readIntLongMap() + map = Hash.new() + size = readInt() + if size > 0 + for i in 0..(size - 1) + key = readInt() + value = readLong() + map[key] = value + end + end + return map + end + + def writeIntStringMap(map) + if map.nil? || map.empty? + writeInt(0) + return + end + writeInt(map.length) + map.each do |key, value| + writeInt(key) + writeString(value) + end + end + + def readIntStringMap() + map = Hash.new() + size = readInt() + if size > 0 + for i in 0..(size - 1) + key = readInt() + value = readString() + map[key] = value + end + end + return map + end + + def writeIntPacketMap(map, protocolId) + if map.nil? || map.empty? + writeInt(0) + return + end + writeInt(map.length) + map.each do |key, value| + writeInt(key) + writePacket(value, protocolId) + end + end + + def readIntPacketMap(protocolId) + map = Hash.new() + size = readInt() + if size > 0 + for i in 0..(size - 1) + key = readInt() + value = readPacket(protocolId) + map[key] = value + end + end + return map + end + + def writeLongIntMap(map) + if map.nil? || map.empty? + writeInt(0) + return + end + writeInt(map.length) + map.each do |key, value| + writeLong(key) + writeInt(value) + end + end + + def readLongIntMap() + map = Hash.new() + size = readInt() + if size > 0 + for i in 0..(size - 1) + key = readLong() + value = readInt() + map[key] = value + end + end + return map + end + + def writeLongLongMap(map) + if map.nil? || map.empty? + writeInt(0) + return + end + writeInt(map.length) + map.each do |key, value| + writeLong(key) + writeLong(value) + end + end + + def readLongLongMap() + map = Hash.new() + size = readInt() + if size > 0 + for i in 0..(size - 1) + key = readLong() + value = readLong() + map[key] = value + end + end + return map + end + + def writeLongStringMap(map) + if map.nil? || map.empty? + writeInt(0) + return + end + writeInt(map.length) + map.each do |key, value| + writeLong(key) + writeString(value) + end + end + + def readLongStringMap() + map = Hash.new() + size = readInt() + if size > 0 + for i in 0..(size - 1) + key = readLong() + value = readString() + map[key] = value + end + end + return map + end + + def writeLongPacketMap(map, protocolId) + if map.nil? || map.empty? + writeInt(0) + return + end + writeInt(map.length) + map.each do |key, value| + writeLong(key) + writePacket(value, protocolId) + end + end + + def readLongPacketMap(protocolId) + map = Hash.new() + size = readInt() + if size > 0 + for i in 0..(size - 1) + key = readLong() + value = readPacket(protocolId) + map[key] = value + end + end + return map + end + + def writeStringIntMap(map) + if map.nil? || map.empty? + writeInt(0) + return + end + writeInt(map.length) + map.each do |key, value| + writeString(key) + writeInt(value) + end + end + + def readStringIntMap() + map = Hash.new() + size = readInt() + if size > 0 + for i in 0..(size - 1) + key = readString() + value = readInt() + map[key] = value + end + end + return map + end + + def writeStringLongMap(map) + if map.nil? || map.empty? + writeInt(0) + return + end + writeInt(map.length) + map.each do |key, value| + writeString(key) + writeLong(value) + end + end + + def readLongLongMap() + map = Hash.new() + size = readInt() + if size > 0 + for i in 0..(size - 1) + key = readString() + value = readLong() + map[key] = value + end + end + return map + end + + def writeStringStringMap(map) + if map.nil? || map.empty? + writeInt(0) + return + end + writeInt(map.length) + map.each do |key, value| + writeString(key) + writeString(value) + end + end + + def readStringStringMap() + map = Hash.new() + size = readInt() + if size > 0 + for i in 0..(size - 1) + key = readString() + value = readString() + map[key] = value + end + end + return map + end + + def writeStringPacketMap(map, protocolId) + if map.nil? || map.empty? + writeInt(0) + return + end + writeInt(map.length) + map.each do |key, value| + writeString(key) + writePacket(value, protocolId) + end + end + + def readStringPacketMap(protocolId) + map = Hash.new() + size = readInt() + if size > 0 + for i in 0..(size - 1) + key = readString() + value = readPacket(protocolId) + map[key] = value + end + end + return map + end end \ No newline at end of file diff --git a/protocol/src/main/resources/ruby/ProtocolClassTemplate.rb b/protocol/src/main/resources/ruby/ProtocolClassTemplate.rb index b902c6b0..9fa96c37 100644 --- a/protocol/src/main/resources/ruby/ProtocolClassTemplate.rb +++ b/protocol/src/main/resources/ruby/ProtocolClassTemplate.rb @@ -1,7 +1,7 @@ ${protocol_note} class ${protocol_name} - ${protocol_field_accessor} - def initialize() - ${protocol_field_definition} - end + ${protocol_field_accessor} + def initialize() + ${protocol_field_definition} + end end diff --git a/protocol/src/main/resources/ruby/ProtocolManagerTemplate.rb b/protocol/src/main/resources/ruby/ProtocolManagerTemplate.rb index 740b4c19..900e2aa0 100644 --- a/protocol/src/main/resources/ruby/ProtocolManagerTemplate.rb +++ b/protocol/src/main/resources/ruby/ProtocolManagerTemplate.rb @@ -2,28 +2,28 @@ ${protocol_imports} class ProtocolManager - @@protocols = Array.new(32767) - @@protocolIdMap = Hash.new() + @@protocols = Array.new(32767) + @@protocolIdMap = Hash.new() - def self.initProtocol() - ${protocol_manager_registrations} - end + def self.initProtocol() + ${protocol_manager_registrations} + end - def self.getProtocol(protocolId) - return @@protocols[protocolId] - end + def self.getProtocol(protocolId) + return @@protocols[protocolId] + end - def self.write(buffer, packet) - protocolId = @@protocolIdMap[packet.class] - buffer.writeShort(protocolId) - protocol = @@protocols[protocolId] - protocol.write(buffer, packet) - end + def self.write(buffer, packet) + protocolId = @@protocolIdMap[packet.class] + buffer.writeShort(protocolId) + protocol = @@protocols[protocolId] + protocol.write(buffer, packet) + end - def self.read(buffer) - protocolId = buffer.readShort() - protocol = @@protocols[protocolId] - packet = protocol.read(buffer) - return packet - end + def self.read(buffer) + protocolId = buffer.readShort() + protocol = @@protocols[protocolId] + packet = protocol.read(buffer) + return packet + end end \ No newline at end of file diff --git a/protocol/src/main/resources/ruby/ProtocolRegistrationTemplate.rb b/protocol/src/main/resources/ruby/ProtocolRegistrationTemplate.rb index 429f3e8f..07c652bc 100644 --- a/protocol/src/main/resources/ruby/ProtocolRegistrationTemplate.rb +++ b/protocol/src/main/resources/ruby/ProtocolRegistrationTemplate.rb @@ -1,27 +1,27 @@ class ${protocol_name}Registration - def protocolId() - return ${protocol_id} - end + def protocolId() + return ${protocol_id} + end - def write(buffer, packet) - if packet.nil? - buffer.writeInt(0) - return - end - ${protocol_write_serialization} + def write(buffer, packet) + if packet.nil? + buffer.writeInt(0) + return end + ${protocol_write_serialization} + end - def read(buffer) - length = buffer.readInt() - if length == 0 - return nil - end - beforeReadIndex = buffer.getReadOffset() - packet = ${protocol_name}.new() - ${protocol_read_deserialization} - if length > 0 - buffer.setReadOffset(beforeReadIndex + length) - end - return packet + def read(buffer) + length = buffer.readInt() + if length == 0 + return nil end + beforeReadIndex = buffer.getReadOffset() + packet = ${protocol_name}.new() + ${protocol_read_deserialization} + if length > 0 + buffer.setReadOffset(beforeReadIndex + length) + end + return packet + end end \ No newline at end of file