perf[protocol]: ruby code style

This commit is contained in:
godotg
2024-07-24 17:29:47 +08:00
parent 7f67827a3f
commit beebb39842
19 changed files with 1134 additions and 1130 deletions
@@ -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;
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
File diff suppressed because it is too large Load Diff
@@ -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
@@ -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
@@ -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