perf[java]: cut down java protocol generation

This commit is contained in:
godotg
2024-07-05 13:42:12 +08:00
parent 0dab67b549
commit 57d7040579
4 changed files with 48 additions and 38 deletions
@@ -476,6 +476,7 @@ public class CutDownArraySerializer implements ICutDownSerializer {
default:
if (arrayField.getArrayElementRegistration() instanceof ObjectProtocolField) {
var protocolId = ((ObjectProtocolField) arrayField.getArrayElementRegistration()).getProtocolId();
var protocolName = EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(protocolId);
switch (language) {
case Enhance:
builder.append(StringUtils.format("{}.writePacketArray($1, {}, {});", EnhanceUtils.byteBufUtils, objectStr, EnhanceUtils.getProtocolRegistrationFieldNameByProtocolId(protocolId)));
@@ -488,10 +489,10 @@ public class CutDownArraySerializer implements ICutDownSerializer {
builder.append(StringUtils.format("buffer:writePacketArray({}, {})", objectStr, protocolId)).append(LS);
break;
case CSharp:
builder.append(StringUtils.format("buffer.WritePacketArray<{}>({}, {});", EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(protocolId), objectStr, protocolId)).append(LS);
builder.append(StringUtils.format("buffer.WritePacketArray<{}>({}, {});", protocolName, objectStr, protocolId)).append(LS);
break;
case Cpp:
builder.append(StringUtils.format("buffer.writePacketArray<{}>({}, {});", EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(protocolId), objectStr, protocolId)).append(LS);
builder.append(StringUtils.format("buffer.writePacketArray<{}>({}, {});", protocolName, objectStr, protocolId)).append(LS);
break;
case JavaScript:
case EcmaScript:
@@ -1027,6 +1028,7 @@ public class CutDownArraySerializer implements ICutDownSerializer {
default:
if (arrayField.getArrayElementRegistration() instanceof ObjectProtocolField) {
var protocolId = ((ObjectProtocolField) arrayField.getArrayElementRegistration()).getProtocolId();
var protocolName = EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(protocolId);
switch (language) {
// Java不支持泛型的数组初始化,这里不做任何操作
case GdScript:
@@ -1039,10 +1041,10 @@ public class CutDownArraySerializer implements ICutDownSerializer {
builder.append(StringUtils.format("local {} = buffer:readPacketArray({})", array, protocolId)).append(LS);
break;
case CSharp:
builder.append(StringUtils.format("var {} = buffer.ReadPacketArray<{}>({});", array, EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(protocolId), protocolId)).append(LS);
builder.append(StringUtils.format("var {} = buffer.ReadPacketArray<{}>({});", array, protocolName, protocolId)).append(LS);
break;
case Cpp:
builder.append(StringUtils.format("auto {} = buffer.readPacketArray<{}>({});", array, EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(protocolId), protocolId)).append(LS);
builder.append(StringUtils.format("auto {} = buffer.readPacketArray<{}>({});", array, protocolName, protocolId)).append(LS);
break;
case JavaScript:
case EcmaScript:
@@ -610,6 +610,7 @@ public class CutDownListSerializer implements ICutDownSerializer {
default:
if (listField.getListElementRegistration() instanceof ObjectProtocolField) {
var protocolId = ((ObjectProtocolField) listField.getListElementRegistration()).getProtocolId();
var protocolName = EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(protocolId);
switch (language) {
case Enhance:
builder.append(StringUtils.format("List {} = {}.readPacketList($1, {});", list, EnhanceUtils.byteBufUtils, EnhanceUtils.getProtocolRegistrationFieldNameByProtocolId(protocolId)));
@@ -624,13 +625,13 @@ public class CutDownListSerializer implements ICutDownSerializer {
builder.append(StringUtils.format("local {} = buffer:readPacketArray({})", list, protocolId)).append(LS);
break;
case CSharp:
builder.append(StringUtils.format("var {} = buffer.ReadPacketList<{}>({});", list, EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(protocolId), protocolId)).append(LS);
builder.append(StringUtils.format("var {} = buffer.ReadPacketList<{}>({});", list, protocolName, protocolId)).append(LS);
break;
case Cpp:
builder.append(StringUtils.format("auto {} = buffer.readPacketList<{}>({});", list, EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(protocolId), protocolId)).append(LS);
builder.append(StringUtils.format("auto {} = buffer.readPacketList<{}>({});", list, protocolName, protocolId)).append(LS);
break;
case Java:
builder.append(StringUtils.format("var {} = buffer.readPacketList({}.class, (short) {});", list, EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(protocolId), protocolId)).append(LS);
builder.append(StringUtils.format("var {} = buffer.readPacketList({}.class, (short) {});", list, protocolName, protocolId)).append(LS);
break;
case JavaScript:
case EcmaScript:
@@ -130,28 +130,29 @@ public class CutDownMapSerializer implements ICutDownSerializer {
return true;
}
} else if (valueSerializer == ObjectProtocolSerializer.INSTANCE) {
var protocolId = ((ObjectProtocolField) valueRegistration).getProtocolId();
switch (language) {
case Enhance:
builder.append(StringUtils.format("{}.writeIntPacketMap($1, (Map){}, {});", EnhanceUtils.byteBufUtils, objectStr, EnhanceUtils.getProtocolRegistrationFieldNameByProtocolId(((ObjectProtocolField) valueRegistration).getProtocolId())));
builder.append(StringUtils.format("{}.writeIntPacketMap($1, (Map){}, {});", EnhanceUtils.byteBufUtils, objectStr, EnhanceUtils.getProtocolRegistrationFieldNameByProtocolId(protocolId)));
return true;
case GdScript:
case Python:
builder.append(StringUtils.format("buffer.writeIntPacketMap({}, {})", objectStr, ((ObjectProtocolField) valueRegistration).getProtocolId())).append(LS);
builder.append(StringUtils.format("buffer.writeIntPacketMap({}, {})", objectStr, protocolId)).append(LS);
return true;
case Lua:
builder.append(StringUtils.format("buffer:writeIntPacketMap({}, {})", objectStr, ((ObjectProtocolField) valueRegistration).getProtocolId())).append(LS);
builder.append(StringUtils.format("buffer:writeIntPacketMap({}, {})", objectStr, protocolId)).append(LS);
return true;
case CSharp:
builder.append(StringUtils.format("buffer.WriteIntPacketMap({}, {});", objectStr, ((ObjectProtocolField) valueRegistration).getProtocolId())).append(LS);
builder.append(StringUtils.format("buffer.WriteIntPacketMap({}, {});", objectStr, protocolId)).append(LS);
return true;
case Cpp:
case JavaScript:
case EcmaScript:
case TypeScript:
builder.append(StringUtils.format("buffer.writeIntPacketMap({}, {});", objectStr, ((ObjectProtocolField) valueRegistration).getProtocolId())).append(LS);
builder.append(StringUtils.format("buffer.writeIntPacketMap({}, {});", objectStr, protocolId)).append(LS);
return true;
case Java:
builder.append(StringUtils.format("buffer.writeIntPacketMap({}, (short) {});", objectStr, ((ObjectProtocolField) valueRegistration).getProtocolId())).append(LS);
builder.append(StringUtils.format("buffer.writeIntPacketMap({}, (short) {});", objectStr, protocolId)).append(LS);
return true;
case Golang:
case Protobuf:
@@ -238,28 +239,29 @@ public class CutDownMapSerializer implements ICutDownSerializer {
return true;
}
} else if (valueSerializer == ObjectProtocolSerializer.INSTANCE) {
var protocolId = ((ObjectProtocolField) valueRegistration).getProtocolId();
switch (language) {
case Enhance:
builder.append(StringUtils.format("{}.writeLongPacketMap($1, (Map){}, {});", EnhanceUtils.byteBufUtils, objectStr, EnhanceUtils.getProtocolRegistrationFieldNameByProtocolId(((ObjectProtocolField) valueRegistration).getProtocolId())));
builder.append(StringUtils.format("{}.writeLongPacketMap($1, (Map){}, {});", EnhanceUtils.byteBufUtils, objectStr, EnhanceUtils.getProtocolRegistrationFieldNameByProtocolId(protocolId)));
return true;
case GdScript:
case Python:
builder.append(StringUtils.format("buffer.writeLongPacketMap({}, {})", objectStr, ((ObjectProtocolField) valueRegistration).getProtocolId())).append(LS);
builder.append(StringUtils.format("buffer.writeLongPacketMap({}, {})", objectStr, protocolId)).append(LS);
return true;
case Lua:
builder.append(StringUtils.format("buffer:writeLongPacketMap({}, {})", objectStr, ((ObjectProtocolField) valueRegistration).getProtocolId())).append(LS);
builder.append(StringUtils.format("buffer:writeLongPacketMap({}, {})", objectStr, protocolId)).append(LS);
return true;
case CSharp:
builder.append(StringUtils.format("buffer.WriteLongPacketMap({}, {});", objectStr, ((ObjectProtocolField) valueRegistration).getProtocolId())).append(LS);
builder.append(StringUtils.format("buffer.WriteLongPacketMap({}, {});", objectStr, protocolId)).append(LS);
return true;
case Cpp:
case JavaScript:
case EcmaScript:
case TypeScript:
builder.append(StringUtils.format("buffer.writeLongPacketMap({}, {});", objectStr, ((ObjectProtocolField) valueRegistration).getProtocolId())).append(LS);
builder.append(StringUtils.format("buffer.writeLongPacketMap({}, {});", objectStr, protocolId)).append(LS);
return true;
case Java:
builder.append(StringUtils.format("buffer.writeLongPacketMap({}, (short) {});", objectStr, ((ObjectProtocolField) valueRegistration).getProtocolId())).append(LS);
builder.append(StringUtils.format("buffer.writeLongPacketMap({}, (short) {});", objectStr, protocolId)).append(LS);
return true;
case Golang:
case Protobuf:
@@ -346,28 +348,29 @@ public class CutDownMapSerializer implements ICutDownSerializer {
return true;
}
} else if (valueSerializer == ObjectProtocolSerializer.INSTANCE) {
var protocolId = ((ObjectProtocolField) valueRegistration).getProtocolId();
switch (language) {
case Enhance:
builder.append(StringUtils.format("{}.writeStringPacketMap($1, (Map){}, {});", EnhanceUtils.byteBufUtils, objectStr, EnhanceUtils.getProtocolRegistrationFieldNameByProtocolId(((ObjectProtocolField) valueRegistration).getProtocolId())));
builder.append(StringUtils.format("{}.writeStringPacketMap($1, (Map){}, {});", EnhanceUtils.byteBufUtils, objectStr, EnhanceUtils.getProtocolRegistrationFieldNameByProtocolId(protocolId)));
return true;
case GdScript:
case Python:
builder.append(StringUtils.format("buffer.writeStringPacketMap({}, {})", objectStr, ((ObjectProtocolField) valueRegistration).getProtocolId())).append(LS);
builder.append(StringUtils.format("buffer.writeStringPacketMap({}, {})", objectStr, protocolId)).append(LS);
return true;
case Lua:
builder.append(StringUtils.format("buffer:writeStringPacketMap({}, {})", objectStr, ((ObjectProtocolField) valueRegistration).getProtocolId())).append(LS);
builder.append(StringUtils.format("buffer:writeStringPacketMap({}, {})", objectStr, protocolId)).append(LS);
return true;
case CSharp:
builder.append(StringUtils.format("buffer.WriteStringPacketMap({}, {});", objectStr, ((ObjectProtocolField) valueRegistration).getProtocolId())).append(LS);
builder.append(StringUtils.format("buffer.WriteStringPacketMap({}, {});", objectStr, protocolId)).append(LS);
return true;
case Cpp:
case JavaScript:
case EcmaScript:
case TypeScript:
builder.append(StringUtils.format("buffer.writeStringPacketMap({}, {});", objectStr, ((ObjectProtocolField) valueRegistration).getProtocolId())).append(LS);
builder.append(StringUtils.format("buffer.writeStringPacketMap({}, {});", objectStr, protocolId)).append(LS);
return true;
case Java:
builder.append(StringUtils.format("buffer.writeStringPacketMap({}, (short) {});", objectStr, ((ObjectProtocolField) valueRegistration).getProtocolId())).append(LS);
builder.append(StringUtils.format("buffer.writeStringPacketMap({}, (short) {});", objectStr, protocolId)).append(LS);
return true;
case Golang:
case Protobuf:
@@ -489,9 +492,10 @@ public class CutDownMapSerializer implements ICutDownSerializer {
}
} else if (valueSerializer == ObjectProtocolSerializer.INSTANCE) {
var protocolId = ((ObjectProtocolField) valueRegistration).getProtocolId();
var protocolName = EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(protocolId);
switch (language) {
case Enhance:
builder.append(StringUtils.format("Map {} = {}.readIntPacketMap($1, {});", map, EnhanceUtils.byteBufUtils, EnhanceUtils.getProtocolRegistrationFieldNameByProtocolId(((ObjectProtocolField) valueRegistration).getProtocolId())));
builder.append(StringUtils.format("Map {} = {}.readIntPacketMap($1, {});", map, EnhanceUtils.byteBufUtils, EnhanceUtils.getProtocolRegistrationFieldNameByProtocolId(protocolId)));
return map;
case GdScript:
builder.append(StringUtils.format("var {} = buffer.readIntPacketMap({})", map, protocolId)).append(LS);
@@ -503,13 +507,13 @@ public class CutDownMapSerializer implements ICutDownSerializer {
builder.append(StringUtils.format("local {} = buffer:readIntPacketMap({})", map, protocolId)).append(LS);
return map;
case CSharp:
builder.append(StringUtils.format("var {} = buffer.ReadIntPacketMap<{}>({});", map, EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(protocolId), protocolId)).append(LS);
builder.append(StringUtils.format("var {} = buffer.ReadIntPacketMap<{}>({});", map, protocolName, protocolId)).append(LS);
return map;
case Cpp:
builder.append(StringUtils.format("auto {} = buffer.readIntPacketMap<{}>({});", map, EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(protocolId), protocolId)).append(LS);
builder.append(StringUtils.format("auto {} = buffer.readIntPacketMap<{}>({});", map, protocolName, protocolId)).append(LS);
return map;
case Java:
builder.append(StringUtils.format("var {} = buffer.readIntPacketMap({}.class, (short) {});", map, EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(protocolId), protocolId)).append(LS);
builder.append(StringUtils.format("var {} = buffer.readIntPacketMap({}.class, (short) {});", map, protocolName, protocolId)).append(LS);
return map;
case JavaScript:
case EcmaScript:
@@ -619,6 +623,7 @@ public class CutDownMapSerializer implements ICutDownSerializer {
}
} else if (valueSerializer == ObjectProtocolSerializer.INSTANCE) {
var protocolId = ((ObjectProtocolField) valueRegistration).getProtocolId();
var protocolName = EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(protocolId);
switch (language) {
case Enhance:
builder.append(StringUtils.format("Map {} = {}.readLongPacketMap($1, {});", map, EnhanceUtils.byteBufUtils, EnhanceUtils.getProtocolRegistrationFieldNameByProtocolId(protocolId)));
@@ -633,13 +638,13 @@ public class CutDownMapSerializer implements ICutDownSerializer {
builder.append(StringUtils.format("local {} = buffer:readLongPacketMap({})", map, protocolId)).append(LS);
return map;
case CSharp:
builder.append(StringUtils.format("var {} = buffer.ReadLongPacketMap<{}>({});", map, EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(protocolId), protocolId)).append(LS);
builder.append(StringUtils.format("var {} = buffer.ReadLongPacketMap<{}>({});", map, protocolName, protocolId)).append(LS);
return map;
case Cpp:
builder.append(StringUtils.format("auto {} = buffer.readLongPacketMap<{}>({});", map, EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(protocolId), protocolId)).append(LS);
builder.append(StringUtils.format("auto {} = buffer.readLongPacketMap<{}>({});", map, protocolName, protocolId)).append(LS);
return map;
case Java:
builder.append(StringUtils.format("var {} = buffer.readLongPacketMap({}.class, (short) {});", map, EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(protocolId), protocolId)).append(LS);
builder.append(StringUtils.format("var {} = buffer.readLongPacketMap({}.class, (short) {});", map, protocolName, protocolId)).append(LS);
return map;
case JavaScript:
case EcmaScript:
@@ -750,6 +755,7 @@ public class CutDownMapSerializer implements ICutDownSerializer {
}
} else if (valueSerializer == ObjectProtocolSerializer.INSTANCE) {
var protocolId = ((ObjectProtocolField) valueRegistration).getProtocolId();
var protocolName = EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(protocolId);
switch (language) {
case Enhance:
builder.append(StringUtils.format("Map {} = {}.readStringPacketMap($1, {});", map, EnhanceUtils.byteBufUtils, EnhanceUtils.getProtocolRegistrationFieldNameByProtocolId(protocolId)));
@@ -764,13 +770,13 @@ public class CutDownMapSerializer implements ICutDownSerializer {
builder.append(StringUtils.format("local {} = buffer:readStringPacketMap({})", map, protocolId)).append(LS);
return map;
case CSharp:
builder.append(StringUtils.format("var {} = buffer.ReadStringPacketMap<{}>({});", map, EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(protocolId), protocolId)).append(LS);
builder.append(StringUtils.format("var {} = buffer.ReadStringPacketMap<{}>({});", map, protocolName, protocolId)).append(LS);
return map;
case Cpp:
builder.append(StringUtils.format("auto {} = buffer.readStringPacketMap<{}>({});", map, EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(protocolId), protocolId)).append(LS);
builder.append(StringUtils.format("auto {} = buffer.readStringPacketMap<{}>({});", map, protocolName, protocolId)).append(LS);
return map;
case Java:
builder.append(StringUtils.format("var {} = buffer.readStringPacketMap({}.class, (short) {});", map, EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(protocolId), protocolId)).append(LS);
builder.append(StringUtils.format("var {} = buffer.readStringPacketMap({}.class, (short) {});", map, protocolName, protocolId)).append(LS);
return map;
case JavaScript:
case EcmaScript:
@@ -626,6 +626,7 @@ public class CutDownSetSerializer implements ICutDownSerializer {
default:
if (setField.getSetElementRegistration() instanceof ObjectProtocolField) {
var protocolId = ((ObjectProtocolField) setField.getSetElementRegistration()).getProtocolId();
var protocolName = EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(protocolId);
switch (language) {
case Enhance:
builder.append(StringUtils.format("Set {} = {}.readPacketSet($1, {});", set, EnhanceUtils.byteBufUtils, EnhanceUtils.getProtocolRegistrationFieldNameByProtocolId(protocolId)));
@@ -640,13 +641,13 @@ public class CutDownSetSerializer implements ICutDownSerializer {
builder.append(StringUtils.format("local {} = buffer:readPacketArray({})", set, protocolId)).append(LS);
break;
case CSharp:
builder.append(StringUtils.format("var {} = buffer.ReadPacketSet<{}>({});", set, EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(protocolId), protocolId)).append(LS);
builder.append(StringUtils.format("var {} = buffer.ReadPacketSet<{}>({});", set, protocolName, protocolId)).append(LS);
break;
case Cpp:
builder.append(StringUtils.format("auto {} = buffer.readPacketSet<{}>({});", set, EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(protocolId), protocolId)).append(LS);
builder.append(StringUtils.format("auto {} = buffer.readPacketSet<{}>({});", set, protocolName, protocolId)).append(LS);
break;
case Java:
builder.append(StringUtils.format("var {} = buffer.readPacketSet({}.class, (short) {});", set, EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(protocolId), protocolId)).append(LS);
builder.append(StringUtils.format("var {} = buffer.readPacketSet({}.class, (short) {});", set, protocolName, protocolId)).append(LS);
break;
case JavaScript:
case EcmaScript: